summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2024-10-15 01:07:58 +0800
committerGitHub <noreply@github.com>2024-10-14 10:07:58 -0700
commit5126d58ab2252357014df4136a4a1e07c7c2d5f4 (patch)
tree33ff345f9b3dcec0153ba3733aa3e0bbbd14059f
parent2e08f33386b65502e16eea33613bddf98ab8b440 (diff)
Fix release build failure (#5285)
* Fix race condition for building stdlib headers Fixes https://github.com/shader-slang/slang/issues/5270 * Generalize slangtarget install options * Install slang-without-embedded-stdlib with generators --------- Co-authored-by: Yong He <yonghe@outlook.com>
-rw-r--r--cmake/SlangTarget.cmake28
-rw-r--r--source/slang/CMakeLists.txt10
2 files changed, 18 insertions, 20 deletions
diff --git a/cmake/SlangTarget.cmake b/cmake/SlangTarget.cmake
index 9e3fe11cd..bf1abe3a9 100644
--- a/cmake/SlangTarget.cmake
+++ b/cmake/SlangTarget.cmake
@@ -390,35 +390,29 @@ function(slang_add_target dir type)
#
# Mark for installation
#
- if(ARG_INSTALL OR ARG_INSTALL_COMPONENT)
- set(component_args)
- if(ARG_INSTALL_COMPONENT)
- set(component_args COMPONENT ${ARG_INSTALL_COMPONENT})
- endif()
- set(exclude_arg)
- if(NOT ARG_INSTALL)
- set(exclude_arg EXCLUDE_FROM_ALL)
- endif()
+ macro(i)
install(
TARGETS ${target}
EXPORT SlangTargets
ARCHIVE
DESTINATION ${archive_subdir}
- ${component_args}
- ${exclude_arg}
+ ${ARGN}
LIBRARY
DESTINATION ${library_subdir}
- ${component_args}
- ${exclude_arg}
+ ${ARGN}
RUNTIME
DESTINATION ${runtime_subdir}
- ${component_args}
- ${exclude_arg}
+ ${ARGN}
PUBLIC_HEADER
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
- ${component_args}
- ${exclude_arg}
+ ${ARGN}
)
+ endmacro()
+ if(ARG_INSTALL)
+ i()
+ endif()
+ if(ARG_INSTALL_COMPONENT)
+ i(EXCLUDE_FROM_ALL COMPONENT ${ARG_INSTALL_COMPONENT})
endif()
endfunction()
diff --git a/source/slang/CMakeLists.txt b/source/slang/CMakeLists.txt
index 27600e3f8..cf12e6c24 100644
--- a/source/slang/CMakeLists.txt
+++ b/source/slang/CMakeLists.txt
@@ -179,8 +179,6 @@ set(slang_build_args
# a warning is disabled for a memset boundary check.
# everything looked fine and it is unclear why the checking fails
$<$<CXX_COMPILER_ID:GNU>:-Wno-error=stringop-overflow>
- # slang.h is in the project root, so include that directory in the interface
- # for slang
INCLUDE_DIRECTORIES_PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/slang-version-header
EXPORT_MACRO_PREFIX SLANG
EXPORT_TYPE_AS ${SLANG_LIB_TYPE}
@@ -198,11 +196,13 @@ set(slang_link_args
SPIRV-Headers
)
set(slang_interface_args
+ # slang.h is in the project root, so include that directory in the interface
+ # for slang
INCLUDE_DIRECTORIES_PUBLIC ${slang_SOURCE_DIR}
)
set(slang_public_lib_args
PUBLIC_HEADERS
- ${slang_SOURCE_DIR}/slang*.h
+ ${slang_SOURCE_DIR}/include/slang*.h
${CMAKE_CURRENT_BINARY_DIR}/slang-version-header/*.h
LINK_WITH_PRIVATE
$<IF:$<BOOL:${SLANG_EMBED_STDLIB}>,slang-embedded-stdlib,slang-no-embedded-stdlib>
@@ -229,6 +229,7 @@ if(NOT SLANG_EMBED_STDLIB)
${slang_link_args}
${slang_interface_args}
${slang_public_lib_args}
+ INSTALL_COMPONENT generators
)
add_library(slang-without-embedded-stdlib ALIAS slang)
else()
@@ -256,6 +257,9 @@ else()
slang-common-objects
slang-no-embedded-stdlib
slang-embedded-stdlib-source
+ OUTPUT_DIR generators
+ FOLDER generators
+ INSTALL_COMPONENT generators
)
slang_add_target(
.