]> git.mxchange.org Git - flightgear.git/commitdiff
#946: some libraries not found on Ubuntu/Debian
authorThorstenB <brehmt@gmail.com>
Sat, 1 Dec 2012 10:01:25 +0000 (11:01 +0100)
committerThorstenB <brehmt@gmail.com>
Sat, 1 Dec 2012 10:01:25 +0000 (11:01 +0100)
Ubuntu/Debian introduced "multiarch" library directories, which is
unsupported by CMake <= 2.8.10. Add manual search paths as a workaround.
Currently it is only needed for libsvn, but it is needed for any lib
which is converted to the new directory standard.

CMakeLists.txt
CMakeModules/FindPLIB.cmake
CMakeModules/FindSQLite3.cmake
CMakeModules/FindSimGear.cmake
CMakeModules/FindSvnClient.cmake
CMakeModules/FindUDev.cmake

index c472aff6f15dc79ef2cb54fd049d1b8f5a9c62d0..2ad040b44d21337a2e2ff0ad755e6fc7e8a5be95 100644 (file)
@@ -69,6 +69,39 @@ else()
     set(HUDSON_BUILD_ID "none")
 endif()
 
+#####################################################################################
+# Configure library search paths
+#####################################################################################
+
+if(APPLE)
+    # Custom library directories for Mac, which should have precedence over any other
+    list(APPEND ADDITIONAL_LIBRARY_PATHS
+         ~/Library/Frameworks
+         /Library/Frameworks)
+endif(APPLE)
+
+if(NOT "${CMAKE_LIBRARY_ARCHITECTURE}" STREQUAL "")
+    # Workaround for Ubuntu/Debian which introduced the "multiarch" library
+    # directory structure, which is unsupported by CMake < 2.8.10, so we need to
+    # add paths manually
+    # see http://www.cmake.org/Bug/view.php?id=12049 and
+    # http://www.cmake.org/Bug/view.php?id=12037
+    list(APPEND ADDITIONAL_LIBRARY_PATHS
+         /usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE}
+         /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}
+         /lib/${CMAKE_LIBRARY_ARCHITECTURE})
+    message(STATUS "additional library directories: ${ADDITIONAL_LIBRARY_PATHS}")
+endif()
+
+if(NOT MSVC)
+    # TBD: are these really necessary? Aren't they considered by cmake automatically?
+    list(APPEND ADDITIONAL_LIBRARY_PATHS
+         /local
+         /usr/local
+         /usr)
+endif()
+#####################################################################################
+
 IF(APPLE)
     set(EVENT_INPUT_DEFAULT 1)
 
index 99d2780cfc7396b17029b3b29b9d4c8ede276f45..b787983c15722fb6b53ad61ed7c1744eacc081b2 100644 (file)
 # (To distributed this file outside of CMake, substitute the full
 #  License text for the above reference.)
 
-# Per my request, CMake should search for frameworks first in
-# the following order:
-# ~/Library/Frameworks/OpenAL.framework/Headers
-# /Library/Frameworks/OpenAL.framework/Headers
-# /System/Library/Frameworks/OpenAL.framework/Headers
-#
-# On OS X, this will prefer the Framework version (if found) over others.
-# People will have to manually change the cache values of 
-# OPENAL_LIBRARY to override this selection or set the CMake environment
-# CMAKE_INCLUDE_PATH to modify the search paths.
-
 include(SelectLibraryConfigurations)
 
 set(save_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
 set(CMAKE_FIND_FRAMEWORK ONLY)
 FIND_PATH(PLIB_INCLUDE_DIR ul.h
   PATH_SUFFIXES include/plib include 
-  PATHS
-  ~/Library/Frameworks
-  /Library/Frameworks
+  PATHS ${ADDITIONAL_LIBRARY_PATHS}
 )
 set(CMAKE_FIND_FRAMEWORK ${save_FIND_FRAMEWORK})
 
@@ -50,10 +37,7 @@ if(NOT PLIB_INCLUDE_DIR)
     FIND_PATH(PLIB_INCLUDE_DIR plib/ul.h
       PATH_SUFFIXES include 
       HINTS $ENV{PLIBDIR}
-      PATHS
-      /usr/local
-      /opt/local
-      /usr
+      PATHS ${ADDITIONAL_LIBRARY_PATHS}
     )
 endif()
 
@@ -64,9 +48,7 @@ FIND_LIBRARY(PLIB_LIBRARIES
   NAMES plib PLIB
   HINTS
   $ENV{PLIBDIR}
-  PATHS
-  ~/Library/Frameworks
-  /Library/Frameworks
+  PATHS ${ADDITIONAL_LIBRARY_PATHS}
 )
 
 if (MSVC) 
@@ -91,19 +73,13 @@ macro(find_static_component comp libs)
       NAMES ${compLib}_d
       HINTS $ENV{PLIBDIR}
       PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
-      PATHS
-      /usr/local
-      /usr
-      /opt
+      PATHS ${ADDITIONAL_LIBRARY_PATHS}
     )
     FIND_LIBRARY(${compLibName}_RELEASE
       NAMES ${compLib}
       HINTS $ENV{PLIBDIR}
       PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
-      PATHS
-      /usr/local
-      /usr
-      /opt
+      PATHS ${ADDITIONAL_LIBRARY_PATHS}
     )
     select_library_configurations( ${compLibBase} )
 
