shaderc building changes

This commit is contained in:
2026-03-26 13:50:04 +02:00
parent eb5f44e298
commit 080b6742bb
11 changed files with 100 additions and 45 deletions

View File

@@ -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'

View File

@@ -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'

View File

@@ -1,6 +1,6 @@
project('evol-mod-assetmanager', ['c', 'cpp'], project('evol-mod-assetmanager', ['c', 'cpp'],
version : '0.1', 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' src = subproject('evol').get_variable('evolmod_subdir') + '/meson.build'
dst = meson.current_source_dir() + '/import/' dst = meson.current_source_dir() + '/import/'
@@ -35,14 +35,9 @@ mod_deps = [
dependency('cute_filewatch'), dependency('cute_filewatch'),
dependency('evmod_ecs'), dependency('evmod_ecs'),
dependency('shaderc'),
] ]
if cc_id == 'msvc'
mod_deps += dependency('shaderc_msvc')
else
mod_deps += dependency('shaderc_clang')
endif
module = shared_module( module = shared_module(
'assetmanager', mod_src, 'assetmanager', mod_src,
include_directories: mod_incdir, include_directories: mod_incdir,

View File

@@ -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)

View File

@@ -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 $<NOT:${SKIP_GLSLANG_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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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

12
subprojects/shaderc.wrap Normal file
View File

@@ -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

View File

@@ -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

View File

@@ -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