Skip to content

Commit e9bfdbe

Browse files
authored
Merge pull request #907 from Devsh-Graphics-Programming/exUpdates
NBL_CREATE_NSC_COMPILE_RULES and example updates
2 parents 6077a62 + 7a26831 commit e9bfdbe

File tree

2 files changed

+27
-13
lines changed

2 files changed

+27
-13
lines changed

cmake/common.cmake

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,13 +1325,17 @@ struct DeviceConfigCaps
13251325
endif()
13261326

13271327
set(REQUIRED_SINGLE_ARGS TARGET BINARY_DIR OUTPUT_VAR INPUTS INCLUDE NAMESPACE MOUNT_POINT_DEFINE)
1328-
cmake_parse_arguments(IMPL "" "${REQUIRED_SINGLE_ARGS}" "COMMON_OPTIONS" ${ARGV})
1328+
cmake_parse_arguments(IMPL "" "${REQUIRED_SINGLE_ARGS};LINK_TO" "COMMON_OPTIONS;DEPENDS" ${ARGV})
13291329
NBL_PARSE_REQUIRED(IMPL ${REQUIRED_SINGLE_ARGS})
13301330

13311331
if(NOT TARGET ${IMPL_TARGET})
13321332
add_library(${IMPL_TARGET} INTERFACE)
13331333
endif()
13341334

1335+
if(IMPL_LINK_TO)
1336+
target_link_libraries(${IMPL_LINK_TO} PUBLIC ${IMPL_TARGET})
1337+
endif()
1338+
13351339
if(IS_ABSOLUTE "${IMPL_INCLUDE}")
13361340
message(FATAL_ERROR "INCLUDE argument must be relative path")
13371341
endif()
@@ -1429,6 +1433,10 @@ namespace @IMPL_NAMESPACE@ {
14291433
endif()
14301434
endif()
14311435

1436+
if(IMPL_DEPENDS)
1437+
list(APPEND DEPENDS_ON ${IMPL_DEPENDS})
1438+
endif()
1439+
14321440
set(HAS_CAPS FALSE)
14331441
set(CAPS_LENGTH 0)
14341442
string(JSON CAPS_TYPE TYPE "${IMPL_INPUTS}" ${INDEX} CAPS)
@@ -1625,9 +1633,14 @@ endfunction()
16251633

16261634
function(NBL_CREATE_RESOURCE_ARCHIVE)
16271635
set(REQUIRED_SINGLE_ARGS TARGET BIND NAMESPACE)
1628-
cmake_parse_arguments(IMPL "" "${REQUIRED_SINGLE_ARGS}" "BUILTINS" ${ARGV})
1636+
cmake_parse_arguments(IMPL "" "${REQUIRED_SINGLE_ARGS}" "BUILTINS;LINK_TO" ${ARGV})
16291637
NBL_PARSE_REQUIRED(IMPL ${REQUIRED_SINGLE_ARGS})
16301638

1639+
if(NOT NBL_EMBED_BUILTIN_RESOURCES)
1640+
add_library(${IMPL_TARGET} INTERFACE) # dummy, could use LINK_TO but makes no difference in this case
1641+
return()
1642+
endif()
1643+
16311644
set(IMPL_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${IMPL_TARGET}")
16321645

16331646
set(_BUNDLE_ARCHIVE_ABSOLUTE_PATH_ "")
@@ -1641,17 +1654,18 @@ function(NBL_CREATE_RESOURCE_ARCHIVE)
16411654
get_filename_component(BUILTIN_ARCHIVE_INPUT_ABS_ENTRY "${IMPL_INPUT_DIRECTORY}" ABSOLUTE)
16421655
set(BUILTIN_KEY_ENTRY_ABS "${BUILTIN_ARCHIVE_INPUT_ABS_ENTRY}/${_BUNDLE_ARCHIVE_ABSOLUTE_PATH_}")
16431656

1644-
if(NBL_EMBED_BUILTIN_RESOURCES)
1645-
foreach(IT ${IMPL_BUILTINS})
1646-
if(NBL_LOG_VERBOSE)
1647-
message(STATUS "[${IMPL_TARGET}'s Builtins]: Registered \"${IT}\" key")
1648-
endif()
1657+
unset(NBL_RESOURCES_TO_EMBED)
1658+
foreach(IT ${IMPL_BUILTINS})
1659+
if(NBL_LOG_VERBOSE)
1660+
message(STATUS "[${IMPL_TARGET}'s Builtins]: Registered \"${IT}\" key")
1661+
endif()
16491662

1650-
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED ${IT})
1651-
endforeach()
1663+
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED ${IT})
1664+
endforeach()
16521665

1653-
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_}")
1654-
else()
1655-
add_library(${IMPL_TARGET} INTERFACE) # dummy
1666+
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_}")
1667+
1668+
if(IMPL_LINK_TO)
1669+
LINK_BUILTIN_RESOURCES_TO_TARGET(${IMPL_LINK_TO} ${IMPL_TARGET})
16561670
endif()
16571671
endfunction()

0 commit comments

Comments
 (0)