diff --git a/cmake/EthUtils.cmake b/cmake/EthUtils.cmake index d5da866ea..85d8c0dc4 100644 --- a/cmake/EthUtils.cmake +++ b/cmake/EthUtils.cmake @@ -63,12 +63,21 @@ macro(eth_add_test NAME) endmacro() # Creates C resources file from files -function(eth_add_resources TARGET RESOURCE_FILE) +function(eth_add_resources RESOURCE_FILE OUT_FILE) + include("${RESOURCE_FILE}") + set(OUTPUT "${ETH_RESOURCE_LOCATION}/${ETH_RESOURCE_NAME}.hpp") + set(${OUT_FILE} "${OUTPUT}" PARENT_SCOPE) - add_custom_target("${TARGET}.resources" - COMMAND ${CMAKE_COMMAND} -DETH_RES_FILE="${RESOURCE_FILE}" -P "${ETH_SCRIPTS_DIR}/resources.cmake" - ) + set(filenames "${RESOURCE_FILE}") + list(APPEND filenames "${ETH_SCRIPTS_DIR}/resources.cmake") + foreach(resource ${ETH_RESOURCES}) + list(APPEND filenames "${${resource}}") + endforeach(resource) - add_dependencies(${TARGET} "${TARGET}.resources") + message(STATUS "filenames; ${filenames}") + add_custom_command(OUTPUT ${OUTPUT} + COMMAND ${CMAKE_COMMAND} -DETH_RES_FILE="${RESOURCE_FILE}" -P "${ETH_SCRIPTS_DIR}/resources.cmake" + DEPENDS ${filenames} + ) endfunction() diff --git a/cmake/scripts/resources.cmake b/cmake/scripts/resources.cmake index 93326a257..b0cadbf6d 100644 --- a/cmake/scripts/resources.cmake +++ b/cmake/scripts/resources.cmake @@ -55,4 +55,3 @@ configure_file("${CMAKE_CURRENT_LIST_DIR}/resource.hpp.in" "${ETH_DST_NAME}.hpp. include("${CMAKE_CURRENT_LIST_DIR}/../EthUtils.cmake") replace_if_different("${ETH_DST_NAME}.hpp.tmp" "${ETH_DST_NAME}.hpp") -