summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt8
-rw-r--r--CMakePresets.json3
-rw-r--r--examples/CMakeLists.txt2
-rw-r--r--tools/CMakeLists.txt177
4 files changed, 93 insertions, 97 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a5870b452..1ab208c2b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -142,12 +142,12 @@ option(
)
option(
SLANG_ENABLE_TESTS
- "Enable test targets, some tests may require SLANG_ENABLE_GFX, SLANG_ENABLE_SLANGD or SLANG_ENABLE_SLANGRT"
+ "Enable test targets, some tests may require SLANG_ENABLE_SLANG_RHI, SLANG_ENABLE_SLANGD or SLANG_ENABLE_SLANGRT"
ON
)
option(
SLANG_ENABLE_EXAMPLES
- "Enable example targets, requires SLANG_ENABLE_GFX"
+ "Enable example targets, requires SLANG_ENABLE_SLANG_RHI"
ON
)
option(SLANG_ENABLE_REPLAYER "Enable slang-replay tool" ON)
@@ -399,8 +399,8 @@ if(SLANG_ENABLE_NVAPI AND NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
message(SEND_ERROR "SLANG_ENABLE_NVAPI is only supported on Windows")
endif()
-if(SLANG_ENABLE_TESTS AND NOT SLANG_ENABLE_GFX)
- message(SEND_ERROR "SLANG_ENABLE_TESTS requires SLANG_ENABLE_GFX")
+if(SLANG_ENABLE_TESTS AND NOT SLANG_ENABLE_SLANG_RHI)
+ message(SEND_ERROR "SLANG_ENABLE_TESTS requires SLANG_ENABLE_SLANG_RHI")
endif()
#
diff --git a/CMakePresets.json b/CMakePresets.json
index 91f37de08..81f97d4e7 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -91,7 +91,8 @@
"description": "Build the compile time generators used in building Slang",
"cacheVariables": {
"SLANG_SLANG_LLVM_FLAVOR": "DISABLE",
- "SLANG_ENABLE_SLANG_RHI": false
+ "SLANG_ENABLE_SLANG_RHI": false,
+ "SLANG_ENABLE_TESTS": false
}
}
],
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index e67e56ea5..2676a8ca7 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -72,7 +72,7 @@ function(example dir)
)
endfunction()
-if(SLANG_ENABLE_EXAMPLES)
+if(SLANG_ENABLE_EXAMPLES AND SLANG_ENABLE_SLANG_RHI)
#
# Examples
#
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 7b28e960f..612d45b39 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -129,6 +129,8 @@ if(SLANG_ENABLE_GFX)
#
# GFX
#
+ # `gfx` is kept here for legacy reasons. It's not used by any slang tests but some external
+ # projects use it. We should remove it in the future.
slang_add_target(
gfx
${SLANG_LIB_TYPE}
@@ -187,40 +189,9 @@ if(SLANG_ENABLE_GFX)
FOLDER gfx
)
- #
- # `platform` contains all the platform abstractions for a GUI application.
- #
- slang_add_target(
- platform
- ${SLANG_LIB_TYPE}
- EXCLUDE_FROM_ALL
- USE_FEWER_WARNINGS
- LINK_WITH_PRIVATE
- core
- imgui
- stb
- $<$<BOOL:${SLANG_ENABLE_XLIB}>:X11::X11>
- $<$<BOOL:${SLANG_ENABLE_SLANG_RHI}>:slang-rhi>
- "$<$<PLATFORM_ID:Darwin>:-framework Cocoa>"
- "$<$<PLATFORM_ID:Darwin>:-framework QuartzCore>"
- ${CMAKE_DL_LIBS}
- LINK_WITH_FRAMEWORK Foundation Cocoa QuartzCore
- EXTRA_COMPILE_DEFINITIONS_PRIVATE
- $<$<BOOL:${SLANG_ENABLE_XLIB}>:SLANG_ENABLE_XLIB=1>
- INCLUDE_FROM_PRIVATE
- imgui
- $<$<BOOL:${SLANG_ENABLE_SLANG_RHI}>:slang-rhi>
- INCLUDE_DIRECTORIES_PUBLIC
- .
- platform
- if
- (not ${SLANG_OVERRIDE_GLM_PATH})
- INCLUDE_DIRECTORIES_PUBLIC ${slang_SOURCE_DIR}/external else ()
- INCLUDE_DIRECTORIES_PUBLIC ${SLANG_OVERRIDE_GLM_PATH} endif ()
- EXPORT_MACRO_PREFIX SLANG_PLATFORM
- )
-
- set(modules_dest_dir $<TARGET_FILE_DIR:slang-test>)
+ # Since slang-test does not depend on gfx, we just copy the gfx modules to the slangc
+ # directory. So even if slang-test is not built, the gfx modules are still available.
+ set(modules_dest_dir $<TARGET_FILE_DIR:slangc>)
add_custom_target(
copy-gfx-slang-modules
COMMAND ${CMAKE_COMMAND} -E make_directory ${modules_dest_dir}
@@ -239,16 +210,14 @@ if(SLANG_ENABLE_GFX)
DESTINATION ${runtime_subdir}
)
endif()
-if(SLANG_ENABLE_TESTS)
+if(SLANG_ENABLE_TESTS AND SLANG_ENABLE_SLANG_RHI)
# The test executables and runtime-loaded modules
slang_add_target(
test-server
EXECUTABLE
EXCLUDE_FROM_ALL
LINK_WITH_PRIVATE core compiler-core slang
- INCLUDE_FROM_PRIVATE
- unit-test
- $<$<BOOL:${SLANG_ENABLE_SLANG_RHI}>:slang-rhi>
+ INCLUDE_FROM_PRIVATE unit-test slang-rhi
FOLDER test
)
slang_add_target(
@@ -271,7 +240,7 @@ if(SLANG_ENABLE_TESTS)
stb
${CMAKE_DL_LIBS}
Threads::Threads
- INCLUDE_FROM_PRIVATE $<$<BOOL:${SLANG_ENABLE_SLANG_RHI}>:slang-rhi>
+ INCLUDE_FROM_PRIVATE slang-rhi
REQUIRES
# Shared libraries dlopened by slang-test
slang-reflection-test
@@ -296,7 +265,9 @@ if(SLANG_ENABLE_TESTS)
PROPERTY VS_STARTUP_PROJECT slang-test
)
- add_dependencies(slang-test copy-gfx-slang-modules)
+ if(SLANG_ENABLE_GFX)
+ add_dependencies(slang-test copy-gfx-slang-modules)
+ endif()
include(CTest)
add_test(
@@ -322,57 +293,81 @@ if(SLANG_ENABLE_TESTS)
)
# These are libraries loaded at runtime from the test executable:
- if(SLANG_ENABLE_GFX)
- slang_add_target(
- 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
- stb
- platform
- $<$<BOOL:${SLANG_ENABLE_SLANG_RHI}>:slang-rhi>
- INCLUDE_FROM_PRIVATE $<$<BOOL:${SLANG_ENABLE_SLANG_RHI}>:slang-rhi>
- INCLUDE_DIRECTORIES_PUBLIC
- .
- platform
- if
- (not ${SLANG_OVERRIDE_GLM_PATH})
- INCLUDE_DIRECTORIES_PUBLIC ${slang_SOURCE_DIR}/external else ()
- INCLUDE_DIRECTORIES_PUBLIC ${SLANG_OVERRIDE_GLM_PATH} endif ()
- OUTPUT_NAME gfx-unit-test-tool
- REQUIRED_BY slang-test
- FOLDER test/tools
- )
- if(SLANG_ENABLE_SLANG_RHI)
- slang_add_target(
- render-test
- MODULE
- EXCLUDE_FROM_ALL
- EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_SHARED_LIBRARY_TOOL
- USE_FEWER_WARNINGS
- LINK_WITH_PRIVATE
- core
- compiler-core
- slang
- slang-rhi
- platform
- stb
- $<$<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>
- EXTRA_COMPILE_OPTIONS_PRIVATE $<$<CXX_COMPILER_ID:MSVC>:/EHa>
- OUTPUT_NAME render-test-tool
- REQUIRED_BY slang-test
- FOLDER test/tools
- )
- endif()
- endif()
+ #
+ # `platform` contains all the platform abstractions for a GUI application.
+ #
+ slang_add_target(
+ platform
+ ${SLANG_LIB_TYPE}
+ EXCLUDE_FROM_ALL
+ USE_FEWER_WARNINGS
+ LINK_WITH_PRIVATE
+ core
+ imgui
+ stb
+ $<$<BOOL:${SLANG_ENABLE_XLIB}>:X11::X11>
+ slang-rhi
+ "$<$<PLATFORM_ID:Darwin>:-framework Cocoa>"
+ "$<$<PLATFORM_ID:Darwin>:-framework QuartzCore>"
+ ${CMAKE_DL_LIBS}
+ LINK_WITH_FRAMEWORK Foundation Cocoa QuartzCore
+ EXTRA_COMPILE_DEFINITIONS_PRIVATE
+ $<$<BOOL:${SLANG_ENABLE_XLIB}>:SLANG_ENABLE_XLIB=1>
+ INCLUDE_FROM_PRIVATE imgui slang-rhi
+ INCLUDE_DIRECTORIES_PUBLIC
+ .
+ platform
+ if
+ (not ${SLANG_OVERRIDE_GLM_PATH})
+ INCLUDE_DIRECTORIES_PUBLIC ${slang_SOURCE_DIR}/external else ()
+ INCLUDE_DIRECTORIES_PUBLIC ${SLANG_OVERRIDE_GLM_PATH} endif ()
+ EXPORT_MACRO_PREFIX SLANG_PLATFORM
+ )
+
+ slang_add_target(
+ 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 stb platform slang-rhi
+ INCLUDE_FROM_PRIVATE slang-rhi
+ INCLUDE_DIRECTORIES_PUBLIC
+ .
+ platform
+ if
+ (not ${SLANG_OVERRIDE_GLM_PATH})
+ INCLUDE_DIRECTORIES_PUBLIC ${slang_SOURCE_DIR}/external else ()
+ INCLUDE_DIRECTORIES_PUBLIC ${SLANG_OVERRIDE_GLM_PATH} endif ()
+ OUTPUT_NAME gfx-unit-test-tool
+ REQUIRED_BY slang-test
+ FOLDER test/tools
+ )
+
+ slang_add_target(
+ render-test
+ MODULE
+ EXCLUDE_FROM_ALL
+ EXTRA_COMPILE_DEFINITIONS_PRIVATE SLANG_SHARED_LIBRARY_TOOL
+ USE_FEWER_WARNINGS
+ LINK_WITH_PRIVATE
+ core
+ compiler-core
+ slang
+ slang-rhi
+ platform
+ stb
+ $<$<BOOL:${SLANG_ENABLE_CUDA}>:CUDA::cuda_driver>
+ INCLUDE_FROM_PRIVATE slang-rhi
+ EXTRA_COMPILE_DEFINITIONS_PRIVATE
+ $<$<BOOL:${SLANG_ENABLE_CUDA}>:RENDER_TEST_CUDA>
+ $<$<BOOL:${SLANG_ENABLE_OPTIX}>:RENDER_TEST_OPTIX>
+ EXTRA_COMPILE_OPTIONS_PRIVATE $<$<CXX_COMPILER_ID:MSVC>:/EHa>
+ OUTPUT_NAME render-test-tool
+ REQUIRED_BY slang-test
+ FOLDER test/tools
+ )
+
slang_add_target(
slang-unit-test
MODULE