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)
|
||||
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)
|
||||
if((NOT PSEMEK_PACKAGE_MODE) OR PSEMEK_PACKAGE_TARGET)
|
||||
add_executable(${target} ${ARGN})
|
||||
|
|
@ -50,8 +58,11 @@ function(psemek_add_executable target)
|
|||
)
|
||||
endif()
|
||||
|
||||
psemek_package_output_path(${target} _OUTPUT_PATH)
|
||||
|
||||
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()
|
||||
|
|
@ -104,8 +115,6 @@ function(psemek_add_winrc target path)
|
|||
file(MAKE_DIRECTORY "${OUT_DIR}/winrc")
|
||||
set(_OUT_FILE "${OUT_DIR}/winrc/res.o")
|
||||
|
||||
message("CMAKE_RC_COMPILER: ${CMAKE_RC_COMPILER}")
|
||||
|
||||
add_custom_command(OUTPUT "${_OUT_FILE}"
|
||||
COMMAND ${CMAKE_RC_COMPILER} "${_IN_FILE}" "${_OUT_FILE}"
|
||||
DEPENDS psemek-resource-compiler "${_IN_FILE}"
|
||||
|
|
@ -114,3 +123,18 @@ function(psemek_add_winrc target path)
|
|||
target_sources(${target} PRIVATE "${_OUT_FILE}")
|
||||
endif()
|
||||
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