diff --git a/build_options/meson-clang-linux b/build_options/meson-clang-linux new file mode 100644 index 0000000..9ad442e --- /dev/null +++ b/build_options/meson-clang-linux @@ -0,0 +1,11 @@ +[binaries] +c = 'clang-19' +c_ld = 'lld-19' +cpp = 'clang++-19' +cpp_ld = 'lld-19' + +[properties] +c_args = ['-DEV_CC_CLANG=1','-fcolor-diagnostics', '-fansi-escape-codes', '-fms-extensions'] + +[cmake] +CMAKE_C_COMPILER = 'clang-19' diff --git a/build_options/meson-clang-win b/build_options/meson-clang-win new file mode 100644 index 0000000..2840a22 --- /dev/null +++ b/build_options/meson-clang-win @@ -0,0 +1,11 @@ +[binaries] +c = 'clang.exe' +c_ld = 'lld' +cpp = 'clang++.exe' +cpp_ld = 'lld' + +[properties] +c_args = ['-DEV_CC_CLANG=1','-fcolor-diagnostics', '-fansi-escape-codes'] + +[cmake] +CMAKE_C_COMPILER = 'clang.exe' diff --git a/meson.build b/meson.build index 5f39fbe..51e4275 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('evol-mod-assetmanager', ['c', 'cpp'], version : '0.1', -default_options : ['warning_level=3', 'c_std=c11', 'default_library=shared']) +default_options : ['warning_level=1', 'c_std=gnu23', 'default_library=shared']) src = subproject('evol').get_variable('evolmod_subdir') + '/meson.build' dst = meson.current_source_dir() + '/import/' @@ -35,14 +35,9 @@ mod_deps = [ dependency('cute_filewatch'), dependency('evmod_ecs'), + dependency('shaderc'), ] -if cc_id == 'msvc' - mod_deps += dependency('shaderc_msvc') -else - mod_deps += dependency('shaderc_clang') -endif - module = shared_module( 'assetmanager', mod_src, include_directories: mod_incdir, diff --git a/subprojects/packagefiles/libshaderc/meson.build b/subprojects/packagefiles/libshaderc/meson.build deleted file mode 100644 index d5bbdbb..0000000 --- a/subprojects/packagefiles/libshaderc/meson.build +++ /dev/null @@ -1,14 +0,0 @@ -project('libshaderc', 'cpp') - -fs = import('fs') -cxxc = meson.get_compiler('cpp') - -shaderc_inc = include_directories('install/include') - -shaderc_dep = declare_dependency( - dependencies: cxxc.find_library('shaderc_combined', dirs: meson.current_source_dir()/'install/lib'), - include_directories: shaderc_inc, -) - -meson.override_dependency('shaderc_msvc', shaderc_dep) -meson.override_dependency('shaderc_clang', shaderc_dep) diff --git a/subprojects/packagefiles/shaderc/cmake_fix.diff b/subprojects/packagefiles/shaderc/cmake_fix.diff new file mode 100644 index 0000000..c3382db --- /dev/null +++ b/subprojects/packagefiles/shaderc/cmake_fix.diff @@ -0,0 +1,17 @@ +diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt +index d44f62a..16bad95 100644 +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -87,7 +87,11 @@ if (NOT TARGET glslang) + # Glslang tests are off by default. Turn them on if testing Shaderc. + set(GLSLANG_TESTS ON) + endif() +- set(GLSLANG_ENABLE_INSTALL $) ++ if (${SKIP_GLSLANG_INSTALL}) ++ set(GLSLANG_ENABLE_INSTALL OFF) ++ else() ++ set(GLSLANG_ENABLE_INSTALL ON) ++ endif() + add_subdirectory(${SHADERC_GLSLANG_DIR} glslang) + endif() + if (NOT TARGET glslang) diff --git a/subprojects/packagefiles/shaderc/meson.build b/subprojects/packagefiles/shaderc/meson.build new file mode 100644 index 0000000..01e75e8 --- /dev/null +++ b/subprojects/packagefiles/shaderc/meson.build @@ -0,0 +1,27 @@ +project('libshaderc', 'cpp') + +python = find_program('python3') +run_command(python, './utils/git-sync-deps', check: true) + +cmake = import('cmake') +opts = cmake.subproject_options() +opts.add_cmake_defines({ + 'CMAKE_MSVC_RUNTIME_LIBRARY': 'MultiThreaded', + 'CMAKE_POLICY_DEFAULT_CMP0091': 'NEW', + 'SHADERC_SKIP_INSTALL': 'ON', + 'SHADERC_SKIP_TESTS': 'ON', + 'SHADERC_SKIP_EXAMPLES': 'ON', + 'SHADERC_SKIP_COPYRIGHT_CHECK': 'ON' +}) +shaderc_proj = cmake.subproject('shaderc_cmake', options: opts) +shaderc_dep = declare_dependency(dependencies: [ + shaderc_proj.dependency('shaderc'), + shaderc_proj.dependency('shaderc_util'), + shaderc_proj.dependency('SPIRV'), + shaderc_proj.dependency('SPIRV-Tools-static'), + shaderc_proj.dependency('SPIRV-Tools-opt'), + shaderc_proj.dependency('glslang'), + shaderc_proj.dependency('GenericCodeGen'), + shaderc_proj.dependency('MachineIndependent'), +]) +meson.override_dependency('shaderc', shaderc_dep) diff --git a/subprojects/packagefiles/shaderc/shaderc_cmake.wrap b/subprojects/packagefiles/shaderc/shaderc_cmake.wrap new file mode 100644 index 0000000..a968ff8 --- /dev/null +++ b/subprojects/packagefiles/shaderc/shaderc_cmake.wrap @@ -0,0 +1,10 @@ +[wrap-git] +directory = shaderc +url = https://github.com/google/shaderc +revision = v2024.4 +depth=1 + +; patch_directory = shaderc_cmake +; +; [provide] +; dependency_names = shaderc_cmake diff --git a/subprojects/packagefiles/shaderc/subprojects/shaderc_cmake.wrap b/subprojects/packagefiles/shaderc/subprojects/shaderc_cmake.wrap new file mode 100644 index 0000000..a968ff8 --- /dev/null +++ b/subprojects/packagefiles/shaderc/subprojects/shaderc_cmake.wrap @@ -0,0 +1,10 @@ +[wrap-git] +directory = shaderc +url = https://github.com/google/shaderc +revision = v2024.4 +depth=1 + +; patch_directory = shaderc_cmake +; +; [provide] +; dependency_names = shaderc_cmake diff --git a/subprojects/shaderc.wrap b/subprojects/shaderc.wrap new file mode 100644 index 0000000..d1248f9 --- /dev/null +++ b/subprojects/shaderc.wrap @@ -0,0 +1,12 @@ +[wrap-git] +directory = shaderc + +url = https://github.com/google/shaderc +revision = v2024.4 +depth=1 +patch_directory = shaderc + +diff_files = shaderc/cmake_fix.diff + +[provide] +dependency_names = shaderc diff --git a/subprojects/shaderc_clang.wrap b/subprojects/shaderc_clang.wrap deleted file mode 100644 index 5c20d09..0000000 --- a/subprojects/shaderc_clang.wrap +++ /dev/null @@ -1,12 +0,0 @@ -[wrap-file] -directory = libshaderc - -source_url = https://storage.googleapis.com/shaderc/artifacts/prod/graphics_shader_compiler/shaderc/linux/continuous_clang_release/364/20210607-072233/install.tgz -source_filename = libshaderc-upstream-clang.tgz -source_hash = f46dd35f6904af2b3330201ffb0f2f1ef5f8b8ede44491fad1a37b4a791772ef -lead_directory_missing = libshaderc - -patch_directory = libshaderc - -[provide] -dependency_names = shaderc_clang diff --git a/subprojects/shaderc_msvc.wrap b/subprojects/shaderc_msvc.wrap deleted file mode 100644 index 32a9368..0000000 --- a/subprojects/shaderc_msvc.wrap +++ /dev/null @@ -1,12 +0,0 @@ -[wrap-file] -directory = libshaderc - -source_url = https://storage.googleapis.com/shaderc/artifacts/prod/graphics_shader_compiler/shaderc/windows/continuous_release_2017/368/20210607-072143/install.zip -source_filename = libshaderc-upstream-msvc.zip -source_hash = 5256f02a11dceb3390edaabd452a23ee48c4fe7b43bca754de87738adea96255 -lead_directory_missing = libshaderc - -patch_directory = libshaderc - -[provide] -dependency_names = shaderc_msvc