Skip to content

Commit 6a28aa1

Browse files
committed
add NBL_MOUNT_POINT_DEFINES target property, handle in NBL_CREATE_NSC_COMPILE_RULES, update examples_tests submodule
1 parent 768b7cf commit 6a28aa1

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

cmake/common.cmake

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ macro(nbl_create_executable_project _EXTRA_SOURCES _EXTRA_OPTIONS _EXTRA_INCLUDE
3737
else()
3838
add_executable(${EXECUTABLE_NAME} ${NBL_EXECUTABLE_SOURCES})
3939
endif()
40-
40+
4141
target_compile_definitions(${EXECUTABLE_NAME} PUBLIC _NBL_APP_NAME_="${EXECUTABLE_NAME}")
4242

4343
target_include_directories(${EXECUTABLE_NAME}
@@ -1262,7 +1262,7 @@ define_property(TARGET PROPERTY NBL_CANONICAL_IDENTIFIERS
12621262
)
12631263

12641264
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"
12661266
)
12671267

12681268
define_property(TARGET PROPERTY NBL_HEADER_PATH
@@ -1274,6 +1274,10 @@ define_property(TARGET PROPERTY NBL_HEADER_CONTENT
12741274
BRIEF_DOCS "Contains NBL_HEADER_PATH's content"
12751275
)
12761276

1277+
define_property(TARGET PROPERTY NBL_MOUNT_POINT_DEFINES
1278+
BRIEF_DOCS "List of preprocessor defines with mount points"
1279+
)
1280+
12771281
function(NBL_CREATE_NSC_COMPILE_RULES)
12781282
set(COMMENT "this code has been autogenerated with Nabla CMake NBL_CREATE_HLSL_COMPILE_RULES utility")
12791283
set(DEVICE_CONFIG_VIEW
@@ -1320,7 +1324,7 @@ struct DeviceConfigCaps
13201324
)
13211325
endif()
13221326

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)
13241328
cmake_parse_arguments(IMPL "" "${REQUIRED_SINGLE_ARGS}" "COMMON_OPTIONS" ${ARGV})
13251329
NBL_PARSE_REQUIRED(IMPL ${REQUIRED_SINGLE_ARGS})
13261330

@@ -1345,6 +1349,7 @@ struct DeviceConfigCaps
13451349
TARGET ${IMPL_TARGET}
13461350
)
13471351

1352+
target_compile_definitions(${IMPL_TARGET} INTERFACE $<TARGET_PROPERTY:${IMPL_TARGET},NBL_MOUNT_POINT_DEFINES>)
13481353
target_include_directories(${IMPL_TARGET} INTERFACE ${INCLUDE_DIR})
13491354
set_target_properties(${IMPL_TARGET} PROPERTIES NBL_HEADER_GENERATED_RULE ON)
13501355

@@ -1380,6 +1385,13 @@ namespace @IMPL_NAMESPACE@ {
13801385
define_property(TARGET PROPERTY "${NS_IMPL_KEYS_PROPERTY}")
13811386
endif()
13821387

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}")
13831395

13841396
string(JSON JSON_LENGTH LENGTH "${IMPL_INPUTS}")
13851397
math(EXPR LAST_INDEX "${JSON_LENGTH} - 1")
@@ -1606,7 +1618,7 @@ namespace @IMPL_NAMESPACE@ {
16061618
endfunction()
16071619

16081620
function(NBL_CREATE_RESOURCE_ARCHIVE)
1609-
set(REQUIRED_SINGLE_ARGS TARGET BIND NAMESPACE MOUNT_POINT_DEFINE)
1621+
set(REQUIRED_SINGLE_ARGS TARGET BIND NAMESPACE)
16101622
cmake_parse_arguments(IMPL "" "${REQUIRED_SINGLE_ARGS}" "BUILTINS" ${ARGV})
16111623
NBL_PARSE_REQUIRED(IMPL ${REQUIRED_SINGLE_ARGS})
16121624

@@ -1634,9 +1646,6 @@ function(NBL_CREATE_RESOURCE_ARCHIVE)
16341646

16351647
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_}")
16361648
else()
1637-
add_library(${IMPL_TARGET} INTERFACE) # (***)
1649+
add_library(${IMPL_TARGET} INTERFACE) # dummy
16381650
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_}")
16421651
endfunction()

0 commit comments

Comments
 (0)