249 lines
7.5 KiB
CMake
249 lines
7.5 KiB
CMake
|
## Once run this will define:
|
||
|
##
|
||
|
## QGIS_FOUND = system has QGIS lib
|
||
|
##
|
||
|
## QGIS_CORE_LIBRARY = full path to the CORE library
|
||
|
## QGIS_GUI_LIBRARY = full path to the GUI library
|
||
|
## QGIS_ANALYSIS_LIBRARY = full path to the ANALYSIS library
|
||
|
## QGIS_PLUGIN_DIR = full path to where QGIS plugins are installed
|
||
|
## QGIS_INCLUDE_DIR = where to find headers
|
||
|
## QGIS_UI_INCLUDE_DIR = where to find ui_* generated headers
|
||
|
##
|
||
|
## QGIS_VERSION = version as defined in qgsconfig.h, as major.minor.patch
|
||
|
##
|
||
|
## Definitions or ENV variables affecting search locations
|
||
|
##
|
||
|
## OSGEO4W_ROOT = [A-Z]:/path/to/OSGeo4W/install/root
|
||
|
## (^ use forward slashes!)
|
||
|
## OSGEO4W_QGIS_SUBDIR = qgis[-rel|-ltr][-dev], in OSGEO4W_ROOT/apps/
|
||
|
## QGIS_MAC_PATH = /path/to/any/QGIS.app/Contents
|
||
|
## QGIS_BUILD_PATH = [A-Z:]/path/to/QGIS/build/directory
|
||
|
##
|
||
|
## Tim Sutton
|
||
|
## Larry Shaffer (2017-01-31)
|
||
|
|
||
|
#MESSAGE("Searching for QGIS")
|
||
|
IF(WIN32)
|
||
|
# OSGEO4W_QGIS_SUBDIR relative install: qgis[-rel|-ltr][-dev], etc.
|
||
|
IF (NOT OSGEO4W_QGIS_SUBDIR OR "${OSGEO4W_QGIS_SUBDIR}" STREQUAL "")
|
||
|
IF (NOT "$ENV{OSGEO4W_QGIS_SUBDIR}" STREQUAL "")
|
||
|
SET (OSGEO4W_QGIS_SUBDIR $ENV{OSGEO4W_QGIS_SUBDIR})
|
||
|
ELSE ()
|
||
|
SET (OSGEO4W_QGIS_SUBDIR qgis)
|
||
|
ENDIF ()
|
||
|
ENDIF ()
|
||
|
|
||
|
#MESSAGE("Searching for QGIS in $ENV{PROGRAMFILES}/QGIS")
|
||
|
IF (MINGW)
|
||
|
FIND_PATH(QGIS_PLUGIN_DIR
|
||
|
NAMES libofflineeditingplugin.dll
|
||
|
PATHS
|
||
|
"$ENV{PROGRAMFILES}/QGIS/plugins"
|
||
|
)
|
||
|
FIND_PATH(QGIS_INCLUDE_DIR
|
||
|
NAMES qgsapplication.h
|
||
|
PATHS
|
||
|
"$ENV{PROGRAMFILES}/QGIS/include"
|
||
|
)
|
||
|
FIND_LIBRARY(QGIS_CORE_LIBRARY
|
||
|
NAMES qgis_core
|
||
|
PATHS
|
||
|
"$ENV{PROGRAMFILES}/QGIS/"
|
||
|
)
|
||
|
FIND_LIBRARY(QGIS_GUI_LIBRARY
|
||
|
NAMES qgis_gui
|
||
|
PATHS
|
||
|
"$ENV{PROGRAMFILES}/QGIS/"
|
||
|
)
|
||
|
ENDIF (MINGW)
|
||
|
|
||
|
IF (MSVC)
|
||
|
FIND_PATH(QGIS_PLUGIN_DIR
|
||
|
NAMES offlineeditingplugin.dll
|
||
|
PATHS
|
||
|
"$ENV{OSGEO4W_ROOT}/apps/${OSGEO4W_QGIS_SUBDIR}/plugins"
|
||
|
"$ENV{PROGRAMFILES}/QGIS/plugins"
|
||
|
)
|
||
|
FIND_PATH(QGIS_INCLUDE_DIR
|
||
|
NAMES qgsapplication.h
|
||
|
PATHS
|
||
|
"$ENV{INCLUDE}"
|
||
|
"$ENV{LIB_DIR}/include/qgis"
|
||
|
"$ENV{OSGEO4W_ROOT}/include"
|
||
|
"$ENV{OSGEO4W_ROOT}/apps/${OSGEO4W_QGIS_SUBDIR}/include"
|
||
|
"$ENV{PROGRAMFILES}/QGIS/include"
|
||
|
)
|
||
|
FIND_LIBRARY(QGIS_CORE_LIBRARY
|
||
|
NAMES qgis_core
|
||
|
PATHS
|
||
|
"$ENV{LIB_DIR}/lib/"
|
||
|
"$ENV{LIB}"
|
||
|
"$ENV{OSGEO4W_ROOT}/lib"
|
||
|
"$ENV{OSGEO4W_ROOT}/apps/${OSGEO4W_QGIS_SUBDIR}/lib"
|
||
|
"$ENV{PROGRAMFILES}/QGIS/lib"
|
||
|
)
|
||
|
FIND_LIBRARY(QGIS_GUI_LIBRARY
|
||
|
NAMES qgis_gui
|
||
|
PATHS
|
||
|
"$ENV{LIB_DIR}"
|
||
|
"$ENV{LIB}"
|
||
|
"$ENV{OSGEO4W_ROOT}/lib"
|
||
|
"$ENV{OSGEO4W_ROOT}/apps/${OSGEO4W_QGIS_SUBDIR}/lib"
|
||
|
"$ENV{PROGRAMFILES}/QGIS/lib"
|
||
|
)
|
||
|
FIND_LIBRARY(QGIS_ANALYSIS_LIBRARY
|
||
|
NAMES qgis_analysis
|
||
|
PATHS
|
||
|
"$ENV{LIB_DIR}"
|
||
|
"$ENV{LIB}"
|
||
|
"$ENV{OSGEO4W_ROOT}/lib"
|
||
|
"$ENV{OSGEO4W_ROOT}/apps/${OSGEO4W_QGIS_SUBDIR}/lib"
|
||
|
"$ENV{PROGRAMFILES}/QGIS/lib"
|
||
|
)
|
||
|
ENDIF (MSVC)
|
||
|
ELSE(WIN32)
|
||
|
IF(UNIX)
|
||
|
#MESSAGE("Searching for QGIS in /usr/bin; /usr/local/bin")
|
||
|
FIND_PATH(QGIS_PLUGIN_DIR
|
||
|
NAMES libofflineeditingplugin.so
|
||
|
PATHS
|
||
|
${QGIS_BUILD_PATH}/PlugIns/qgis
|
||
|
${QGIS_MAC_PATH}/PlugIns/qgis
|
||
|
${QGIS_PREFIX_PATH}/lib/qgis/plugins/
|
||
|
/usr/lib64/qgis/plugins
|
||
|
/usr/lib/qgis
|
||
|
/usr/lib/qgis/plugins
|
||
|
/usr/local/lib/qgis/plugins
|
||
|
"$ENV{LIB_DIR}/lib/qgis/plugins"
|
||
|
"$ENV{LIB_DIR}/lib/qgis"
|
||
|
)
|
||
|
FIND_PATH(QGIS_INCLUDE_DIR
|
||
|
NAMES qgis.h
|
||
|
PATHS
|
||
|
${QGIS_BUILD_PATH}/output/lib/qgis_core.framework/Headers
|
||
|
${QGIS_MAC_PATH}/Frameworks/qgis_core.framework/Headers
|
||
|
{QGIS_PREFIX_PATH}/include/qgis
|
||
|
/usr/include/qgis
|
||
|
/usr/local/include/qgis
|
||
|
/Library/Frameworks/qgis_core.framework/Headers
|
||
|
"$ENV{LIB_DIR}/include/qgis"
|
||
|
)
|
||
|
FIND_PATH(QGIS_UI_INCLUDE_DIR
|
||
|
NAMES ui_qgscredentialdialog.h
|
||
|
PATHS
|
||
|
${QGIS_BUILD_PATH}/src/ui
|
||
|
${QGIS_MAC_PATH}/Frameworks/qgis_gui.framework/Headers
|
||
|
{QGIS_PREFIX_PATH}/include/qgis
|
||
|
/usr/include/qgis
|
||
|
/usr/local/include/qgis
|
||
|
/Library/Frameworks/qgis_gui.framework/Headers
|
||
|
"$ENV{LIB_DIR}/include/qgis"
|
||
|
)
|
||
|
# also get other frameworks' headers folders on OS X
|
||
|
IF (APPLE)
|
||
|
FIND_PATH(QGIS_GUI_INCLUDE_DIR
|
||
|
NAMES qgsguiutils.h
|
||
|
PATHS
|
||
|
${QGIS_BUILD_PATH}/output/lib
|
||
|
${QGIS_MAC_PATH}/Frameworks
|
||
|
/Library/Frameworks
|
||
|
PATH_SUFFIXES qgis_gui.framework/Headers
|
||
|
)
|
||
|
FIND_PATH(QGIS_ANALYSIS_INCLUDE_DIR
|
||
|
NAMES qgsinterpolator.h
|
||
|
PATHS
|
||
|
${QGIS_BUILD_PATH}/output/lib
|
||
|
${QGIS_MAC_PATH}/Frameworks
|
||
|
/Library/Frameworks
|
||
|
PATH_SUFFIXES qgis_analysis.framework/Headers
|
||
|
)
|
||
|
SET(QGIS_INCLUDE_DIR
|
||
|
${QGIS_INCLUDE_DIR}
|
||
|
${QGIS_GUI_INCLUDE_DIR}
|
||
|
${QGIS_ANALYSIS_INCLUDE_DIR}
|
||
|
${QGIS_UI_INCLUDE_DIR}
|
||
|
)
|
||
|
ENDIF (APPLE)
|
||
|
|
||
|
FIND_LIBRARY(QGIS_CORE_LIBRARY
|
||
|
NAMES qgis_core
|
||
|
PATHS
|
||
|
${QGIS_BUILD_PATH}/output/lib
|
||
|
${QGIS_MAC_PATH}/Frameworks
|
||
|
${QGIS_MAC_PATH}/lib
|
||
|
${QGIS_PREFIX_PATH}/lib/
|
||
|
/usr/lib64
|
||
|
/usr/lib
|
||
|
/usr/local/lib
|
||
|
/Library/Frameworks
|
||
|
"$ENV{LIB_DIR}/lib/"
|
||
|
)
|
||
|
FIND_LIBRARY(QGIS_GUI_LIBRARY
|
||
|
NAMES qgis_gui
|
||
|
PATHS
|
||
|
${QGIS_BUILD_PATH}/output/lib
|
||
|
${QGIS_MAC_PATH}/Frameworks
|
||
|
${QGIS_MAC_PATH}/lib
|
||
|
${QGIS_PREFIX_PATH}/lib/
|
||
|
/usr/lib64
|
||
|
/usr/lib
|
||
|
/usr/local/lib
|
||
|
/Library/Frameworks
|
||
|
"$ENV{LIB_DIR}/lib/"
|
||
|
)
|
||
|
FIND_LIBRARY(QGIS_ANALYSIS_LIBRARY
|
||
|
NAMES qgis_analysis
|
||
|
PATHS
|
||
|
${QGIS_BUILD_PATH}/output/lib
|
||
|
${QGIS_MAC_PATH}/Frameworks
|
||
|
${QGIS_MAC_PATH}/lib
|
||
|
${QGIS_PREFIX_PATH}/lib/
|
||
|
/usr/lib64
|
||
|
/usr/lib
|
||
|
/usr/local/lib
|
||
|
/Library/Frameworks
|
||
|
"$ENV{LIB_DIR}/lib/"
|
||
|
)
|
||
|
ENDIF(UNIX)
|
||
|
ENDIF(WIN32)
|
||
|
|
||
|
IF (QGIS_INCLUDE_DIR)
|
||
|
SET(QGIS_VERSION QGIS_VERSION-NOTFOUND)
|
||
|
FIND_FILE(_qgsconfig_h qgsconfig.h PATHS ${QGIS_INCLUDE_DIR})
|
||
|
IF (_qgsconfig_h)
|
||
|
FILE(READ ${_qgsconfig_h} _qgsconfig)
|
||
|
IF (_qgsconfig)
|
||
|
# version defined like #define VERSION "2.14.8-Essen"
|
||
|
FILE(STRINGS "${_qgsconfig_h}" _qgsversion_str REGEX "^#define VERSION .*$")
|
||
|
STRING(REGEX REPLACE "^#define VERSION +\"([0-9]+\\.[0-9]+\\.[0-9]+).*$" "\\1" _qgsversion "${_qgsversion_str}")
|
||
|
IF (_qgsversion)
|
||
|
SET(QGIS_VERSION ${_qgsversion})
|
||
|
ELSE ()
|
||
|
MESSAGE(WARNING "No QGIS version determined: failed to parse qgsconfig.h")
|
||
|
ENDIF ()
|
||
|
ELSE()
|
||
|
MESSAGE(WARNING "No QGIS version determined: failed to read qgsconfig.h")
|
||
|
ENDIF ()
|
||
|
ELSE ()
|
||
|
MESSAGE(WARNING "No QGIS version determined: failed to find qgsconfig.h")
|
||
|
ENDIF ()
|
||
|
ENDIF ()
|
||
|
|
||
|
IF (QGIS_INCLUDE_DIR AND QGIS_CORE_LIBRARY AND QGIS_GUI_LIBRARY AND QGIS_ANALYSIS_LIBRARY)
|
||
|
SET(QGIS_FOUND TRUE)
|
||
|
ENDIF ()
|
||
|
|
||
|
IF (QGIS_FOUND)
|
||
|
IF (NOT QGIS_FIND_QUIETLY)
|
||
|
MESSAGE(STATUS "Found QGIS: ${QGIS_VERSION}")
|
||
|
MESSAGE(STATUS "Found QGIS core: ${QGIS_CORE_LIBRARY}")
|
||
|
MESSAGE(STATUS "Found QGIS gui: ${QGIS_GUI_LIBRARY}")
|
||
|
MESSAGE(STATUS "Found QGIS analysis: ${QGIS_ANALYSIS_LIBRARY}")
|
||
|
MESSAGE(STATUS "Found QGIS plugins directory: ${QGIS_PLUGIN_DIR}")
|
||
|
ENDIF (NOT QGIS_FIND_QUIETLY)
|
||
|
ELSE (QGIS_FOUND)
|
||
|
IF (QGIS_FIND_REQUIRED)
|
||
|
MESSAGE(FATAL_ERROR "Could not find QGIS")
|
||
|
ENDIF (QGIS_FIND_REQUIRED)
|
||
|
ENDIF (QGIS_FOUND)
|