Mercurial > molko
diff cmake/MlkMap.cmake @ 320:8f9937403749
misc: improve loading of data
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 01 Oct 2021 20:30:00 +0200 |
parents | d01e83210ca2 |
children | 19782ea1cf4a |
line wrap: on
line diff
--- a/cmake/MlkMap.cmake Fri Oct 01 14:10:06 2021 +0200 +++ b/cmake/MlkMap.cmake Fri Oct 01 20:30:00 2021 +0200 @@ -16,47 +16,20 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # -macro(mlk_map) - set(options "") - set(oneValueArgs "OUTPUTS_VAR") - set(multiValueArgs "MAPS") - - cmake_parse_arguments(_map "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if (NOT _map_OUTPUTS_VAR) - message(FATAL_ERROR "Missing OUTPUTS_VAR") - elseif (NOT _map_MAPS) - message(FATAL_ERROR "Missing MAPS") +function(mlk_map input output) + if (MLK_WITH_ZSTD) + set(cmd + COMMAND $<TARGET_FILE:mlk-map> < ${input} > ${output}.zst + COMMAND ZSTD::exe -17 -fq --rm ${output}.zst -o ${output} + ) + else () + set(cmd COMMAND $<TARGET_FILE:mlk-map> < ${input} > ${output}) endif () - foreach (m ${_map_MAPS}) - cmake_path(GET m FILENAME name) - cmake_path(REMOVE_EXTENSION name) - - if (MLK_WITH_ZSTD) - set(_map_cmds - COMMAND $<TARGET_FILE:mlk-map> < ${m} > ${CMAKE_CURRENT_BINARY_DIR}/${name}.tmp - COMMAND - ZSTD::exe -17 -fq - --rm ${CMAKE_CURRENT_BINARY_DIR}/${name}.tmp - -o ${CMAKE_CURRENT_BINARY_DIR}/${name}.map - ) - else () - set(_map_cmds - COMMAND $<TARGET_FILE:mlk-map> < ${m} > ${CMAKE_CURRENT_BINARY_DIR}/${name}.map - ) - endif () - - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${name}.map - COMMAND - ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR} - COMMAND - ${_map_cmds} - DEPENDS $<TARGET_FILE:mlk-map> - COMMENT "Generating ${name}.map" - ) - - list(APPEND ${_map_OUTPUTS_VAR} ${CMAKE_CURRENT_BINARY_DIR}/${name}.map) - endforeach () -endmacro() + add_custom_command( + OUTPUT ${output} + COMMAND ${cmd} + DEPENDS $<TARGET_FILE:mlk-map> + COMMENT "Generating ${output}" + ) +endfunction()