From f98bdc04a68fc77e3997749ae8e8a7dd1ad3756d Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Fri, 6 Nov 2020 09:18:43 +1000 Subject: [PATCH] Make PDAL version information available for macros --- CMakeLists.txt | 3 +++ cmake/FindPDAL.cmake | 22 +++++++++++++++++++--- cmake_templates/qgsconfig.h.in | 6 ++++++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 50b28979912..4c6f3d279fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -398,6 +398,9 @@ IF(WITH_CORE) IF (WITH_PDAL) FIND_PACKAGE(PDAL) # PDAL provider ENDIF (WITH_PDAL) + IF (PDAL_FOUND) + SET(HAVE_PDAL TRUE) # used in qgsconfig.h + ENDIF (PDAL_FOUND) ############################################################# # search for Qt5 diff --git a/cmake/FindPDAL.cmake b/cmake/FindPDAL.cmake index bd8797757de..08ad42aa23b 100644 --- a/cmake/FindPDAL.cmake +++ b/cmake/FindPDAL.cmake @@ -41,15 +41,31 @@ FIND_LIBRARY(PDAL_UTIL_LIBRARY NAMES pdal_util libpdal_util PATHS ) FIND_LIBRARY(PDAL_UTIL_LIBRARY NAMES pdal_util libpdal_util) +FIND_PROGRAM(PDAL_BIN pdal + $ENV{LIB_DIR}/bin + /usr/local/bin/ + /usr/bin/ + NO_DEFAULT_PATH + ) +FIND_PROGRAM(PDAL_BIN pdal) -IF (PDAL_INCLUDE_DIR AND PDAL_CPP_LIBRARY AND PDAL_UTIL_LIBRARY) +IF (PDAL_INCLUDE_DIR AND PDAL_CPP_LIBRARY AND PDAL_UTIL_LIBRARY AND PDAL_BIN) SET(PDAL_FOUND TRUE) SET(PDAL_LIBRARIES ${PDAL_CPP_LIBRARY} ${PDAL_UTIL_LIBRARY}) -ENDIF (PDAL_INCLUDE_DIR AND PDAL_CPP_LIBRARY AND PDAL_UTIL_LIBRARY) +ENDIF (PDAL_INCLUDE_DIR AND PDAL_CPP_LIBRARY AND PDAL_UTIL_LIBRARY AND PDAL_BIN) IF (PDAL_FOUND) + # extract PDAL version + EXEC_PROGRAM(${PDAL_BIN} + ARGS --version + OUTPUT_VARIABLE PDAL_VERSION_OUT ) + STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\1" PDAL_VERSION_MAJOR "${PDAL_VERSION_OUT}") + STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\2" PDAL_VERSION_MINOR "${PDAL_VERSION_OUT}") + STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\3" PDAL_VERSION_MICRO "${PDAL_VERSION_OUT}") + STRING(CONCAT PDAL_VERSION ${PDAL_VERSION_MAJOR} "." ${PDAL_VERSION_MINOR} "." ${PDAL_VERSION_MICRO}) + IF (NOT PDAL_FIND_QUIETLY) - MESSAGE(STATUS "Found PDAL: ${PDAL_LIBRARIES}") + MESSAGE(STATUS "Found PDAL: ${PDAL_LIBRARIES} (${PDAL_VERSION})") ENDIF (NOT PDAL_FIND_QUIETLY) ELSE (PDAL_FOUND) diff --git a/cmake_templates/qgsconfig.h.in b/cmake_templates/qgsconfig.h.in index 94b7965a8b6..b636024dade 100644 --- a/cmake_templates/qgsconfig.h.in +++ b/cmake_templates/qgsconfig.h.in @@ -80,5 +80,11 @@ #cmakedefine HAVE_LAZPERF +#cmakedefine HAVE_PDAL +#define PDAL_VERSION "${PDAL_VERSION}" +#define PDAL_VERSION_MAJOR "${PDAL_VERSION_MAJOR}" +#define PDAL_VERSION_MINOR "${PDAL_VERSION_MINOR}" +#define PDAL_VERSION_MICRO "${PDAL_VERSION_MICRO}" + #endif