| … | … | @@ -1,24 +1,27 @@ |
| 1 | 1 | # ------------------------------------------------- |
| 2 | 2 | # Library configuration |
| 3 | 3 | |
| 4 | | #This fixes linker issue on OS X |
| 5 | | #See https://cmake.org/cmake/help/v3.0/policy/CMP0042.html |
| 6 | | if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") |
| 7 | | set(CMAKE_MACOSX_RPATH 1) |
| 8 | | endif() |
| 4 | # This fixes linker issue on OS X |
| 5 | # See https://cmake.org/cmake/help/v3.0/policy/CMP0042.html |
| 6 | IF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") |
| 7 | SET(CMAKE_MACOSX_RPATH 1) |
| 8 | ENDIF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") |
| 9 | 9 | |
| 10 | 10 | # Small hack to handle unixes that use "/usr/lib64" instead of |
| 11 | 11 | # "/usr/lib" as the default lib path on 64 bit archs. |
| 12 | | # |
| 13 | 12 | IF (NOT DEFINED LIB_DIR_SUFFIX) |
| 14 | | EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} -print-search-dirs OUTPUT_VARIABLE PRINT_SEARCH_DIRS_OUTPUT) |
| 15 | | STRING(REGEX MATCH "\r?\nlibraries:.*\r?\n" COMPILER_LIB_SEARCH_DIRS ${PRINT_SEARCH_DIRS_OUTPUT}) |
| 16 | | IF (NOT ${COMPILER_LIB_SEARCH_DIRS} STREQUAL "") |
| 17 | | STRING(REGEX MATCH "/lib64/:|/lib64:|/lib64\n" HAS_LIB64 ${COMPILER_LIB_SEARCH_DIRS}) |
| 18 | | IF (NOT ${HAS_LIB64} STREQUAL "") |
| 19 | | SET(LIB_DIR_SUFFIX "64") |
| 20 | | ENDIF (NOT ${HAS_LIB64} STREQUAL "") |
| 21 | | ENDIF (NOT ${COMPILER_LIB_SEARCH_DIRS} STREQUAL "") |
| 13 | IF (WIN32) |
| 14 | # On Windows with MSVC, we don't need this check |
| 15 | ELSE (WIN32) |
| 16 | EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} -print-search-dirs OUTPUT_VARIABLE PRINT_SEARCH_DIRS_OUTPUT) |
| 17 | STRING(REGEX MATCH "\r?\nlibraries:.*\r?\n" COMPILER_LIB_SEARCH_DIRS ${PRINT_SEARCH_DIRS_OUTPUT}) |
| 18 | IF (NOT ${COMPILER_LIB_SEARCH_DIRS} STREQUAL "") |
| 19 | STRING(REGEX MATCH "/lib64/:|/lib64:|/lib64\n" HAS_LIB64 ${COMPILER_LIB_SEARCH_DIRS}) |
| 20 | IF (NOT ${HAS_LIB64} STREQUAL "") |
| 21 | SET(LIB_DIR_SUFFIX "64") |
| 22 | ENDIF (NOT ${HAS_LIB64} STREQUAL "") |
| 23 | ENDIF (NOT ${COMPILER_LIB_SEARCH_DIRS} STREQUAL "") |
| 24 | ENDIF (WIN32) |
| 22 | 25 | ENDIF (NOT DEFINED LIB_DIR_SUFFIX) |
| 23 | 26 | |
| 24 | 27 | # RPATH handling (see https://cmake.org/Wiki/CMake_RPATH_handling) |
| … | … | @@ -27,6 +30,11 @@ ENDIF (NOT DEFINED LIB_DIR_SUFFIX) |
| 27 | 30 | # the build directories, and NOT the system directories. But that |
| 28 | 31 | # means that, during install, the paths have to be tweaked. |
| 29 | 32 | SET(CMAKE_SKIP_BUILD_RPATH FALSE) |
| 30 | | SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) |
| 33 | IF (APPLE) |
| 34 | SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) |
| 35 | ELSE (APPLE) |
| 36 | SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) |
| 37 | ENDIF (APPLE) |
| 31 | 38 | SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_DIR_SUFFIX}/opencog") |
| 39 | SET(CMAKE_BUILD_WITH_INSTALL_NAME_DIR FALSE) |
| 32 | 40 | SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) |