diff --git a/tools/package/CMakeLists.txt b/tools/package/CMakeLists.txt index 6f13db58..07afcb42 100644 --- a/tools/package/CMakeLists.txt +++ b/tools/package/CMakeLists.txt @@ -14,9 +14,11 @@ if(PSEMEK_PACKAGE_MODE) endif() 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")) - list(APPEND PSEMEK_CXX_FLAGS "-Wl,-rpath,." "-static-libgcc" "-static-libstdc++") + list(APPEND PSEMEK_PACKAGE_LINK_FLAGS_RAW "-static-libgcc" "-static-libstdc++") endif() + set(PSEMEK_PACKAGE_LINK_FLAGS ${PSEMEK_PACKAGE_LINK_FLAGS_RAW} CACHE INTERNAL "Packaging CXX flags" FORCE) set(PSEMEK_COPY_FILES_RAW) @@ -33,7 +35,7 @@ if(PSEMEK_PACKAGE_MODE) set(PSEMEK_COPY_FILES_ABSOLUTE) foreach(FILE ${PSEMEK_COPY_FILES_RAW}) 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) list(APPEND PSEMEK_COPY_FILES_ABSOLUTE "${PSEMEK_COPY_FILES_DIR}/${NAME}") endforeach() @@ -44,10 +46,15 @@ endif() function(psemek_package_target target) if(PSEMEK_PACKAGE_MODE) - add_custom_command(TARGET ${target} POST_BUILD - COMMAND ${CMAKE_STRIP} $) + target_link_options(${target} PUBLIC ${PSEMEK_PACKAGE_LINK_FLAGS}) + + set_target_properties(${target} PROPERTIES + BUILD_RPATH "." + ) add_custom_command(TARGET ${target} POST_BUILD + COMMAND ${CMAKE_STRIP} $ + COMMAND chrpath -r . $ COMMAND zip ${CMAKE_CURRENT_SOURCE_DIR}/${target}-${PSEMEK_PACKAGE_SUFFIX}.zip -j $ ${PSEMEK_COPY_FILES} )