diff options
| -rw-r--r-- | .github/workflows/vk-gl-cts-nightly.yml | 2 | ||||
| -rw-r--r-- | CMakeLists.txt | 87 | ||||
| -rw-r--r-- | cmake/SlangTarget.cmake | 8 |
3 files changed, 50 insertions, 47 deletions
diff --git a/.github/workflows/vk-gl-cts-nightly.yml b/.github/workflows/vk-gl-cts-nightly.yml index 5817257e1..374ea1b43 100644 --- a/.github/workflows/vk-gl-cts-nightly.yml +++ b/.github/workflows/vk-gl-cts-nightly.yml @@ -47,7 +47,7 @@ jobs: -DCMAKE_COMPILE_WARNING_AS_ERROR=${{matrix.warnings-as-errors}} \ -DSLANG_ENABLE_CUDA=1 \ -DSLANG_ENABLE_EXAMPLES=0 \ - -DSLANG_ENABLE_GFX=0 \ + -DSLANG_ENABLE_GFX=1 \ -DSLANG_ENABLE_TESTS=1 cmake --workflow --preset "${{matrix.config}}" - uses: robinraju/release-downloader@v1.7 diff --git a/CMakeLists.txt b/CMakeLists.txt index f16f31fbb..415343050 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,7 +95,7 @@ option(SLANG_ENABLE_SLANGD "Enable language server target" ON) option(SLANG_ENABLE_SLANGC "Enable standalone compiler target" ON) option(SLANG_ENABLE_SLANGRT "Enable runtime target" ON) option(SLANG_ENABLE_SLANG_GLSLANG "Enable glslang dependency and slang-glslang wrapper target" ON) -option(SLANG_ENABLE_TESTS "Enable test targets, requires SLANG_ENABLE_GFX, SLANG_ENABLE_SLANGD and SLANG_ENABLE_SLANGRT" ON) +option(SLANG_ENABLE_TESTS "Enable test targets, some tests may require SLANG_ENABLE_GFX, SLANG_ENABLE_SLANGD or SLANG_ENABLE_SLANGRT" ON) option(SLANG_ENABLE_EXAMPLES "Enable example targets, requires SLANG_ENABLE_GFX" ON) enum_option( @@ -558,7 +558,7 @@ endif() # # The test executables and runtime-loaded modules # -if(SLANG_ENABLE_TESTS AND SLANG_ENABLE_GFX AND SLANG_ENABLE_SLANGD AND SLANG_ENABLE_SLANGRT) +if(SLANG_ENABLE_TESTS) slang_add_target( tools/test-server EXECUTABLE @@ -582,28 +582,19 @@ if(SLANG_ENABLE_TESTS AND SLANG_ENABLE_GFX AND SLANG_ENABLE_SLANGD AND SLANG_ENA REQUIRES # Shared libraries dlopened by slang-test slang-reflection-test - render-test slang-unit-test - gfx-unit-test # Used by some tests when they run slangd - slang-rt - gfx test-server test-process + OPTIONAL_REQUIRES + gfx + slang-rt + slang-glslang + slang-llvm FOLDER test DEBUG_DIR ${slang_SOURCE_DIR} ) - if(TARGET slang-glslang) - # Only add a dependency here if slang-glslang exists - add_dependencies(slang-test slang-glslang) - endif() - if(TARGET slang-llvm) - # Only add a dependency here if slang-llvm exists - # Pending https://gitlab.kitware.com/cmake/cmake/-/issues/19467 to be able - # to use a generator expression in REQUIRES just above. - add_dependencies(slang-test slang-llvm) - endif() set_property( DIRECTORY ${slang_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT slang-test @@ -618,16 +609,40 @@ if(SLANG_ENABLE_TESTS AND SLANG_ENABLE_GFX AND SLANG_ENABLE_SLANGD AND SLANG_ENA ) # These are libraries loaded at runtime from the test executable: - slang_add_target( - tools/gfx-unit-test - MODULE - EXCLUDE_FROM_ALL - EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_SHARED_LIBRARY_TOOL - USE_FEWER_WARNINGS - LINK_WITH_PRIVATE core slang unit-test gfx gfx-util platform - OUTPUT_NAME gfx-unit-test-tool - FOLDER test/tools - ) + if(SLANG_ENABLE_GFX) + slang_add_target( + tools/gfx-unit-test + MODULE + EXCLUDE_FROM_ALL + EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_SHARED_LIBRARY_TOOL + USE_FEWER_WARNINGS + LINK_WITH_PRIVATE core slang unit-test gfx gfx-util platform + OUTPUT_NAME gfx-unit-test-tool + REQUIRED_BY slang-test + FOLDER test/tools + ) + slang_add_target( + tools/render-test + MODULE + EXCLUDE_FROM_ALL + EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_SHARED_LIBRARY_TOOL + USE_FEWER_WARNINGS + LINK_WITH_PRIVATE + core + compiler-core + slang + gfx + gfx-util + platform + $<$<BOOL:${SLANG_ENABLE_CUDA}>:CUDA::cuda_driver> + EXTRA_COMPILE_DEFINITIONS_PRIVATE + $<$<BOOL:${SLANG_ENABLE_CUDA}>:RENDER_TEST_CUDA> + $<$<BOOL:${SLANG_ENABLE_OPTIX}>:RENDER_TEST_OPTIX> + OUTPUT_NAME render-test-tool + REQUIRED_BY slang-test + FOLDER test/tools + ) + endif() slang_add_target( tools/slang-unit-test MODULE @@ -648,26 +663,6 @@ if(SLANG_ENABLE_TESTS AND SLANG_ENABLE_GFX AND SLANG_ENABLE_SLANGD AND SLANG_ENA OUTPUT_NAME slang-reflection-test-tool FOLDER test/tools ) - slang_add_target( - tools/render-test - MODULE - EXCLUDE_FROM_ALL - EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_SHARED_LIBRARY_TOOL - USE_FEWER_WARNINGS - LINK_WITH_PRIVATE - core - compiler-core - slang - gfx - gfx-util - platform - $<$<BOOL:${SLANG_ENABLE_CUDA}>:CUDA::cuda_driver> - EXTRA_COMPILE_DEFINITIONS_PRIVATE - $<$<BOOL:${SLANG_ENABLE_CUDA}>:RENDER_TEST_CUDA> - $<$<BOOL:${SLANG_ENABLE_OPTIX}>:RENDER_TEST_OPTIX> - OUTPUT_NAME render-test-tool - FOLDER test/tools - ) slang_add_target( tools/slang-profile diff --git a/cmake/SlangTarget.cmake b/cmake/SlangTarget.cmake index 07409a960..f02c860e4 100644 --- a/cmake/SlangTarget.cmake +++ b/cmake/SlangTarget.cmake @@ -65,6 +65,8 @@ function(slang_add_target dir type) REQUIRED_BY # Add a dependency to the new target on the specified targets REQUIRES + # Add a dependency to the new target on the specified targets if they exist + OPTIONAL_REQUIRES # Globs for any headers to install PUBLIC_HEADERS ) @@ -278,6 +280,12 @@ function(slang_add_target dir type) add_dependencies(${target} ${ARG_REQUIRES}) endif() + foreach(required ${ARG_OPTIONAL_REQUIRES}) + if(TARGET ${required}) + add_dependencies(${target} ${required}) + endif() + endforeach() + # # Other preprocessor defines # |
