mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-04-07 14:52:31 +02:00
177 lines
6.2 KiB
Diff
177 lines
6.2 KiB
Diff
From 021f919f241806be566dce0a37ce84a56774eb84 Mon Sep 17 00:00:00 2001
|
|
From: Nicklas Larsson <n_larsson@yahoo.com>
|
|
Date: Tue, 17 Oct 2023 12:47:14 +0200
|
|
Subject: [PATCH] cmake: update to find PDAL 2.6+
|
|
|
|
With PDAL 2.6 the 'pdal_util' library is removed as a separate library
|
|
and hence part of the 'pdalcpp' library.
|
|
---
|
|
cmake/FindPDAL.cmake | 35 ++++++++++++++++++++++++++-----
|
|
cmake_templates/qgsconfig.h.in | 2 +-
|
|
python/CMakeLists.txt | 4 ----
|
|
src/app/CMakeLists.txt | 7 ++-----
|
|
src/core/CMakeLists.txt | 9 ++------
|
|
src/gui/CMakeLists.txt | 7 ++-----
|
|
src/providers/pdal/CMakeLists.txt | 5 -----
|
|
tests/src/core/CMakeLists.txt | 4 ----
|
|
8 files changed, 37 insertions(+), 36 deletions(-)
|
|
|
|
diff --git a/cmake/FindPDAL.cmake b/cmake/FindPDAL.cmake
|
|
index 1899d26de5ff..d1de5c8dccba 100644
|
|
--- a/cmake/FindPDAL.cmake
|
|
+++ b/cmake/FindPDAL.cmake
|
|
@@ -7,8 +7,7 @@
|
|
# CMake module to search for PDAL library
|
|
#
|
|
# If it's found it sets PDAL_FOUND to TRUE
|
|
-# and following variables are set:
|
|
-# PDAL_INCLUDE_DIR
|
|
+# and adds the following variable containing library target(s):
|
|
# PDAL_LIBRARIES
|
|
|
|
# FIND_PATH and FIND_LIBRARY normally search standard locations
|
|
@@ -18,6 +17,22 @@
|
|
# locations. When an earlier FIND_* succeeds, subsequent FIND_*s
|
|
# searching for the same item do nothing.
|
|
|
|
+find_package(PDAL CONFIG)
|
|
+
|
|
+if(PDAL_FOUND)
|
|
+ if(NOT PDAL_FIND_QUIETLY)
|
|
+ message(STATUS "Found PDAL: ${PDAL_LIBRARIES} (${PDAL_VERSION})")
|
|
+ endif()
|
|
+
|
|
+ if(PDAL_VERSION VERSION_LESS "1.7.0")
|
|
+ message(FATAL_ERROR "PDAL version is too old (${PDAL_VERSION}). Use 1.7 or higher.")
|
|
+ endif()
|
|
+
|
|
+ return()
|
|
+endif()
|
|
+
|
|
+# Fallback for systems where PDAL's config-file package is not present.
|
|
+# It is not adapted for PDAL 2.6+ (where pdal_util library is removed).
|
|
FIND_PATH(PDAL_INCLUDE_DIR pdal/pdal.hpp
|
|
"$ENV{LIB_DIR}/include"
|
|
"/usr/include"
|
|
@@ -50,7 +65,7 @@ FIND_PROGRAM(PDAL_BIN pdal)
|
|
|
|
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})
|
|
+ SET(PDAL_LIBRARIES pdalcpp pdal_util)
|
|
ENDIF (PDAL_INCLUDE_DIR AND PDAL_CPP_LIBRARY AND PDAL_UTIL_LIBRARY AND PDAL_BIN)
|
|
|
|
IF (PDAL_FOUND)
|
|
@@ -60,8 +75,8 @@ IF (PDAL_FOUND)
|
|
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})
|
|
+ STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\3" PDAL_VERSION_PATCH "${PDAL_VERSION_OUT}")
|
|
+ STRING(CONCAT PDAL_VERSION ${PDAL_VERSION_MAJOR} "." ${PDAL_VERSION_MINOR} "." ${PDAL_VERSION_PATCH})
|
|
|
|
IF (NOT PDAL_FIND_QUIETLY)
|
|
MESSAGE(STATUS "Found PDAL: ${PDAL_LIBRARIES} (${PDAL_VERSION})")
|
|
@@ -71,6 +86,16 @@ IF (PDAL_FOUND)
|
|
MESSAGE (FATAL_ERROR "PDAL version is too old (${PDAL_VERSION}). Use 1.7 or higher.")
|
|
ENDIF()
|
|
|
|
+ add_library(pdalcpp UNKNOWN IMPORTED)
|
|
+ target_link_libraries(pdalcpp INTERFACE ${PDAL_CPP_LIBRARY})
|
|
+ target_include_directories(pdalcpp INTERFACE ${PDAL_INCLUDE_DIR})
|
|
+ set_target_properties(pdalcpp PROPERTIES IMPORTED_LOCATION ${PDAL_CPP_LIBRARY})
|
|
+
|
|
+ add_library(pdal_util UNKNOWN IMPORTED)
|
|
+ target_link_libraries(pdal_util INTERFACE ${PDAL_UTIL_LIBRARY})
|
|
+ target_include_directories(pdal_util INTERFACE ${PDAL_INCLUDE_DIR})
|
|
+ set_target_properties(pdal_util PROPERTIES IMPORTED_LOCATION ${PDAL_UTIL_LIBRARY})
|
|
+
|
|
ELSE (PDAL_FOUND)
|
|
IF (PDAL_FIND_REQUIRED)
|
|
MESSAGE(FATAL_ERROR "Could not find PDAL")
|
|
diff --git a/cmake_templates/qgsconfig.h.in b/cmake_templates/qgsconfig.h.in
|
|
index 628a9c9b6aa1..800e65d3cfda 100644
|
|
--- a/cmake_templates/qgsconfig.h.in
|
|
+++ b/cmake_templates/qgsconfig.h.in
|
|
@@ -110,7 +110,7 @@
|
|
#define PDAL_VERSION_MINOR_INT ${PDAL_VERSION_MINOR}
|
|
#define PDAL_VERSION_MAJOR "${PDAL_VERSION_MAJOR}"
|
|
#define PDAL_VERSION_MINOR "${PDAL_VERSION_MINOR}"
|
|
-#define PDAL_VERSION_MICRO "${PDAL_VERSION_MICRO}"
|
|
+#define PDAL_VERSION_MICRO "${PDAL_VERSION_PATCH}"
|
|
|
|
#cmakedefine HAVE_DRACO
|
|
|
|
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
|
|
index 64f2cfd10355..71c26df216df 100644
|
|
--- a/src/app/CMakeLists.txt
|
|
+++ b/src/app/CMakeLists.txt
|
|
@@ -482,11 +482,8 @@ if(HAVE_OPENCL)
|
|
include_directories(SYSTEM ${OpenCL_INCLUDE_DIRS})
|
|
endif()
|
|
|
|
-if (WITH_PDAL)
|
|
- include_directories(SYSTEM ${PDAL_INCLUDE_DIR})
|
|
- if(MSVC)
|
|
- add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
- endif()
|
|
+if (WITH_PDAL AND MSVC)
|
|
+ add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
endif()
|
|
|
|
if(ENABLE_MODELTEST)
|
|
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
|
|
index 869428249e98..1f891d96e7a7 100644
|
|
--- a/src/core/CMakeLists.txt
|
|
+++ b/src/core/CMakeLists.txt
|
|
@@ -2093,13 +2093,8 @@ if (${QT_VERSION_BASE}Positioning_FOUND)
|
|
)
|
|
endif()
|
|
|
|
-if (WITH_PDAL)
|
|
- include_directories(SYSTEM
|
|
- ${PDAL_INCLUDE_DIR}
|
|
- )
|
|
- if(MSVC)
|
|
- add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
- endif()
|
|
+if (WITH_PDAL AND MSVC)
|
|
+ add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
endif()
|
|
|
|
if (HAVE_OPENCL)
|
|
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
|
|
index 016da19d4b83..708858399e0e 100644
|
|
--- a/src/gui/CMakeLists.txt
|
|
+++ b/src/gui/CMakeLists.txt
|
|
@@ -1599,11 +1599,8 @@ if (BUILD_WITH_QT6)
|
|
)
|
|
endif()
|
|
|
|
-if (WITH_PDAL)
|
|
- include_directories(SYSTEM ${PDAL_INCLUDE_DIR})
|
|
- if(MSVC)
|
|
- add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
- endif()
|
|
+if (WITH_PDAL AND MSVC)
|
|
+ add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
endif()
|
|
|
|
target_include_directories(qgis_gui PUBLIC
|
|
diff --git a/src/providers/pdal/CMakeLists.txt b/src/providers/pdal/CMakeLists.txt
|
|
index 38509d1c235b..e8ea264e5597 100644
|
|
--- a/src/providers/pdal/CMakeLists.txt
|
|
+++ b/src/providers/pdal/CMakeLists.txt
|
|
@@ -149,10 +149,6 @@ include_directories(
|
|
${CMAKE_SOURCE_DIR}/external/untwine/api
|
|
)
|
|
|
|
-include_directories(SYSTEM
|
|
- ${PDAL_INCLUDE_DIR}
|
|
-)
|
|
-
|
|
add_executable(untwine ${UNTWINE_SRCS} ${UNTWINE_HDRS})
|
|
target_compile_features(untwine PRIVATE cxx_std_17)
|
|
|