@@ -15,9 +15,10 @@ define_property(TARGET PROPERTY NBL_CONFIGURATION_MAP
15
15
# Usage: NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG <LANG;...> CONFIG <CONFIG;...> OPTIONS <OPTIONS;...> )
16
16
# LANG, CONFIG - optional, OPTIONS - required
17
17
function (NBL_REQUEST_COMPILE_OPTION_SUPPORT )
18
- cmake_parse_arguments (IMPL "" "" "LANG;CONFIG;OPTIONS" ${ARGN} )
18
+ cmake_parse_arguments (IMPL "" "REQUEST_VAR;REQUIRED " "LANG;CONFIG;OPTIONS" ${ARGN} )
19
19
20
20
set (DEFAULT_COMPILERS c cxx )
21
+ set (REQUEST_ALL_OPTIONS_PRESENT True )
21
22
22
23
if (NOT IMPL_LANG )
23
24
list (APPEND IMPL_LANG ${DEFAULT_COMPILERS} )
@@ -51,14 +52,33 @@ function(NBL_REQUEST_COMPILE_OPTION_SUPPORT)
51
52
foreach (CONFIG ${IMPL_CONFIG} )
52
53
# TODO: validate (${CONFIG} \in ${CMAKE_CONFIGURATION_TYPES})
53
54
string (TOUPPER "${CONFIG} " CONFIG_UPPER )
54
- set (NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_COMPILE_OPTIONS "${NBL_${COMPILER_UPPER} _${CONFIG_UPPER} _COMPILE_OPTIONS};${COMPILE_OPTION} " PARENT_SCOPE )
55
+ set (NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_COMPILE_OPTIONS "${NBL_${COMPILER_UPPER} _${CONFIG_UPPER} _COMPILE_OPTIONS};${COMPILE_OPTION} " )
55
56
endforeach ()
56
57
else ()
57
- set (NBL_${COMPILER_UPPER}_COMPILE_OPTIONS "${NBL_${COMPILER_UPPER} _COMPILE_OPTIONS};${COMPILE_OPTION} " PARENT_SCOPE )
58
+ set (NBL_${COMPILER_UPPER}_COMPILE_OPTIONS "${NBL_${COMPILER_UPPER} _COMPILE_OPTIONS};${COMPILE_OPTION} " )
58
59
endif ()
60
+ else ()
61
+ if (IMPL_REQUIRED )
62
+ message (FATAL_ERROR "Terminating, NBL_REQUEST_COMPILE_OPTION_SUPPORT was invoked with REQUIRED qualifier!" )
63
+ endif ()
64
+
65
+ set (REQUEST_ALL_OPTIONS_PRESENT False )
59
66
endif ()
60
67
endforeach ()
68
+
69
+ if (IMPL_CONFIG )
70
+ foreach (CONFIG ${IMPL_CONFIG} )
71
+ string (TOUPPER "${CONFIG} " CONFIG_UPPER )
72
+ set (NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_COMPILE_OPTIONS ${NBL_${COMPILER_UPPER}_${CONFIG_UPPER}_COMPILE_OPTIONS} PARENT_SCOPE )
73
+ endforeach ()
74
+ else ()
75
+ set (NBL_${COMPILER_UPPER}_COMPILE_OPTIONS ${NBL_${COMPILER_UPPER}_COMPILE_OPTIONS} PARENT_SCOPE )
76
+ endif ()
61
77
endforeach ()
78
+
79
+ if (IMPL_REQUEST_VAR )
80
+ set (${IMPL_REQUEST_VAR} ${REQUEST_ALL_OPTIONS_PRESENT} PARENT_SCOPE )
81
+ endif ()
62
82
endfunction ()
63
83
64
84
option (NBL_REQUEST_SSE_4_2 "Request compilation with SSE 4.2 instruction set enabled for Nabla projects" ON )
0 commit comments