Skip to content

Commit eda05ee

Browse files
committed
adjust MSVC profile + correct incremental link options, update NBL_REQUEST_COMPILE_OPTION_SUPPORT & build system to correctly handle compile & link options, validate build options at configure time
1 parent b4e722a commit eda05ee

File tree

5 files changed

+162
-111
lines changed

5 files changed

+162
-111
lines changed

cmake/adjust/flags.cmake

+126-81
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@ define_property(TARGET PROPERTY NBL_CONFIGURATION_MAP
1212
BRIEF_DOCS "Stores configuration map for a target, it will evaluate to the configuration it's mapped to"
1313
)
1414

15-
# Usage: NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG <LANG;...> CONFIG <CONFIG;...> OPTIONS <OPTIONS;...> )
16-
# LANG, CONFIG - optional, OPTIONS - required
15+
# https://github.com/Kitware/CMake/blob/05e77b8a27033e6fd086456bd6cef28338ff1474/Modules/Internal/CheckCompilerFlag.cmake#L26C7-L26C42
16+
# must be cached because parse utility clears locals in the CheckCompilerFlag module
17+
set(CHECK_COMPILER_FLAG_OUTPUT_VARIABLE NBL_COMPILER_FLAG_OUTPUT CACHE INTERNAL "")
18+
19+
# Usage: NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG <LANG;...> CONFIG <CONFIG;...> COMPILE_OPTIONS <OPTIONS;...> LINK_OPTIONS <OPTIONS;...>)
1720
function(NBL_REQUEST_COMPILE_OPTION_SUPPORT)
18-
cmake_parse_arguments(IMPL "REQUIRED" "REQUEST_VAR" "LANG;CONFIG;OPTIONS" ${ARGN})
21+
cmake_parse_arguments(IMPL "REQUIRED" "REQUEST_VAR" "LANG;CONFIG;COMPILE_OPTIONS;LINK_OPTIONS" ${ARGN})
1922

2023
set(DEFAULT_COMPILERS c cxx)
2124
set(REQUEST_ALL_OPTIONS_PRESENT True)
@@ -24,63 +27,39 @@ function(NBL_REQUEST_COMPILE_OPTION_SUPPORT)
2427
list(APPEND IMPL_LANG ${DEFAULT_COMPILERS})
2528
endif()
2629

27-
if(NOT IMPL_OPTIONS)
28-
message(FATAL_ERROR "NBL_REQUEST_COMPILE_OPTION_SUPPORT's OPTIONS empty!")
29-
endif()
30-
3130
foreach(COMPILER IN ITEMS ${IMPL_LANG})
3231
string(TOUPPER "${COMPILER}" COMPILER_UPPER)
3332

34-
if(COMPILER_UPPER STREQUAL C)
35-
macro(VALIDATE_FLAG)
36-
check_c_compiler_flag(${ARGV})
37-
endmacro()
38-
elseif(COMPILER_UPPER STREQUAL CXX)
39-
macro(VALIDATE_FLAG)
40-
check_cxx_compiler_flag(${ARGV})
41-
endmacro()
42-
endif()
43-
44-
foreach(COMPILE_OPTION ${IMPL_OPTIONS})
45-
string(REGEX REPLACE "[-=:;/.]" "_" FLAG_SIGNATURE "${COMPILE_OPTION}")
46-
47-
set(TEST_NAME "NBL_${COMPILER_UPPER}_COMPILER_HAS_${FLAG_SIGNATURE}_FLAG")
48-
set(FLAG_VAR ${TEST_NAME})
33+
foreach(WHAT_OPTIONS IN ITEMS IMPL_COMPILE_OPTIONS IMPL_LINK_OPTIONS)
34+
if(NOT ${WHAT_OPTIONS})
35+
continue()
36+
endif()
4937

50-
VALIDATE_FLAG("${COMPILE_OPTION}" "${FLAG_VAR}")
38+
set(IMPL_OPTIONS ${${WHAT_OPTIONS}})
39+
string(REPLACE IMPL_ "" WHAT_OPTIONS "${WHAT_OPTIONS}")
5140

