Skip to content

Commit a4b32c6

Browse files
committed
list all created builtin libraries and link to Nabla, bring back python scripts for builtin resources generation
1 parent bcc127f commit a4b32c6

File tree

5 files changed

+67
-11
lines changed

5 files changed

+67
-11
lines changed

cmake/common.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ macro(nbl_create_executable_project _EXTRA_SOURCES _EXTRA_OPTIONS _EXTRA_INCLUDE
8484

8585
target_include_directories(${EXECUTABLE_NAME}
8686
PUBLIC "${NBL_ROOT_PATH}/examples_tests/common"
87+
PUBLIC "${NBL_ROOT_PATH_BINARY}/include"
8788
PUBLIC ../../include
8889
PRIVATE ${_EXTRA_INCLUDES}
8990
)

include/nbl/builtin/common.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
#include <string>
1313
#include <string_view>
14-
15-
#include "nbl/core/string/StringLiteral.h"
14+
//#include "nbl/builtin/"
15+
#include "nbl/builtin/builtinResources.h"
1616

1717
namespace nbl::builtin
1818
{

include/nbl/system/ISystem.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
#include "nbl/system/ICancellableAsyncQueueDispatcher.h"
1111
#include "nbl/system/IFileArchive.h"
12-
//#include "nbl/builtin/builtinResources.h"
1312

1413
#include <variant>
1514

src/nbl/CMakeLists.txt

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,20 @@ if(NOT NBL_STATIC_BUILD)
411411
set_target_properties(Nabla PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${NBL_ASSEMBLY_DIRECTORY})
412412
endif()
413413

414+
if(NBL_EMBED_BUILTIN_RESOURCES)
415+
add_dependencies(Nabla ${_NBL_BUILTIN_RESOURCES_LIBRARIES_})
416+
417+
if(NBL_STATIC_BUILD)
418+
target_link_libraries(Nabla INTERFACE
419+
${_NBL_BUILTIN_RESOURCES_LIBRARIES_}
420+
)
421+
else()
422+
target_link_libraries(Nabla PRIVATE
423+
${_NBL_BUILTIN_RESOURCES_LIBRARIES_}
424+
)
425+
endif()
426+
endif()
427+
414428
## Set up 3rdparty deps
415429
# Parallel Hashmap
416430
target_include_directories(Nabla PUBLIC ${THIRD_PARTY_SOURCE_DIR}/parallel-hashmap/parallel_hashmap)
@@ -622,13 +636,13 @@ if(NOT NBL_STATIC_BUILD)
622636
COMMENT "Launching defines.h generation script!"
623637
VERBATIM
624638
)
625-
626-
add_custom_target(generate_define_header ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/generated/define.h")
627-
add_dependencies(Nabla generate_define_header)
628639
endif()
629640

630641
nbl_install_headers("${NABLA_HEADERS_PUBLIC}" "${NBL_ROOT_PATH}/include")
631-
nbl_install_file("${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/generated/define.h" "")
642+
if(NOT NBL_STATIC_BUILD)
643+
nbl_install_file("${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/generated/define.h" "")
644+
endif()
645+
nbl_install_file("${NBL_ROOT_PATH_BINARY}/include/nbl/builtin/builtinResources.h" "nbl/builtin")
632646
nbl_install_config_header(BuildConfigOptions.h)
633647

634648
# TODO: @AnastazIuk change macros to functions! https://github.com/buildaworldnet/IrrlichtBAW/issues/311

src/nbl/builtin/CMakeLists.txt

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ macro(LIST_BUILTIN_RESOURCE _BUNDLE_NAME_ _LBR_PATH_)
1010
set(_LBR_${_BUNDLE_NAME_}_ ${_LBR_${_BUNDLE_NAME_}_} PARENT_SCOPE) # override
1111
endmacro()
1212

13-
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "nbl/builtin/glsl/utils/acceleration_structures.glsl" "cipsko")
1413
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "nbl/builtin/glsl/utils/acceleration_structures.glsl")
1514
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "nbl/builtin/shader/loader/mtl/vertex_impl.glsl")
1615
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "nbl/builtin/shader/loader/mtl/vertex_no_uv.vert") # TODO: remove naming tautology
@@ -250,6 +249,8 @@ LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "nbl/builtin/glsl/blit/normalizatio
250249
function(ADD_CUSTOM_BUILTIN_RESOURCES _TARGET_NAME_ _BUNDLE_NAME_ _BUNDLE_SEARCH_DIRECTORY_ _NAMESPACE_ _OUTPUT_DIRECTORY_)
251250
set(NBL_TEMPLATE_APK_RESOURCES_ARCHIVE_SOURCE "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/template/CAPKResourcesArchieve.cpp.in")
252251
set(NBL_TEMPLATE_APK_RESOURCES_ARCHIVE_HEADER "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/template/CAPKResourcesArchieve.h.in")
252+
set(NBL_BUILTIN_HEADER_GEN_PY "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/builtinHeaderGen.py")
253+
set(NBL_BUILTIN_DATA_GEN_PY "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/builtinDataGen.py")
253254

