diff options
| author | Tobias Frisch <jacki@thejackimonster.de> | 2024-10-04 10:34:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-04 16:34:12 +0800 |
| commit | 25c17b9fcbf7a21e9fa19c4a8f08b0406437be24 (patch) | |
| tree | a85a734b32ea4f27a9cd594586a328858965893b /external | |
| parent | 9f246a43667b4893040669873400e2e3813328ff (diff) | |
Allow building using external dependencies (#5076)
* Add options to prevent usage of own submodules
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Allow using external unordered dense headers
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Link system wide installed unordered dense
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Allow external header usage for lz4 and spirv
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Add more options to disable targets
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Add option to provide explizit path for spirv headers and remove earlier options that break the build process
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Rename options to use common prefix
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Fix indentation for the cmake changes
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Add advanced_option function for cmake
* Normalize includes between system and submodule dependencies
Fix any before-accidentally-working problems
* Add option for enabling/disabling slang-rhi
Signed-off-by: Jacki <jacki@thejackimonster.de>
* Pass correct include path for cpu tests
* Correct include path
---------
Signed-off-by: Jacki <jacki@thejackimonster.de>
Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
Diffstat (limited to 'external')
| -rw-r--r-- | external/CMakeLists.txt | 68 |
1 files changed, 41 insertions, 27 deletions
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index ce8b76c70..dfee0a610 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -17,35 +17,47 @@ if(NOT SLANG_ENABLE_EXTERNAL_COMPILER_WARNINGS) endif() endif() +if (NOT ${SLANG_USE_SYSTEM_UNORDERED_DENSE}) + add_subdirectory(unordered_dense EXCLUDE_FROM_ALL SYSTEM) +endif() + # Miniz -add_subdirectory(miniz EXCLUDE_FROM_ALL SYSTEM) -set_property(TARGET miniz PROPERTY POSITION_INDEPENDENT_CODE ON) -# Work around https://github.com/richgel999/miniz/pull/292 -get_target_property(miniz_c_launcher miniz C_COMPILER_LAUNCHER) -if(MSVC AND miniz_c_launcher MATCHES "ccache") - set_property(TARGET miniz PROPERTY C_COMPILER_LAUNCHER) - set_property(TARGET miniz PROPERTY MSVC_DEBUG_INFORMATION_FORMAT "") +if (NOT ${SLANG_USE_SYSTEM_MINIZ}) + add_subdirectory(miniz EXCLUDE_FROM_ALL SYSTEM) + set_property(TARGET miniz PROPERTY POSITION_INDEPENDENT_CODE ON) + # Work around https://github.com/richgel999/miniz/pull/292 + get_target_property(miniz_c_launcher miniz C_COMPILER_LAUNCHER) + if(MSVC AND miniz_c_launcher MATCHES "ccache") + set_property(TARGET miniz PROPERTY C_COMPILER_LAUNCHER) + set_property(TARGET miniz PROPERTY MSVC_DEBUG_INFORMATION_FORMAT "") + endif() endif() # LZ4 -set(LZ4_BUNDLED_MODE ON) -add_subdirectory(lz4/build/cmake EXCLUDE_FROM_ALL SYSTEM) -if(MSVC) - target_compile_options( - lz4_static - PRIVATE /wd5045 /wd4820 /wd4711 /wd6385 /wd6262 - ) +if (NOT ${SLANG_USE_SYSTEM_LZ4}) + set(LZ4_BUNDLED_MODE ON) + add_subdirectory(lz4/build/cmake EXCLUDE_FROM_ALL SYSTEM) + if(MSVC) + target_compile_options( + lz4_static + PRIVATE /wd5045 /wd4820 /wd4711 /wd6385 /wd6262 + ) + endif() endif() # Vulkan headers -add_subdirectory(vulkan EXCLUDE_FROM_ALL SYSTEM) +if (NOT ${SLANG_USE_SYSTEM_VULKAN_HEADERS}) + add_subdirectory(vulkan EXCLUDE_FROM_ALL SYSTEM) +endif() # metal-cpp headers add_library(metal-cpp INTERFACE) target_include_directories(metal-cpp INTERFACE "${CMAKE_CURRENT_LIST_DIR}/metal-cpp") # SPIRV-Headers -add_subdirectory(spirv-headers EXCLUDE_FROM_ALL SYSTEM) +if (NOT ${SLANG_USE_SYSTEM_SPIRV_HEADERS}) + add_subdirectory(spirv-headers EXCLUDE_FROM_ALL SYSTEM) +endif() if(SLANG_ENABLE_SLANG_GLSLANG) # SPIRV-Tools @@ -66,18 +78,20 @@ endif() add_library(imgui INTERFACE) target_include_directories(imgui INTERFACE "${CMAKE_CURRENT_LIST_DIR}/imgui") -# slang-rhi -set(SLANG_RHI_BINARY_DIR ${CMAKE_BINARY_DIR}/$<CONFIG>/bin) -set(SLANG_RHI_SLANG_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) -set(SLANG_RHI_SLANG_BINARY_DIR ${CMAKE_BINARY_DIR}) -set(SLANG_RHI_BUILD_TESTS OFF) -if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - set(SLANG_RHI_ENABLE_WGPU OFF) -endif() -if(SLANG_ENABLE_DX_ON_VK) - set(SLANG_RHI_HAS_D3D12 ON) +if(SLANG_ENABLE_SLANG_RHI) + # slang-rhi + set(SLANG_RHI_BINARY_DIR ${CMAKE_BINARY_DIR}/$<CONFIG>/bin) + set(SLANG_RHI_SLANG_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) + set(SLANG_RHI_SLANG_BINARY_DIR ${CMAKE_BINARY_DIR}) + set(SLANG_RHI_BUILD_TESTS OFF) + if(SLANG_ENABLE_DX_ON_VK) + set(SLANG_RHI_HAS_D3D12 ON) + endif() + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(SLANG_RHI_ENABLE_WGPU OFF) + endif() + add_subdirectory(slang-rhi) endif() -add_subdirectory(slang-rhi) # Tidy things up: |
