From b8187052ce4c6b0b4196e86a10431fb6a5a0751d Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Fri, 14 Sep 2012 11:20:01 +0200 Subject: [PATCH] Added CMake option OGS_LIBS_DIR for finding compiled libraries. --- CMakeLists.txt | 3 ++ scripts/cmake/Find.cmake | 15 +++++++ scripts/cmake/FindLibGeoTiff.cmake | 16 ++++--- scripts/cmake/FindLibTiff.cmake | 23 ++++++---- scripts/cmake/FindMetis.cmake | 2 + scripts/cmake/FindShapelib.cmake | 67 ++++++++++++++++++++++++++++++ 6 files changed, 113 insertions(+), 13 deletions(-) create mode 100644 scripts/cmake/FindShapelib.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 6457773a008..ca7884bd6c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,9 @@ OPTION(OGS_NO_EXTERNAL_LIBS "Builds OGS without any external dependencies." OFF) # Logging OPTION(OGS_DISABLE_LOGGING "Disables all logog messages." OFF) +# Search paths +SET(OGS_LIBS_DIR "" CACHE PATH "The path to the compiled third party libs (mainly used for Windows).") + # Print CMake variable values IF (OGS_CMAKE_DEBUG) INCLUDE(ListAllCMakeVariableValues) diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake index e6b98de5295..4f3564ed459 100644 --- a/scripts/cmake/Find.cmake +++ b/scripts/cmake/Find.cmake @@ -1,3 +1,12 @@ +############################ +### Find OGS directories ### +############################ + +# Compiled libraries (for Windows) +FIND_PATH(OGS_LIBS_DIR_FOUND geotiff.lib + PATHS $ENV{OGS_LIBS} ${OGS_LIBS_DIR} ${PROJECT_SOURCE_DIR}/../Libs C:/OGS_Libs + PATH_SUFFIXES libgeotiff) + ###################### ### Find tools ### ###################### @@ -100,3 +109,9 @@ FIND_PACKAGE( LibGeoTiff ) IF(libgeotiff_FOUND) ADD_DEFINITIONS(-Dlibgeotiff_FOUND) ENDIF() # libgeotiff_FOUND + +## shapelib ## +FIND_PACKAGE( Shapelib ) +IF(Shapelib_FOUND) + ADD_DEFINITIONS(-DShapelib_FOUND) +ENDIF() # Shapelib_FOUND diff --git a/scripts/cmake/FindLibGeoTiff.cmake b/scripts/cmake/FindLibGeoTiff.cmake index 8b46fc9cff5..1c2934a16c5 100644 --- a/scripts/cmake/FindLibGeoTiff.cmake +++ b/scripts/cmake/FindLibGeoTiff.cmake @@ -11,20 +11,24 @@ if (NOT libgeotiff_FOUND) find_path( libgeotiff_INCLUDE_DIR NAMES geotiff.h - PATHS /usr/include + PATHS + /usr/include /usr/include/libgeotiff /usr/include/geotiff ${CMAKE_SOURCE_DIR}/../Libs/libgeotiff - C:/OGS_Libs/libgeotiff - $ENV{OGS_LIBS}/libgeotiff) + $ENV{OGS_LIBS}/libgeotiff + ${OGS_LIBS_DIR_FOUND}/libgeotiff + ) find_library(libgeotiff_LIBRARIES NAMES geotiff - PATHS /usr/lib64 + PATHS + /usr/lib64 /usr/lib ${CMAKE_SOURCE_DIR}/../Libs/libgeotiff - C:/OGS_Libs/libgeotiff - $ENV{OGS_LIBS}/libgeotiff) + $ENV{OGS_LIBS}/libgeotiff + ${OGS_LIBS_DIR_FOUND}/libgeotiff + ) # Set the include dir variables and the libraries and let libfind_process do the rest. diff --git a/scripts/cmake/FindLibTiff.cmake b/scripts/cmake/FindLibTiff.cmake index 96b4cac12d2..25014a26913 100644 --- a/scripts/cmake/FindLibTiff.cmake +++ b/scripts/cmake/FindLibTiff.cmake @@ -11,21 +11,30 @@ if (NOT libtiff_FOUND) find_path( libtiff_INCLUDE_DIR NAMES tiff.h - PATHS /usr/include + PATHS + /usr/include ${CMAKE_SOURCE_DIR}/../Libs/libtiff/libtiff - C:/OGS_Libs/libtiff - $ENV{OGS_LIBS}/libtiff) + $ENV{OGS_LIBS}/libtiff + ${OGS_LIBS_DIR_FOUND}/libtiff/libtiff + ) if ( UNIX ) find_library(libtiff_LIBRARIES NAMES tiff - PATHS /usr/lib64 /usr/lib ${CMAKE_SOURCE_DIR}/../Libs/libtiff/libtiff) + PATHS + /usr/lib64 + /usr/lib + ${CMAKE_SOURCE_DIR}/../Libs/libtiff/libtiff + ${OGS_LIBS_DIR_FOUND}/libtiff/libtiff + ) else ( UNIX ) find_library(libtiff_LIBRARIES NAMES libtiff - PATHS ${CMAKE_SOURCE_DIR}/../Libs/libtiff/libtiff - C:/OGS_Libs/libtiff - $ENV{OGS_LIBS}/libtiff) + PATHS + ${CMAKE_SOURCE_DIR}/../Libs/libtiff/libtiff + $ENV{OGS_LIBS}/libtiff + ${OGS_LIBS_DIR_FOUND}/libtiff + ) endif ( UNIX ) diff --git a/scripts/cmake/FindMetis.cmake b/scripts/cmake/FindMetis.cmake index c9518513c27..c13486ef2f7 100644 --- a/scripts/cmake/FindMetis.cmake +++ b/scripts/cmake/FindMetis.cmake @@ -15,12 +15,14 @@ FIND_PATH(METIS_INCLUDE_DIR metis.h /usr/include/metis $ENV{HOME}/include/ ${CMAKE_SOURCE_DIR}/../libs/include + ${OGS_LIBS_DIR_FOUND}/include ) FIND_LIBRARY(METIS_LIBRARY metis /usr/lib $ENV{HOME}/lib/ ${CMAKE_SOURCE_DIR}/../libs/lib + ${OGS_LIBS_DIR_FOUND}/lib ) SET(METIS_LIBRARIES ${METIS_LIBRARY}) diff --git a/scripts/cmake/FindShapelib.cmake b/scripts/cmake/FindShapelib.cmake new file mode 100644 index 00000000000..fe6f4aa52eb --- /dev/null +++ b/scripts/cmake/FindShapelib.cmake @@ -0,0 +1,67 @@ +# - Try to find Shapelib +# Once done, this will define +# +# Shapelib_FOUND +# Shapelib_INCLUDE_DIRS +# Shapelib_LIBRARIES + +if (NOT Shapelib_FOUND) + + include(LibFindMacros) + + find_path( Shapelib_INCLUDE_DIR + NAMES shapefil.h + PATHS + /usr/include/libshp + /usr/include + ${CMAKE_SOURCE_DIR}/../Libs/shapelib + C:/OGS_Libs/shapelib + $ENV{OGS_LIBS}/shapelib + ${OGS_LIBS_DIR_FOUND}/shapelib + ) + + if ( UNIX ) + find_library(Shapelib_LIBRARIES + NAMES shp + PATHS + /usr/lib64 + /usr/lib + ${CMAKE_SOURCE_DIR}/../Libs/shapelib + ${OGS_LIBS_DIR_FOUND}/shapelib + ) + find_library(Shapelib_LIBRARIES + NAMES shapelib.a + PATHS + /usr/lib64 + /usr/lib + ${CMAKE_SOURCE_DIR}/../Libs/shapelib/ + ${OGS_LIBS_DIR_FOUND}/shapelib + ) + find_library(Shapelib_LIBRARIES + NAMES shapelib + PATHS + /usr/lib64 + /usr/lib + ${CMAKE_SOURCE_DIR}/../Libs/shapelib/ + ${OGS_LIBS_DIR_FOUND}/shapelib + ) + else ( UNIX ) + find_library(Shapelib_LIBRARIES + NAMES shapelib + PATHS + ${CMAKE_SOURCE_DIR}/../Libs/shapelib + ${OGS_LIBS_DIR_FOUND}/shapelib + ) + endif ( UNIX ) + + # Set the include dir variables and the libraries and let libfind_process do the rest. + # NOTE: Singular variables for this library, plural for libraries this this lib depends on. + if (NOT Shapelib_LIBRARIES STREQUAL "Shapelib_LIBRARIES-NOTFOUND" AND NOT Shapelib_INCLUDE_DIR STREQUAL "Shapelib_INCLUDE_DIR-NOTFOUND") + set(Shapelib_PROCESS_INCLUDES Shapelib_INCLUDE_DIR) + set(Shapelib_PROCESS_LIBS Shapelib_LIBRARIES) + libfind_process(Shapelib) + else (NOT Shapelib_LIBRARIES STREQUAL "Shapelib_LIBRARIES-NOTFOUND" AND NOT Shapelib_INCLUDE_DIR STREQUAL "Shapelib_INCLUDE_DIR-NOTFOUND") + #message (STATUS "Warning: shapelib not found!") + endif (NOT Shapelib_LIBRARIES STREQUAL "Shapelib_LIBRARIES-NOTFOUND" AND NOT Shapelib_INCLUDE_DIR STREQUAL "Shapelib_INCLUDE_DIR-NOTFOUND") + +endif (NOT Shapelib_FOUND) -- GitLab