| … | … | @@ -1,27 +1,21 @@ |
| 1 | 1 | # ------------------------------------------------- |
| 2 | 2 | # Library configuration |
| 3 | 3 | |
| 4 | # Use CMake's standard GNUInstallDirs for proper lib/lib64 handling |
| 5 | INCLUDE(GNUInstallDirs) |
| 6 | |
| 4 | 7 | # This fixes linker issue on OS X |
| 5 | 8 | # See https://cmake.org/cmake/help/v3.0/policy/CMP0042.html |
| 6 | 9 | IF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") |
| 7 | 10 | SET(CMAKE_MACOSX_RPATH 1) |
| 8 | 11 | ENDIF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") |
| 9 | 12 | |
| 10 | | # Small hack to handle unixes that use "/usr/lib64" instead of |
| 11 | | # "/usr/lib" as the default lib path on 64 bit archs. |
| 13 | # Backwards compatibility: derive LIB_DIR_SUFFIX from CMAKE_INSTALL_LIBDIR |
| 14 | # Many downstream projects still use lib${LIB_DIR_SUFFIX}/opencog |
| 12 | 15 | IF (NOT DEFINED LIB_DIR_SUFFIX) |
| 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) |
| 16 | # CMAKE_INSTALL_LIBDIR is typically "lib" or "lib64" |
| 17 | # Extract suffix by removing "lib" prefix |
| 18 | STRING(REGEX REPLACE "^lib" "" LIB_DIR_SUFFIX "${CMAKE_INSTALL_LIBDIR}") |
| 25 | 19 | ENDIF (NOT DEFINED LIB_DIR_SUFFIX) |
| 26 | 20 | |
| 27 | 21 | # RPATH handling (see https://cmake.org/Wiki/CMake_RPATH_handling) |
| … | … | @@ -35,6 +29,6 @@ IF (APPLE) |
| 35 | 29 | ELSE (APPLE) |
| 36 | 30 | SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) |
| 37 | 31 | ENDIF (APPLE) |
| 38 | | SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_DIR_SUFFIX}/opencog") |
| 32 | SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/opencog") |
| 39 | 33 | SET(CMAKE_BUILD_WITH_INSTALL_NAME_DIR FALSE) |
| 40 | 34 | SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) |