52-
if(${FLAG_VAR})
41+
foreach(COMPILE_OPTION ${IMPL_OPTIONS})
5342
if(IMPL_CONFIG)
5443
foreach(CONFIG ${IMPL_CONFIG})
5544
# TODO: validate (${CONFIG} \in ${CMAKE_CONFIGURATION_TYPES})
5645
string(TOUPPER "${CONFIG}" CONFIG_UPPER)
57-
set(NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_COMPILE_OPTIONS "${NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_COMPILE_OPTIONS};${COMPILE_OPTION}")
46+
set(NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_${WHAT_OPTIONS} "${NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_${WHAT_OPTIONS}};${COMPILE_OPTION}")
5847
endforeach()
5948
else()
60-
set(NBL_${COMPILER_UPPER}_COMPILE_OPTIONS "${NBL_${COMPILER_UPPER}_COMPILE_OPTIONS};${COMPILE_OPTION}")
61-
endif()
62-
else()
63-
if(IMPL_REQUIRED)
64-
message(FATAL_ERROR "${TEST_NAME} (a.k.a \"${COMPILE_OPTION}\") failed because its marked as REQUIRED!")
49+
set(NBL_${COMPILER_UPPER}_${WHAT_OPTIONS} "${NBL_${COMPILER_UPPER}_${WHAT_OPTIONS}};${COMPILE_OPTION}")
6550
endif()
51+
endforeach()
6652

67-
set(REQUEST_ALL_OPTIONS_PRESENT False)
53+
if(IMPL_CONFIG)
54+
foreach(CONFIG ${IMPL_CONFIG})
55+
string(TOUPPER "${CONFIG}" CONFIG_UPPER)
56+
set(NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_${WHAT_OPTIONS} ${NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_${WHAT_OPTIONS}} PARENT_SCOPE)
57+
endforeach()
58+
else()
59+
set(NBL_${COMPILER_UPPER}_${WHAT_OPTIONS} ${NBL_${COMPILER_UPPER}_${WHAT_OPTIONS}} PARENT_SCOPE)
6860
endif()
6961
endforeach()
70-
71-
if(IMPL_CONFIG)
72-
foreach(CONFIG ${IMPL_CONFIG})
73-
string(TOUPPER "${CONFIG}" CONFIG_UPPER)
74-
set(NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_COMPILE_OPTIONS ${NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_COMPILE_OPTIONS} PARENT_SCOPE)
75-
endforeach()
76-
else()
77-
set(NBL_${COMPILER_UPPER}_COMPILE_OPTIONS ${NBL_${COMPILER_UPPER}_COMPILE_OPTIONS} PARENT_SCOPE)
78-
endif()
7962
endforeach()
80-
81-
if(IMPL_REQUEST_VAR)
82-
set(${IMPL_REQUEST_VAR} ${REQUEST_ALL_OPTIONS_PRESENT} PARENT_SCOPE)
83-
endif()
8463
endfunction()
8564

8665
option(NBL_REQUEST_SSE_4_2 "Request compilation with SSE 4.2 instruction set enabled for Nabla projects" ON)
@@ -101,42 +80,104 @@ foreach(NBL_COMPILER_LANGUAGE IN ITEMS C CXX)
10180
continue()
10281
endif()
10382

104-
# a profile MUST define
105-
# - "NBL_${NBL_COMPILER_LANGUAGE}_${CONFIGURATION}_COMPILE_OPTIONS" (configuration dependent)
106-
# - "NBL_${NBL_COMPILER_LANGUAGE}_COMPILE_OPTIONS" (global)
83+
# a profile MUST define
10784

108-
# a profile MUST NOT define
109-
# - NBL_COMPILE_OPTIONS
85+
# - "NBL_${NBL_COMPILER_LANGUAGE}_${CONFIGURATION}_${WHAT}_OPTIONS" (configuration dependent)
86+
# - "NBL_${NBL_COMPILER_LANGUAGE}_${WHAT}_OPTIONS" (global)
11087

