File tree 9 files changed +35
-15
lines changed
9 files changed +35
-15
lines changed Original file line number Diff line number Diff line change @@ -193,6 +193,8 @@ option(
193
193
ON
194
194
)
195
195
196
+ option (SLANG_ENABLE_RELEASE_LTO "Enable LTO for Release builds" ON )
197
+
196
198
option (
197
199
SLANG_ENABLE_SPLIT_DEBUG_INFO
198
200
"Generate split debug info for debug builds"
@@ -383,12 +385,14 @@ configure_package_config_file(
383
385
# linkable targets. In this case do not export the targets. Otherwise, just
384
386
# export the slang targets.
385
387
if (NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten" )
386
- install (
387
- EXPORT SlangTargets
388
- FILE ${PROJECT_NAME} Targets.cmake
389
- NAMESPACE ${PROJECT_NAME} ::
390
- DESTINATION cmake
391
- )
388
+ if (NOT ${SLANG_BUILD_TYPE} STREQUAL "STATIC" )
389
+ install (
390
+ EXPORT SlangTargets
391
+ FILE ${PROJECT_NAME} Targets.cmake
392
+ NAMESPACE ${PROJECT_NAME} ::
393
+ DESTINATION cmake
394
+ )
395
+ endif ()
392
396
endif ()
393
397
394
398
install (
Original file line number Diff line number Diff line change @@ -166,12 +166,14 @@ function(slang_add_target dir type)
166
166
167
167
# Enable link-time optimization for release builds
168
168
# See: https://cmake.org/cmake/help/latest/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.html
169
- set_target_properties (
170
- ${target}
171
- PROPERTIES
172
- INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE
173
- INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE
174
- )
169
+ if (SLANG_ENABLE_RELEASE_LTO)
170
+ set_target_properties (
171
+ ${target}
172
+ PROPERTIES
173
+ INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE
174
+ INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE
175
+ )
176
+ endif ()
175
177
176
178
#
177
179
# Set the output directory
Original file line number Diff line number Diff line change @@ -165,6 +165,7 @@ See the [documentation on testing](../tools/slang-test/README.md) for more infor
165
165
| ` SLANG_ENABLE_EXAMPLES ` | ` TRUE ` | Enable example targets, requires SLANG_ENABLE_GFX |
166
166
| ` SLANG_LIB_TYPE ` | ` SHARED ` | How to build the slang library |
167
167
| ` SLANG_ENABLE_RELEASE_DEBUG_INFO ` | ` TRUE ` | Enable generating debug info for Release configs |
168
+ | ` SLANG_ENABLE_RELEASE_LTO ` | ` TRUE ` | Enable LTO for Release builds |
168
169
| ` SLANG_ENABLE_SPLIT_DEBUG_INFO ` | ` TRUE ` | Enable generating split debug info for Debug and RelWithDebInfo configs |
169
170
| ` SLANG_SLANG_LLVM_FLAVOR ` | ` FETCH_BINARY_IF_POSSIBLE ` | How to set up llvm support |
170
171
| ` SLANG_SLANG_LLVM_BINARY_URL ` | System dependent | URL specifying the location of the slang-llvm prebuilt library |
Original file line number Diff line number Diff line change @@ -23,12 +23,14 @@ endforeach()
23
23
slang_add_target(
24
24
.
25
25
OBJECT
26
+ EXPORT_MACRO_PREFIX SLANG
26
27
EXPLICIT_SOURCE ${prelude_source}
27
28
EXCLUDE_FROM_ALL
28
29
TARGET_NAME prelude
29
30
INCLUDE_DIRECTORIES_PUBLIC
30
31
${CMAKE_CURRENT_LIST_DIR}
31
32
${CMAKE_CURRENT_LIST_DIR} /../include
33
+ EXPORT_TYPE_AS ${SLANG_LIB_TYPE}
32
34
LINK_WITH_PRIVATE unordered_dense::unordered_dense
33
35
PUBLIC_HEADERS ${CMAKE_CURRENT_LIST_DIR} /slang*.h
34
36
# It's an object library, so the install step only installs the headers
Original file line number Diff line number Diff line change 1
1
slang_add_target(
2
2
.
3
3
STATIC
4
+ EXPORT_MACRO_PREFIX SLANG
4
5
EXCLUDE_FROM_ALL
5
6
USE_EXTRA_WARNINGS
6
7
LINK_WITH_PRIVATE core
Original file line number Diff line number Diff line change 1
1
slang_add_target(
2
2
.
3
3
STATIC
4
+ EXPORT_MACRO_PREFIX SLANG
4
5
EXCLUDE_FROM_ALL
5
6
USE_EXTRA_WARNINGS
6
7
LINK_WITH_PRIVATE miniz lz4_static Threads::Threads ${CMAKE_DL_LIBS}
Original file line number Diff line number Diff line change 1
1
if (SLANG_ENABLE_SLANGRT)
2
2
slang_add_target(
3
3
.
4
- SHARED
4
+ ${SLANG_LIB_TYPE}
5
5
# This compiles 'core' again with the SLANG_RT_DYNAMIC_EXPORT macro defined
6
6
EXTRA_SOURCE_DIRS ${slang_SOURCE_DIR} /source /core
7
7
USE_EXTRA_WARNINGS
Original file line number Diff line number Diff line change @@ -28,8 +28,10 @@ add_custom_command(
28
28
slang_add_target(
29
29
slang-capability-defs
30
30
OBJECT
31
+ EXPORT_MACRO_PREFIX SLANG
31
32
USE_EXTRA_WARNINGS
32
33
EXPLICIT_SOURCE ${SLANG_CAPABILITY_GENERATED_HEADERS}
34
+ EXPORT_TYPE_AS ${SLANG_LIB_TYPE}
33
35
LINK_WITH_PRIVATE core
34
36
INCLUDE_DIRECTORIES_PUBLIC
35
37
"${SLANG_CAPABILITY_OUTPUT_DIR} "
@@ -40,8 +42,10 @@ slang_add_target(
40
42
slang_add_target(
41
43
slang-capability-lookup
42
44
OBJECT
45
+ EXPORT_MACRO_PREFIX SLANG
43
46
USE_EXTRA_WARNINGS
44
47
EXPLICIT_SOURCE ${SLANG_CAPABILITY_GENERATED_SOURCE}
48
+ EXPORT_TYPE_AS ${SLANG_LIB_TYPE}
45
49
LINK_WITH_PRIVATE core slang-capability-defs
46
50
EXCLUDE_FROM_ALL
47
51
FOLDER generated
@@ -157,10 +161,12 @@ add_custom_command(
157
161
slang_add_target(
158
162
slang-lookup-tables
159
163
OBJECT
164
+ EXPORT_MACRO_PREFIX SLANG
160
165
USE_EXTRA_WARNINGS
161
166
EXPLICIT_SOURCE
162
167
${SLANG_LOOKUP_GENERATED_SOURCE}
163
168
${SLANG_SPIRV_CORE_GRAMMAR_SOURCE}
169
+ EXPORT_TYPE_AS ${SLANG_LIB_TYPE}
164
170
LINK_WITH_PRIVATE core SPIRV-Headers
165
171
EXCLUDE_FROM_ALL
166
172
FOLDER generated
@@ -274,6 +280,7 @@ else()
274
280
slang_add_target(
275
281
.
276
282
${SLANG_LIB_TYPE}
283
+ EXPORT_MACRO_PREFIX SLANG
277
284
${slang_link_args}
278
285
${slang_interface_args}
279
286
NO_SOURCE
@@ -291,6 +298,7 @@ else()
291
298
slang_add_target(
292
299
.
293
300
${SLANG_LIB_TYPE}
301
+ EXPORT_MACRO_PREFIX SLANG
294
302
${slang_link_args}
295
303
${slang_interface_args}
296
304
${slang_public_lib_args}
Original file line number Diff line number Diff line change @@ -73,6 +73,7 @@ generator(
73
73
slang_add_target(
74
74
slang-cpp-parser
75
75
STATIC
76
+ EXPORT_MACRO_PREFIX SLANG
76
77
USE_FEWER_WARNINGS
77
78
LINK_WITH_PRIVATE core compiler-core
78
79
INCLUDE_DIRECTORIES_PUBLIC .
@@ -104,7 +105,7 @@ if(SLANG_ENABLE_GFX)
104
105
#
105
106
slang_add_target(
106
107
platform
107
- SHARED
108
+ ${SLANG_LIB_TYPE}
108
109
EXCLUDE_FROM_ALL
109
110
USE_FEWER_WARNINGS
110
111
LINK_WITH_PRIVATE
@@ -128,7 +129,7 @@ if(SLANG_ENABLE_GFX)
128
129
#
129
130
slang_add_target(
130
131
gfx
131
- SHARED
132
+ ${SLANG_LIB_TYPE}
132
133
USE_FEWER_WARNINGS
133
134
LINK_WITH_PRIVATE
134
135
core
You can’t perform that action at this time.
0 commit comments