OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-cogutil commits / 1502388

Use GNUInstallDirs to get correct library paths
1502388088c4ba1e7baddeaaf6ed1e70167a9baf
by Linas Vepstas <linasvepstas@gmail.com> · 2025-12-19T01:49:14.000Z

Changed files (1) +9 -15

cmake/OpenCogLibOptions.cmake +9 -15
……@@ -1,27 +1,21 @@
11# -------------------------------------------------
22# Library configuration
33
4# Use CMake's standard GNUInstallDirs for proper lib/lib64 handling
5INCLUDE(GNUInstallDirs)
6
47# This fixes linker issue on OS X
58# See https://cmake.org/cmake/help/v3.0/policy/CMP0042.html
69IF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
710 SET(CMAKE_MACOSX_RPATH 1)
811ENDIF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
912
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
1215IF (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}")
2519ENDIF (NOT DEFINED LIB_DIR_SUFFIX)
2620
2721# RPATH handling (see https://cmake.org/Wiki/CMake_RPATH_handling)
……@@ -35,6 +29,6 @@ IF (APPLE)
3529ELSE (APPLE)
3630 SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
3731ENDIF (APPLE)
38SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_DIR_SUFFIX}/opencog")
32SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/opencog")
3933SET(CMAKE_BUILD_WITH_INSTALL_NAME_DIR FALSE)
4034SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)