111-
set(NBL_COMPILE_OPTIONS_VAR_NAME NBL_${NBL_COMPILER_LANGUAGE}_COMPILE_OPTIONS)
112-
set(NBL_COMPILE_OPTIONS_VAR_VALUE ${${NBL_COMPILE_OPTIONS_VAR_NAME}})
88+
# a profile MUST NOT define
89+
# - NBL_${WHAT}_OPTIONS
90+
91+
# note:
92+
# - use NBL_REQUEST_COMPILE_OPTION_SUPPORT in profile to creates those vars
93+
# - include reset utility in profiles to init vars with empty lists
11394

114-
if(NOT DEFINED ${NBL_COMPILE_OPTIONS_VAR_NAME})
115-
message(FATAL_ERROR "\"${NBL_PROFILE_PATH}\" did not define \"${NBL_COMPILE_OPTIONS_VAR_NAME}\"!")
116-
endif()
95+
# TODO: DEFINITIONS for WHAT to unify the API
11796

118-
# update map with configuration dependent compile options
119-
foreach(CONFIGURATION IN ITEMS RELEASE RELWITHDEBINFO DEBUG)
120-
set(NBL_CONFIGURATION_COMPILE_OPTIONS_VAR_NAME NBL_${NBL_COMPILER_LANGUAGE}_${CONFIGURATION}_COMPILE_OPTIONS)
121-
set(NBL_CONFIGURATION_COMPILE_OPTIONS_VAR_VALUE ${${NBL_CONFIGURATION_COMPILE_OPTIONS_VAR_NAME}})
97+
foreach(WHAT COMPILE LINK)
98+
set(NBL_OPTIONS_VAR_NAME NBL_${NBL_COMPILER_LANGUAGE}_${WHAT}_OPTIONS)
99+
set(NBL_OPTIONS_VAR_VALUE ${${NBL_OPTIONS_VAR_NAME}})
122100

123-
if(NOT DEFINED ${NBL_CONFIGURATION_COMPILE_OPTIONS_VAR_NAME})
124-
message(FATAL_ERROR "\"${NBL_PROFILE_PATH}\" did not define \"${NBL_CONFIGURATION_COMPILE_OPTIONS_VAR_NAME}\"!")
125-
endif()
101+
if(NOT DEFINED ${NBL_OPTIONS_VAR_NAME})
102+
message(FATAL_ERROR "\"${NBL_PROFILE_PATH}\" did not define \"${NBL_OPTIONS_VAR_NAME}\"!")
103+
endif()
126104

127-
list(APPEND NBL_${CONFIGURATION}_COMPILE_OPTIONS
128-
# note that "${NBL_CONFIGURATION_COMPILE_OPTIONS_VAR_VALUE}" MUST NOT contain ANY
129-
# $<$<CONFIG:<>> generator expression in order to support our configuration mapping features
130-
$<$<COMPILE_LANGUAGE:${NBL_COMPILER_LANGUAGE}>:${NBL_CONFIGURATION_COMPILE_OPTIONS_VAR_VALUE}>
131-
)
105+
# update map with configuration dependent compile options
106+
foreach(CONFIGURATION IN ITEMS RELEASE RELWITHDEBINFO DEBUG)
107+
set(NBL_CONFIGURATION_OPTIONS_VAR_NAME NBL_${NBL_COMPILER_LANGUAGE}_${CONFIGURATION}_${WHAT}_OPTIONS)
108+
set(NBL_CONFIGURATION_OPTIONS_VAR_VALUE ${${NBL_CONFIGURATION_OPTIONS_VAR_NAME}})
132109

