88 lines
2.9 KiB
Diff
88 lines
2.9 KiB
Diff
From cb5bbb250e07e7621a5cfe3818f8141e33967f0e Mon Sep 17 00:00:00 2001
|
|
From: Andrei BENCSIK <andrei.bencsik@gmail.com>
|
|
Date: Fri, 24 Dec 2021 14:04:47 +0200
|
|
Subject: [PATCH] Fix CMake packaging for installation.
|
|
|
|
Add CMake config file (re2Config.cmake) for find_package(re2) - fixes finding Threads dependency
|
|
Add CMake version file (re2ConfigVersion.cmake) - allows find_package(re2 <VERSION> ...)
|
|
|
|
Change-Id: I6c1de1bfc59121085d70a277bd0821504b9d8736
|
|
Reviewed-on: https://code-review.googlesource.com/c/re2/+/59530
|
|
Reviewed-by: Andrei Bencsik <andrei.bencsik@gmail.com>
|
|
Reviewed-by: Paul Wankadia <junyer@google.com>
|
|
---
|
|
CMakeLists.txt | 18 ++++++++++++++++--
|
|
re2Config.cmake.in | 22 ++++++++++++++++++++++
|
|
2 files changed, 38 insertions(+), 2 deletions(-)
|
|
create mode 100644 re2Config.cmake.in
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index fcd3870..62d4995 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -6,6 +6,7 @@
|
|
cmake_minimum_required(VERSION 3.5.1)
|
|
|
|
project(RE2 CXX)
|
|
+include(CMakePackageConfigHelpers)
|
|
include(CTest)
|
|
include(GNUInstallDirs)
|
|
|
|
@@ -154,10 +155,23 @@ set(RE2_HEADERS
|
|
|
|
install(FILES ${RE2_HEADERS}
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/re2)
|
|
-install(TARGETS re2 EXPORT re2Config
|
|
+install(TARGETS re2 EXPORT re2Targets
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
-install(EXPORT re2Config
|
|
+install(EXPORT re2Targets
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/re2 NAMESPACE re2::)
|
|
+
|
|
+configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/re2Config.cmake.in
|
|
+ ${CMAKE_CURRENT_BINARY_DIR}/re2Config.cmake
|
|
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/re2
|
|
+ )
|
|
+write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/re2ConfigVersion.cmake
|
|
+ VERSION ${SONAME}.0.0
|
|
+ COMPATIBILITY SameMajorVersion
|
|
+ )
|
|
+
|
|
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/re2Config.cmake
|
|
+ ${CMAKE_CURRENT_BINARY_DIR}/re2ConfigVersion.cmake
|
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/re2)
|
|
diff --git a/re2Config.cmake.in b/re2Config.cmake.in
|
|
new file mode 100644
|
|
index 0000000..7698107
|
|
--- /dev/null
|
|
+++ b/re2Config.cmake.in
|
|
@@ -0,0 +1,22 @@
|
|
+# Copyright 2022 The RE2 Authors. All Rights Reserved.
|
|
+# Use of this source code is governed by a BSD-style
|
|
+# license that can be found in the LICENSE file.
|
|
+
|
|
+@PACKAGE_INIT@
|
|
+
|
|
+include(CMakeFindDependencyMacro)
|
|
+
|
|
+set_and_check(re2_INCLUDE_DIR ${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_INCLUDEDIR@)
|
|
+
|
|
+if(UNIX)
|
|
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
+ find_dependency(Threads REQUIRED)
|
|
+endif()
|
|
+
|
|
+check_required_components(re2)
|
|
+
|
|
+if(TARGET re2::re2)
|
|
+ return()
|
|
+endif()
|
|
+
|
|
+include(${CMAKE_CURRENT_LIST_DIR}/re2Targets.cmake)
|
|
--
|
|
2.34.1
|
|
|