diff --git a/CMakeLists.txt b/CMakeLists.txt index 6457773a00821243db51964cc761bba0196e3adf..ca7884bd6c99ff24c5f5855b4f26e16110778538 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 e6b98de5295cf2aa021ff3e9d2fd8766308c0a26..4f3564ed45998967c062a2c821902757ec837f9a 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 8b46fc9cff51320cf61e0bd1f2124a1d1c151c8b..1c2934a16c5f86f2b78ac013d30b2076ab651b04 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 96b4cac12d28d9fd413d008aa00ac55c168ede21..25014a26913e3f3cf2561b03cc5a51ee64da8d5f 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 c9518513c277831a5aadc73252263cb6ece91377..c13486ef2f7b37b1be2d5718063ddfbf07614766 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 0000000000000000000000000000000000000000..fe6f4aa52eb3d12659674737878a79a0efeaa2c7 --- /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)