133-
set(NBL_${CONFIGURATION}_COMPILE_OPTIONS ${NBL_${CONFIGURATION}_COMPILE_OPTIONS})
134-
endforeach()
110+
if(NOT DEFINED ${NBL_CONFIGURATION_OPTIONS_VAR_NAME})
111+
message(FATAL_ERROR "\"${NBL_PROFILE_PATH}\" did not define \"${NBL_CONFIGURATION_OPTIONS_VAR_NAME}\"!")
112+
endif()
113+
114+
set(NBL_${CONFIGURATION}_${WHAT}_OPTIONS ${NBL_${CONFIGURATION}_${WHAT}_OPTIONS}
115+
# note that "${NBL_CONFIGURATION_OPTIONS_VAR_VALUE}" MUST NOT contain ANY
116+
# $<$<CONFIG:<>> generator expression in order to support our configuration mapping features
117+
$<$<${WHAT}_LANGUAGE:${NBL_COMPILER_LANGUAGE}>:${NBL_CONFIGURATION_OPTIONS_VAR_VALUE}>
118+
)
119+
endforeach()
120+
121+
# update map with global compile options
122+
set(NBL_${WHAT}_OPTIONS ${NBL_${WHAT}_OPTIONS}
123+
$<$<${WHAT}_LANGUAGE:${NBL_COMPILER_LANGUAGE}>:${NBL_${NBL_COMPILER_LANGUAGE}_${WHAT}_OPTIONS}>
124+
)
125+
endforeach()
126+
127+
block()
128+
# validate build with a vendor profile, any warning diagnostic = error
129+
# if you hit error it means the profile generates diagnostics due to:
130+
# - an option (compile or link) which doesn't exist (typo? check vendor docs)
131+
# - a set of options which invalidates an option (eg. MSVC's /INCREMENTAL with /LTCG:incremental is invalid, however linker will emit a warning by default + do a fall-back)
132+
# https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_FLAGS.html#variable:CMAKE_%3CLANG%3E_FLAGS
133+
# https://cmake.org/cmake/help/latest/module/CheckCompilerFlag.html#command:check_compiler_flag
134+
135+
set(CMAKE_${NBL_COMPILER_LANGUAGE}_FLAGS)
136+
137+
foreach(CONFIGURATION IN ITEMS Release RelWithDebInfo Debug)
138+
set(CMAKE_TRY_COMPILE_CONFIGURATION ${CONFIGURATION})
139+
string(TOUPPER "${CONFIGURATION}" CONFIGURATION)
140+
141+
set(TEST_NAME "NBL_${NBL_COMPILER_LANGUAGE}_LANG_${CONFIGURATION}_BUILD_OPTIONS_SUPPORT")
142+
set(CMAKE_${NBL_COMPILER_LANGUAGE}_FLAGS_${CONFIGURATION})
143+
144+
set(COMPILE_OPTIONS ${NBL_${NBL_COMPILER_LANGUAGE}_COMPILE_OPTIONS} ${NBL_${NBL_COMPILER_LANGUAGE}_${CONFIGURATION}_COMPILE_OPTIONS})
145+
set(LINK_OPTIONS ${NBL_${NBL_COMPILER_LANGUAGE}_${CONFIGURATION}_LINK_OPTIONS})
146+
set(COMBINED ${COMPILE_OPTIONS} ${LINK_OPTIONS})
147+
148+
set(NBL_OUTPUT_FILE "${CMAKE_BINARY_DIR}/.nbl/try-compile/${TEST_NAME}.output") # no hash in output diagnostic file, desired
149+
150+
string(SHA1 OPTIONS_HASH "${COMBINED}")
151+
string(APPEND TEST_NAME "_HASH_${OPTIONS_HASH}")
152+
153+
set(FLAG_VAR ${TEST_NAME})
154+
set(CMAKE_REQUIRED_LINK_OPTIONS ${LINK_OPTIONS})
155+
string(REPLACE ";" " " CLI_COMPILE_OPTIONS "${COMPILE_OPTIONS}")
156+
157+
if(NBL_COMPILER_LANGUAGE STREQUAL C)
158+
check_c_compiler_flag("${CLI_COMPILE_OPTIONS}" "${FLAG_VAR}")
159+
elseif(NBL_COMPILER_LANGUAGE STREQUAL CXX)
160+
check_cxx_compiler_flag("${CLI_COMPILE_OPTIONS}" "${FLAG_VAR}")
161+
endif()
162+
163+
if(NOT ${FLAG_VAR})
164+
if(NOT "${NBL_COMPILER_FLAG_OUTPUT}" STREQUAL "")
165+
file(WRITE "${NBL_OUTPUT_FILE}" "${NBL_COMPILER_FLAG_OUTPUT}") # lock into file, do not cache, must read from the file because of NBL_COMPILER_FLAG_OUTPUT availability (CMake module writes an output only once before a signature flag status is created)
166+
endif()
135167