index 225ecd1bb9ba7d3b1ae82ec861ccd6cf4304a37b..5210c8b690fa29bfcd100885a973b43f080564a7 100644 (file)
@@ -23,18 +23,13 @@ FIND_PATH(SQLITE3_INCLUDE_DIR sqlite3.h
     PATH_SUFFIXES include 
     HINTS $ENV{SQLITE3DIR}
     PATHS
-    /usr/local
-    /usr
-    /opt/local
+    ${ADDITIONAL_LIBRARY_PATHS}
   )
 
 FIND_LIBRARY(SQLITE3_LIBRARY NAMES sqlite3 sqlite3
     HINTS $ENV{SQLITE3DIR}
     PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
-    PATHS
-    /usr/local
-    /usr
-    /opt/local
+    PATHS ${ADDITIONAL_LIBRARY_PATHS}
   )
 
 include(FindPackageHandleStandardArgs)
index 67e373dd98ed75de7ea20ed0fafacff812c124b2..47ce3ca30b2eba8228e729e2c29ebf2ed132b32e 100644 (file)
@@ -38,18 +38,14 @@ macro(find_sg_library libName varName libs)
       HINTS $ENV{SIMGEAR_DIR}
       PATH_SUFFIXES ${CMAKE_INSTALL_LIBDIR} libs64 libs libs/Win32 libs/Win64
       PATHS
-      /usr/local
-      /usr
-      /opt
+      ${ADDITIONAL_LIBRARY_PATHS}
     )
     FIND_LIBRARY(${libVarName}_RELEASE
       NAMES ${libName}${CMAKE_RELEASE_POSTFIX}
       HINTS $ENV{SIMGEAR_DIR}
       PATH_SUFFIXES ${CMAKE_INSTALL_LIBDIR} libs64 libs libs/Win32 libs/Win64
       PATHS
-      /usr/local
-      /usr
-      /opt
+      ${ADDITIONAL_LIBRARY_PATHS}
     )
     
    # message(STATUS "before: Simgear ${${libVarName}_RELEASE} ")
@@ -79,11 +75,7 @@ FIND_PATH(SIMGEAR_INCLUDE_DIR simgear/math/SGMath.hxx
   HINTS $ENV{SIMGEAR_DIR}
   PATH_SUFFIXES include
   PATHS
-  ~/Library/Frameworks
-  /Library/Frameworks
-  /usr/local
-  /usr
-  /opt
+  ${ADDITIONAL_LIBRARY_PATHS}
 )
 
 # make sure the simgear include directory exists
index b176dc29108f3cfa0965ecd83ec50a83bfd15d0c..724dcff5fdebbf9c42a4a9483575654ba891e0d6 100644 (file)
@@ -29,10 +29,7 @@ endif(APPLE)
       NAMES ${compLib}
       HINTS $ENV{LIBSVN_DIR} ${CMAKE_INSTALL_PREFIX} ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/lib
       PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
-      PATHS
-      /opt/local
-      /usr/local
-      /usr
+      PATHS ${ADDITIONAL_LIBRARY_PATHS}
     )
 
        list(APPEND ${libs} ${${compLibName}})
@@ -62,10 +59,7 @@ if(HAVE_APR_CONFIG OR MSVC)
          HINTS
          $ENV{LIBSVN_DIR} ${CMAKE_INSTALL_PREFIX} ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/include
          PATH_SUFFIXES include/subversion-1
-         PATHS
-      /opt/local
-         /usr/local
-         /usr
+         PATHS ${ADDITIONAL_LIBRARY_PATHS}
        )
        
        set(LIBSVN_LIBRARIES "")
index dc363bafc2b34a3eac0ec9ea5464608367b9655d..f6d2a257542db9ead54a7e8c876c46ef41df17e9 100644 (file)
@@ -20,9 +20,7 @@ FIND_PATH(
 FIND_LIBRARY(
     UDEV_LIBRARIES
     NAMES udev libudev
-    PATHS
-        /usr/${CMAKE_INSTALL_LIBDIR}
-        /usr/local/${CMAKE_INSTALL_LIBDIR}
+    PATHS ${ADDITIONAL_LIBRARY_PATHS}
         ${UDEV_PATH_LIB}
 )