Add a CMake function for adding extra files to packaging
This commit is contained in:
parent
594dcc9230
commit
9e5b6997f6
1 changed files with 27 additions and 3 deletions
|
|
@ -23,6 +23,14 @@ if(PSEMEK_PACKAGE_MODE)
|
||||||
set(PSEMEK_COPY_FILES_RAW)
|
set(PSEMEK_COPY_FILES_RAW)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
function(psemek_package_output_path target outvar)
|
||||||
|
if(NOT PSEMEK_PACKAGE_MODE)
|
||||||
|
message(FATAL "psemek_package_output_path must only be called during packaging")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(${outvar} "${CMAKE_CURRENT_LIST_DIR}/${PSEMEK_PACKAGE_OUTPUT_PATH}/${target}${PSEMEK_PACKAGE_VERSION_SUFFIX}-${PSEMEK_PACKAGE_SUFFIX}.zip" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
function(psemek_add_executable target)
|
function(psemek_add_executable target)
|
||||||
if((NOT PSEMEK_PACKAGE_MODE) OR PSEMEK_PACKAGE_TARGET)
|
if((NOT PSEMEK_PACKAGE_MODE) OR PSEMEK_PACKAGE_TARGET)
|
||||||
add_executable(${target} ${ARGN})
|
add_executable(${target} ${ARGN})
|
||||||
|
|
@ -50,8 +58,11 @@ function(psemek_add_executable target)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
psemek_package_output_path(${target} _OUTPUT_PATH)
|
||||||
|
|
||||||
add_custom_command(TARGET ${target} POST_BUILD
|
add_custom_command(TARGET ${target} POST_BUILD
|
||||||
COMMAND zip -v ${CMAKE_CURRENT_LIST_DIR}/${PSEMEK_PACKAGE_OUTPUT_PATH}/${target}${PSEMEK_PACKAGE_VERSION_SUFFIX}-${PSEMEK_PACKAGE_SUFFIX}.zip -j $<TARGET_FILE:${target}> ${PSEMEK_PACKAGE_COPY_FILES}
|
COMMAND echo Packaging target ${target} into ${_OUTPUT_PATH}
|
||||||
|
COMMAND zip -v "${_OUTPUT_PATH}" -j $<TARGET_FILE:${target}> ${PSEMEK_PACKAGE_COPY_FILES}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -104,8 +115,6 @@ function(psemek_add_winrc target path)
|
||||||
file(MAKE_DIRECTORY "${OUT_DIR}/winrc")
|
file(MAKE_DIRECTORY "${OUT_DIR}/winrc")
|
||||||
set(_OUT_FILE "${OUT_DIR}/winrc/res.o")
|
set(_OUT_FILE "${OUT_DIR}/winrc/res.o")
|
||||||
|
|
||||||
message("CMAKE_RC_COMPILER: ${CMAKE_RC_COMPILER}")
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT "${_OUT_FILE}"
|
add_custom_command(OUTPUT "${_OUT_FILE}"
|
||||||
COMMAND ${CMAKE_RC_COMPILER} "${_IN_FILE}" "${_OUT_FILE}"
|
COMMAND ${CMAKE_RC_COMPILER} "${_IN_FILE}" "${_OUT_FILE}"
|
||||||
DEPENDS psemek-resource-compiler "${_IN_FILE}"
|
DEPENDS psemek-resource-compiler "${_IN_FILE}"
|
||||||
|
|
@ -114,3 +123,18 @@ function(psemek_add_winrc target path)
|
||||||
target_sources(${target} PRIVATE "${_OUT_FILE}")
|
target_sources(${target} PRIVATE "${_OUT_FILE}")
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
function(psemek_package_files target)
|
||||||
|
if(PSEMEK_PACKAGE_MODE)
|
||||||
|
if(PSEMEK_PACKAGE_TARGET)
|
||||||
|
psemek_package_output_path(${target} _OUTPUT_PATH)
|
||||||
|
|
||||||
|
add_custom_command(TARGET ${target} POST_BUILD
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
|
||||||
|
COMMAND zip -v "${_OUTPUT_PATH}" -r ${ARGN}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
file(COPY ${ARGN} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue