@@ -37,7 +37,7 @@ macro(nbl_create_executable_project _EXTRA_SOURCES _EXTRA_OPTIONS _EXTRA_INCLUDE
37
37
else ()
38
38
add_executable (${EXECUTABLE_NAME} ${NBL_EXECUTABLE_SOURCES} )
39
39
endif ()
40
-
40
+
41
41
target_compile_definitions (${EXECUTABLE_NAME} PUBLIC _NBL_APP_NAME_= "${EXECUTABLE_NAME} " )
42
42
43
43
target_include_directories (${EXECUTABLE_NAME}
@@ -1262,7 +1262,7 @@ define_property(TARGET PROPERTY NBL_CANONICAL_IDENTIFIERS
1262
1262
)
1263
1263
1264
1264
define_property (TARGET PROPERTY NBL_SPIRV_OUTPUTS
1265
- BRIEF_DOCS "Absolute paths to all <SPIRV output>s which are part of NSC compile rules"
1265
+ BRIEF_DOCS "List of absolute paths to all <SPIRV output>s which are part of NSC compile rules"
1266
1266
)
1267
1267
1268
1268
define_property (TARGET PROPERTY NBL_HEADER_PATH
@@ -1274,6 +1274,10 @@ define_property(TARGET PROPERTY NBL_HEADER_CONTENT
1274
1274
BRIEF_DOCS "Contains NBL_HEADER_PATH's content"
1275
1275
)
1276
1276
1277
+ define_property (TARGET PROPERTY NBL_MOUNT_POINT_DEFINES
1278
+ BRIEF_DOCS "List of preprocessor defines with mount points"
1279
+ )
1280
+
1277
1281
function (NBL_CREATE_NSC_COMPILE_RULES )
1278
1282
set (COMMENT "this code has been autogenerated with Nabla CMake NBL_CREATE_HLSL_COMPILE_RULES utility" )
1279
1283
set (DEVICE_CONFIG_VIEW
@@ -1320,7 +1324,7 @@ struct DeviceConfigCaps
1320
1324
)
1321
1325
endif ()
1322
1326
1323
- set (REQUIRED_SINGLE_ARGS TARGET BINARY_DIR OUTPUT_VAR INPUTS INCLUDE NAMESPACE )
1327
+ set (REQUIRED_SINGLE_ARGS TARGET BINARY_DIR OUTPUT_VAR INPUTS INCLUDE NAMESPACE MOUNT_POINT_DEFINE )
1324
1328
cmake_parse_arguments (IMPL "" "${REQUIRED_SINGLE_ARGS} " "COMMON_OPTIONS" ${ARGV} )
1325
1329
NBL_PARSE_REQUIRED (IMPL ${REQUIRED_SINGLE_ARGS} )
1326
1330
@@ -1345,6 +1349,7 @@ struct DeviceConfigCaps
1345
1349
TARGET ${IMPL_TARGET}
1346
1350
)
1347
1351
1352
+ target_compile_definitions (${IMPL_TARGET} INTERFACE $< TARGET_PROPERTY:${IMPL_TARGET} ,NBL_MOUNT_POINT_DEFINES> )
1348
1353
target_include_directories (${IMPL_TARGET} INTERFACE ${INCLUDE_DIR} )
1349
1354
set_target_properties (${IMPL_TARGET} PROPERTIES NBL_HEADER_GENERATED_RULE ON )
1350
1355
@@ -1380,6 +1385,13 @@ namespace @IMPL_NAMESPACE@ {
1380
1385
define_property (TARGET PROPERTY "${NS_IMPL_KEYS_PROPERTY} " )
1381
1386
endif ()
1382
1387
1388
+ get_target_property (MP_DEFINES ${IMPL_TARGET} NBL_MOUNT_POINT_DEFINES )
1389
+ if (NOT MP_DEFINES )
1390
+ unset (MP_DEFINES )
1391
+ endif ()
1392
+ list (FILTER MP_DEFINES EXCLUDE REGEX "^${IMPL_MOUNT_POINT_DEFINE} =" )
1393
+ list (APPEND MP_DEFINES ${IMPL_MOUNT_POINT_DEFINE} = "${IMPL_BINARY_DIR} " )
1394
+ set_target_properties (${IMPL_TARGET} PROPERTIES NBL_MOUNT_POINT_DEFINES "${MP_DEFINES} " )
1383
1395
1384
1396
string (JSON JSON_LENGTH LENGTH "${IMPL_INPUTS} " )
1385
1397
math (EXPR LAST_INDEX "${JSON_LENGTH} - 1" )
@@ -1606,7 +1618,7 @@ namespace @IMPL_NAMESPACE@ {
1606
1618
endfunction ()
1607
1619
1608
1620
function (NBL_CREATE_RESOURCE_ARCHIVE )
1609
- set (REQUIRED_SINGLE_ARGS TARGET BIND NAMESPACE MOUNT_POINT_DEFINE )
1621
+ set (REQUIRED_SINGLE_ARGS TARGET BIND NAMESPACE )
1610
1622
cmake_parse_arguments (IMPL "" "${REQUIRED_SINGLE_ARGS} " "BUILTINS" ${ARGV} )
1611
1623
NBL_PARSE_REQUIRED (IMPL ${REQUIRED_SINGLE_ARGS} )
1612
1624
@@ -1634,9 +1646,6 @@ function(NBL_CREATE_RESOURCE_ARCHIVE)
1634
1646
1635
1647
ADD_CUSTOM_BUILTIN_RESOURCES (${IMPL_TARGET} NBL_RESOURCES_TO_EMBED "${_BUNDLE_SEARCH_DIRECTORY_} " "${_BUNDLE_ARCHIVE_ABSOLUTE_PATH_} " "${_BUILTIN_RESOURCES_NAMESPACE_} " "${_OUTPUT_DIRECTORY_HEADER_} " "${_OUTPUT_DIRECTORY_SOURCE_} " "${_LINK_MODE_} " )
1636
1648
else ()
1637
- add_library (${IMPL_TARGET} INTERFACE ) # (***)
1649
+ add_library (${IMPL_TARGET} INTERFACE ) # dummy
1638
1650
endif ()
1639
-
1640
- # TODO (***): actually I better have this in meta target created by NBL_CREATE_NSC_COMPILE_RULES, then I kill its INTERFACE when builtins are off
1641
- target_compile_definitions (${IMPL_TARGET} INTERFACE ${IMPL_MOUNT_POINT_DEFINE} = "${_BUNDLE_SEARCH_DIRECTORY_} " )
1642
1651
endfunction ()
0 commit comments