From 19fe0c750b8953b84b5a6458b5fbb40e3336da61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Mon, 9 Mar 2020 13:53:10 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@757 a8b55f48-bf90-11e4-a774-851b48703e85 --- CMakeLists.txt | 12 ++++++++++++ cd_utils/CMakeLists.txt | 13 +++++++++++++ kx_utils/CMakeLists.txt | 2 ++ qad/CMakeLists.txt | 4 +++- qad/QtWraps.cmake | 28 ++++++++++++++++++++++++++++ 5 files changed, 58 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8675b62..f2dd105 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,3 +166,15 @@ if(WIN32) set(CMAKES "FindMinGW.cmake") install(FILES ${CMAKES} DESTINATION ${CMAKE_ROOT}/Modules) endif() + +#if (APPLE AND CMAKE_CROSSCOMPILING) + foreach(_T ${_ALL_TARGETS}) + set_property(TARGET ${_T} PROPERTY _OUTPUT $) + get_property(_TIP TARGET ${_T} PROPERTY _OUTPUT) + #message("${_T} -> ${_TIP}") + #execute_process(COMMAND "echo" "123") + #set(_TIP $) + #install(CODE "MESSAGE(\"Sample install message.\")") + endforeach() +#endif() +message("${CMAKE_ABSOLUTE_DESTINATION_FILES}") diff --git a/cd_utils/CMakeLists.txt b/cd_utils/CMakeLists.txt index d13471c..c075a5d 100644 --- a/cd_utils/CMakeLists.txt +++ b/cd_utils/CMakeLists.txt @@ -27,6 +27,17 @@ else() endif() target_link_libraries(${PROJECT_NAME} ${PIP_LIBRARY}) +# Apple crosscompiling rpath patch +if (APPLE AND CMAKE_CROSSCOMPILING AND CMAKE_MACOSX_RPATH) + foreach(_RP ${CMAKE_INSTALL_RPATH}) + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND "${CMAKE_INSTALL_NAME_TOOL}" + "-add_rpath" "${_RP}" + "$/$" + COMMENT "Add to ${PROJECT_NAME} rpath \"${_RP}\"") + endforeach() +endif() + add_executable(cdutilstest "cdutilstest.cpp" "cdtest.h") target_link_libraries(cdutilstest ${PIP_LIBRARY} ${PROJECT_NAME}) message(STATUS "Building ${PROJECT_NAME}") @@ -55,6 +66,8 @@ if(NOT LIBPROJECT) endif() if(LIB) + list(APPEND _ALL_TARGETS ${PROJECT_NAME}) + set(_ALL_TARGETS ${_ALL_TARGETS} PARENT_SCOPE) if(WIN32) install(FILES ${HDRS_UTILS} DESTINATION ${MINGW_INCLUDE}) install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB}) diff --git a/kx_utils/CMakeLists.txt b/kx_utils/CMakeLists.txt index 6aa9fad..80da37a 100644 --- a/kx_utils/CMakeLists.txt +++ b/kx_utils/CMakeLists.txt @@ -46,6 +46,8 @@ if (NOT DEFINED ENV{QNX_HOST}) endif() endif() if (LIB) + list(APPEND _ALL_TARGETS ${PROJECT_NAME}) + set(_ALL_TARGETS ${_ALL_TARGETS} PARENT_SCOPE) if (WIN32) set(CMAKE_INSTALL_PREFIX ${MINGW_DIR}) install(FILES ${HDRS_UTILS} DESTINATION ${MINGW_INCLUDE}) diff --git a/qad/CMakeLists.txt b/qad/CMakeLists.txt index 181f94b..4dfbc68 100644 --- a/qad/CMakeLists.txt +++ b/qad/CMakeLists.txt @@ -146,4 +146,6 @@ foreach(D ${DIRS}) include_directories(${D}) add_subdirectory(${D}) endforeach(D) - +if (LIB) + set(_ALL_TARGETS ${_ALL_TARGETS} PARENT_SCOPE) +endif() diff --git a/qad/QtWraps.cmake b/qad/QtWraps.cmake index ee185f8..7a009cf 100644 --- a/qad/QtWraps.cmake +++ b/qad/QtWraps.cmake @@ -365,6 +365,20 @@ macro(qt_add_executable _NAME) ### add_definitions(${Qt5Widgets_DEFINITIONS}) ### target_compile_definitions(${_TARGET} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/qt${_v} ${Qt${_v}_INCLUDES}) #message("add exe: \"${_TARGET}\", \"${_PREF}\"") + + # Apple crosscompiling rpath patch + if (APPLE AND CMAKE_CROSSCOMPILING AND CMAKE_MACOSX_RPATH) + foreach(_RP ${CMAKE_INSTALL_RPATH}) + add_custom_command(TARGET ${_TARGET} POST_BUILD + COMMAND "${CMAKE_INSTALL_NAME_TOOL}" + "-add_rpath" "${_RP}" + "$/$" + COMMENT "Add to ${_TARGET} rpath \"${_RP}\"") + endforeach() + endif() + + list(APPEND _ALL_TARGETS "${_TARGET}") + set(_ALL_TARGETS ${_ALL_TARGETS} PARENT_SCOPE) endif() endforeach() endmacro() @@ -385,6 +399,20 @@ macro(qt_add_library _NAME) set(_${_NAME}_is_qt 1) target_include_directories(${_TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/qt${_v} ${Qt${_v}_INCLUDES}) #message("add lib: \"${_TARGET}\"") + + # Apple crosscompiling rpath patch + if (APPLE AND CMAKE_CROSSCOMPILING AND CMAKE_MACOSX_RPATH) + foreach(_RP ${CMAKE_INSTALL_RPATH}) + add_custom_command(TARGET ${_TARGET} POST_BUILD + COMMAND "${CMAKE_INSTALL_NAME_TOOL}" + "-add_rpath" "${_RP}" + "$/$" + COMMENT "Add to ${_TARGET} rpath \"${_RP}\"") + endforeach() + endif() + + list(APPEND _ALL_TARGETS "${_TARGET}") + set(_ALL_TARGETS ${_ALL_TARGETS} PARENT_SCOPE) endif() endforeach() endmacro()