254255
string(REPLACE "::" "/" _PATH_PREFIX_ "${_NAMESPACE_}")
255256

@@ -276,10 +277,51 @@ function(ADD_CUSTOM_BUILTIN_RESOURCES _TARGET_NAME_ _BUNDLE_NAME_ _BUNDLE_SEARCH
276277
configure_file("${NBL_TEMPLATE_APK_RESOURCES_ARCHIVE_SOURCE}" "${_OUTPUT_DIRECTORY_}/CAPKResourcesArchieve.cpp")
277278
configure_file("${NBL_TEMPLATE_APK_RESOURCES_ARCHIVE_HEADER}" "${_OUTPUT_DIRECTORY_}/CAPKResourcesArchieve.h")
278279

279-
# TODO: bring back python generation (?)
280+
list(APPEND NBL_DEPENDENCY_FILES "${NBL_BUILTIN_HEADER_GEN_PY}")
281+
list(APPEND NBL_DEPENDENCY_FILES "${NBL_BUILTIN_DATA_GEN_PY}")
282+
283+
set(NBL_RESOURCES_LIST_FILE "${NBL_ROOT_PATH_BINARY}/include/nbl/builtin/resources.txt")
284+
285+
string(REPLACE ";" "," RESOURCES_ARGS "${${_BUNDLE_NAME_}}")
286+
file(MAKE_DIRECTORY "${NBL_ROOT_PATH_BINARY}/include/nbl/builtin")
287+
file(WRITE "${NBL_RESOURCES_LIST_FILE}" "${RESOURCES_ARGS}")
288+
289+
set(NBL_BS_HEADER_FILENAME "builtinResources.h")
290+
set(NBL_BS_DATA_SOURCE_FILENAME "builtinResourceData.cpp")
291+
set(NBL_BUILTIN_RESOURCES_HEADER "${_OUTPUT_DIRECTORY_}/${NBL_BS_HEADER_FILENAME}")
292+
set(NBL_BUILTIN_RESOURCE_DATA_SOURCE "${_OUTPUT_DIRECTORY_}/${NBL_BS_DATA_SOURCE_FILENAME}")
293+
294+
set(_NBL_SOURCES_
295+
"${NBL_BUILTIN_RESOURCES_HEADER}"
296+
"${NBL_BUILTIN_RESOURCE_DATA_SOURCE}"
297+
)
298+
299+
add_custom_command(
300+
OUTPUT "${NBL_BUILTIN_RESOURCES_HEADER}" "${NBL_BUILTIN_RESOURCE_DATA_SOURCE}"
301+
COMMAND "${PYTHON_EXECUTABLE}" "${NBL_BUILTIN_HEADER_GEN_PY}" "${NBL_BUILTIN_RESOURCES_HEADER}" "${NBL_ROOT_PATH}/include" "${NBL_RESOURCES_LIST_FILE}" "${_NAMESPACE_}"
302+
COMMAND "${PYTHON_EXECUTABLE}" "${NBL_BUILTIN_DATA_GEN_PY}" "${NBL_BUILTIN_RESOURCE_DATA_SOURCE}" "${NBL_ROOT_PATH}/include" "${NBL_RESOURCES_LIST_FILE}" "${_NAMESPACE_}" "${NBL_BS_HEADER_FILENAME}"
303+
COMMENT "Generating built-in resources"
304+
DEPENDS ${NBL_DEPENDENCY_FILES}
305+
VERBATIM
306+
)
307+
308+
add_library(${_TARGET_NAME_} STATIC
309+
${_NBL_SOURCES_}
310+
)
311+
312+
target_include_directories(${_TARGET_NAME_} PUBLIC "${NBL_ROOT_PATH}/include")
313+
314+
if(NBL_DYNAMIC_MSVC_RUNTIME)
315+
set_property(TARGET ${_TARGET_NAME_} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
316+
else()
317+
set_property(TARGET ${_TARGET_NAME_} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
318+
endif()
319+
320+
list(APPEND _NBL_BUILTIN_RESOURCES_LIBRARIES_ ${_TARGET_NAME_})
321+
set(_NBL_BUILTIN_RESOURCES_LIBRARIES_ ${_NBL_BUILTIN_RESOURCES_LIBRARIES_} PARENT_SCOPE) # override
280322
endfunction()
281323

282-
function(NBL_ADD_BUILTIN_RESOURCES)
324+
macro(NBL_ADD_BUILTIN_RESOURCES)
283325
ADD_CUSTOM_BUILTIN_RESOURCES(nblBuiltinResourceData NBL_RESOURCES_TO_EMBED "${NBL_ROOT_PATH}/include" "nbl::builtin" "${NBL_ROOT_PATH_BINARY}/include/nbl/builtin")
284-
endfunction()
326+
endmacro()
285327

0 commit comments

Comments
 (0)