Fix linux packaging

This commit is contained in:
Nikita Lisitsa 2020-09-16 14:54:14 +03:00
parent 6fba44ca49
commit d3fb1a5b12

View file

@ -14,9 +14,11 @@ if(PSEMEK_PACKAGE_MODE)
endif() endif()
set(PSEMEK_PACKAGE_SUFFIX ${PSEMEK_PACKAGE_SUFFIX_RAW} CACHE INTERNAL "Packaging suffix" FORCE) set(PSEMEK_PACKAGE_SUFFIX ${PSEMEK_PACKAGE_SUFFIX_RAW} CACHE INTERNAL "Packaging suffix" FORCE)
set(PSEMEK_PACKAGE_LINK_FLAGS_RAW)
if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")) if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
list(APPEND PSEMEK_CXX_FLAGS "-Wl,-rpath,." "-static-libgcc" "-static-libstdc++") list(APPEND PSEMEK_PACKAGE_LINK_FLAGS_RAW "-static-libgcc" "-static-libstdc++")
endif() endif()
set(PSEMEK_PACKAGE_LINK_FLAGS ${PSEMEK_PACKAGE_LINK_FLAGS_RAW} CACHE INTERNAL "Packaging CXX flags" FORCE)
set(PSEMEK_COPY_FILES_RAW) set(PSEMEK_COPY_FILES_RAW)
@ -33,7 +35,7 @@ if(PSEMEK_PACKAGE_MODE)
set(PSEMEK_COPY_FILES_ABSOLUTE) set(PSEMEK_COPY_FILES_ABSOLUTE)
foreach(FILE ${PSEMEK_COPY_FILES_RAW}) foreach(FILE ${PSEMEK_COPY_FILES_RAW})
get_filename_component(REALPATH "${FILE}" REALPATH) get_filename_component(REALPATH "${FILE}" REALPATH)
get_filename_component(NAME "${FILE}" NAME) get_filename_component(NAME "${REALPATH}" NAME)
configure_file("${REALPATH}" "${PSEMEK_COPY_FILES_DIR}/${NAME}" COPYONLY) configure_file("${REALPATH}" "${PSEMEK_COPY_FILES_DIR}/${NAME}" COPYONLY)
list(APPEND PSEMEK_COPY_FILES_ABSOLUTE "${PSEMEK_COPY_FILES_DIR}/${NAME}") list(APPEND PSEMEK_COPY_FILES_ABSOLUTE "${PSEMEK_COPY_FILES_DIR}/${NAME}")
endforeach() endforeach()
@ -44,10 +46,15 @@ endif()
function(psemek_package_target target) function(psemek_package_target target)
if(PSEMEK_PACKAGE_MODE) if(PSEMEK_PACKAGE_MODE)
add_custom_command(TARGET ${target} POST_BUILD target_link_options(${target} PUBLIC ${PSEMEK_PACKAGE_LINK_FLAGS})
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:${target}>)
set_target_properties(${target} PROPERTIES
BUILD_RPATH "."
)
add_custom_command(TARGET ${target} POST_BUILD add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:${target}>
COMMAND chrpath -r . $<TARGET_FILE:${target}>
COMMAND zip ${CMAKE_CURRENT_SOURCE_DIR}/${target}-${PSEMEK_PACKAGE_SUFFIX}.zip -j $<TARGET_FILE:${target}> ${PSEMEK_COPY_FILES} COMMAND zip ${CMAKE_CURRENT_SOURCE_DIR}/${target}-${PSEMEK_PACKAGE_SUFFIX}.zip -j $<TARGET_FILE:${target}> ${PSEMEK_COPY_FILES}
) )