136-
# update map with global compile options
137-
list(APPEND NBL_COMPILE_OPTIONS $<$<COMPILE_LANGUAGE:${NBL_COMPILER_LANGUAGE}>:${NBL_${NBL_COMPILER_LANGUAGE}_COMPILE_OPTIONS}>)
168+
if(EXISTS "${NBL_OUTPUT_FILE}")
169+
file(READ "${NBL_OUTPUT_FILE}" NBL_DIAGNOSTICS)
170+
set(NBL_DIAGNOSTICS "Diagnostics:\n${NBL_DIAGNOSTICS}")
171+
else()
172+
set(NBL_DIAGNOSTICS)
173+
endif()
138174

139-
set(NBL_COMPILE_OPTIONS ${NBL_COMPILE_OPTIONS})
175+
if(NOT DEFINED NBL_SKIP_BUILD_OPTIONS_VALIDATION)
176+
message(FATAL_ERROR "${TEST_NAME} failed! To skip the validation define \"NBL_SKIP_BUILD_OPTIONS_VALIDATION\". ${NBL_DIAGNOSTICS}")
177+
endif()
178+
endif()
179+
endforeach()
180+
endblock()
140181
endforeach()
141182

142183
function(NBL_EXT_P_APPEND_COMPILE_OPTIONS NBL_LIST_NAME MAP_RELEASE MAP_RELWITHDEBINFO MAP_DEBUG)
@@ -240,23 +281,27 @@ function(nbl_adjust_flags)
240281

241282
# global compile options
242283
list(APPEND _D_NBL_COMPILE_OPTIONS_ ${NBL_COMPILE_OPTIONS})
243-
244-
# per configuration compile options with mapping
245-
list(APPEND _D_NBL_COMPILE_OPTIONS_ $<$<CONFIG:Debug>:${NBL_${NBL_MAP_DEBUG_ITEM_U}_COMPILE_OPTIONS}>)
246-
list(APPEND _D_NBL_COMPILE_OPTIONS_ $<$<CONFIG:Release>:${NBL_${NBL_MAP_RELEASE_ITEM_U}_COMPILE_OPTIONS}>)
247-
list(APPEND _D_NBL_COMPILE_OPTIONS_ $<$<CONFIG:RelWithDebInfo>:${NBL_${NBL_MAP_RELWITHDEBINFO_ITEM_U}_COMPILE_OPTIONS}>)
248-
249-
# configuration mapping properties
250-
string(APPEND _D_NBL_CONFIGURATION_MAP_ $<$<CONFIG:Debug>:${NBL_MAP_DEBUG_ITEM_U}>)
251-
string(APPEND _D_NBL_CONFIGURATION_MAP_ $<$<CONFIG:Release>:${NBL_MAP_RELEASE_ITEM_U}>)
252-
string(APPEND _D_NBL_CONFIGURATION_MAP_ $<$<CONFIG:RelWithDebInfo>:${NBL_MAP_RELWITHDEBINFO_ITEM_U}>)
284+
285+
foreach(CONFIG ${CMAKE_CONFIGURATION_TYPES})
286+
string(TOUPPER "${CONFIG}" CONFIG_U)
287+
288+
# per configuration options with mapping
289+
foreach(WHAT COMPILE LINK)
290+
list(APPEND _D_NBL_${WHAT}_OPTIONS_ $<$<CONFIG:${CONFIG}>:${NBL_${NBL_MAP_${CONFIG_U}_ITEM_U}_${WHAT}_OPTIONS}>)
291+
endforeach()
292+
293+
# configuration mapping properties
294+
string(APPEND _D_NBL_CONFIGURATION_MAP_ $<$<CONFIG:${CONFIG}>:${NBL_MAP_${CONFIG_U}_ITEM_U}>)
295+
endforeach()
253296

