diff --git a/tools/resource/CMakeLists.txt b/tools/resource/CMakeLists.txt index 6d1eb6b4..7696e93e 100644 --- a/tools/resource/CMakeLists.txt +++ b/tools/resource/CMakeLists.txt @@ -39,6 +39,23 @@ function(psemek_add_resources_impl MODE TARGET) endwhile() endfunction() +function(psemek_glob_resources_impl MODE TARGET PATH PREFIX) + set(RESOURCES_LIST) + + get_filename_component(PATH "${PATH}" ABSOLUTE) + + file(GLOB_RECURSE INPUT_FILES LIST_DIRECTORIES false RELATIVE "${PATH}" "${PATH}/*") + + foreach(INPUT_FILE ${INPUT_FILES}) + set(RESOURCE_FILE "${PATH}/${INPUT_FILE}") + set(RESOURCE_NAME "${INPUT_FILE}") + string(REPLACE "." "_" RESOURCE_NAME "${RESOURCE_NAME}") + list(APPEND RESOURCES_LIST "${RESOURCE_FILE}" "${PREFIX}/${RESOURCE_NAME}") + endforeach() + + psemek_add_resources_impl(${MODE} ${TARGET} ${RESOURCES_LIST}) +endfunction() + function(psemek_add_resources) psemek_add_resources_impl(PRIVATE ${ARGN}) endfunction() @@ -46,3 +63,11 @@ endfunction() function(psemek_add_public_resources) psemek_add_resources_impl(PUBLIC ${ARGN}) endfunction() + +function(psemek_glob_resources) + psemek_glob_resources_impl(PRIVATE ${ARGN}) +endfunction() + +function(psemek_glob_public_resources) + psemek_add_resources_impl(PUBLIC ${ARGN}) +endfunction()