254297
set_target_properties(${NBL_TARGET_ITEM} PROPERTIES
255298
NBL_CONFIGURATION_MAP "${_D_NBL_CONFIGURATION_MAP_}"
256299
COMPILE_OPTIONS "${_D_NBL_COMPILE_OPTIONS_}"
300+
LINK_OPTIONS "${_D_NBL_LINK_OPTIONS_}"
257301
)
258302
unset(_D_NBL_CONFIGURATION_MAP_)
259303
unset(_D_NBL_COMPILE_OPTIONS_)
304+
unset(_D_NBL_LINK_OPTIONS_)
260305

261306
set(MAPPED_CONFIG $<TARGET_GENEX_EVAL:${NBL_TARGET_ITEM},$<TARGET_PROPERTY:${NBL_TARGET_ITEM},NBL_CONFIGURATION_MAP>>)
262307

cmake/adjust/template/vendor/impl/Clang.cmake

+8-8
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ endif()
99
if(NBL_REQUEST_SSE_4_2)
1010
NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} OPTIONS
1111
-msse4.2 # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang1-msse4.2
12-
REQUIRED) # TODO: (****) optional but then adjust 3rdparty options on fail
12+
) # TODO: (****) optional but then adjust 3rdparty options on fail
1313
endif()
1414

1515
if(NBL_REQUEST_SSE_AVX2)
1616
NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} OPTIONS
1717
-mavx2 # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-mavx2
18-
REQUIRED) # TODO: (****)
18+
) # TODO: (****)
1919
endif()
2020

2121
NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} OPTIONS
@@ -33,7 +33,7 @@ NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} OPTIONS
3333
# sh script for compilation
3434
-fcrash-diagnostics=compiler
3535
"-fcrash-diagnostics-dir=${NBL_ROOT_PATH_BINARY}/.crash-report"
36-
REQUIRED)
36+
)
3737

3838
NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} OPTIONS
3939
# latest Clang(CL) 19.1.1 shipped with VS seems to require explicitly features to be listed (simdjson)
@@ -71,10 +71,10 @@ NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} OPTIONS
7171
-Wno-error=unused-parameter
7272
-Wno-error=ignored-attributes
7373
-Wno-error=non-pod-varargs
74-
REQUIRED)
74+
)
7575

7676
if(NBL_SANITIZE_ADDRESS)
77-
NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} OPTIONS -fsanitize=address REQUIRED)
77+
NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} OPTIONS -fsanitize=address)
7878
endif()
7979

8080
if(NBL_SANITIZE_THREAD)
@@ -87,17 +87,17 @@ NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} CONFIG DEBUG OPTIONS
8787
-Wall # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-W-warning
8888
-gline-tables-only # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-gline-tables-only
8989
-Xclang=-fno-inline-functions # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-finline-functions
90-
REQUIRED)
90+
)
9191

9292
NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} CONFIG RELEASE OPTIONS
9393
-O2 # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-O-arg
9494
-Xclang=-finline-functions # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-finline-functions
9595
-mno-incremental-linker-compatible # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-mincremental-linker-compatible
96-
REQUIRED)
96+
)
9797

9898
NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} CONFIG RELWITHDEBINFO OPTIONS
9999
-g # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-g
100100
-O1 # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-O-arg
101101
-Xclang=-finline-functions # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-finline-functions
102102
-mno-incremental-linker-compatible # https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-mincremental-linker-compatible
103-
REQUIRED)
103+
)

0 commit comments

Comments
 (0)