snappy: Implement cmake shared/static config (#24414)
This commit is contained in:
parent
40ace1b9a7
commit
214f4a2a9f
@ -5,7 +5,7 @@ _realname=snappy
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=1.2.2
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
pkgdesc="A fast compressor/decompressor library (mingw-w64)"
|
||||
arch=('any')
|
||||
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
|
||||
@ -23,11 +23,13 @@ checkdepends=("${MINGW_PACKAGE_PREFIX}-zlib"
|
||||
source=("https://github.com/google/snappy/archive/${pkgver}/${_realname}-${pkgver}.tar.gz"
|
||||
"0001-cmake-add-pkgconfig.patch"
|
||||
"0002-remove-Werror-flag.patch"
|
||||
"snappy.pc.in")
|
||||
"snappy.pc.in"
|
||||
"cmake-dual-libs.patch")
|
||||
sha256sums=('90f74bc1fbf78a6c56b3c4a082a05103b3a56bb17bca1a27e052ea11723292dc'
|
||||
'2a204d7d35509ffc290d80c641fcb7e8488c67ca550aa1695493cff12c53156b'
|
||||
'a687b1a6e07e508bf43b0cce8059c1ddba74195b4b7b822643a0d06d3083c46d'
|
||||
'134f06ca0584a1026538d0fb972fc141c008390ecae1806184b721eca1abbc75')
|
||||
'134f06ca0584a1026538d0fb972fc141c008390ecae1806184b721eca1abbc75'
|
||||
'37caf9737f58cdce95cdeb2c2c69a4292211750efe366a5fa4b3b61c5cb6e035')
|
||||
|
||||
prepare() {
|
||||
cd "${_realname}-${pkgver}"
|
||||
@ -38,6 +40,7 @@ prepare() {
|
||||
patch -p1 -i "${srcdir}/0001-cmake-add-pkgconfig.patch"
|
||||
|
||||
patch -p1 -i "${srcdir}/0002-remove-Werror-flag.patch"
|
||||
patch -p1 -i "${srcdir}/cmake-dual-libs.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
|
||||
91
mingw-w64-snappy/cmake-dual-libs.patch
Normal file
91
mingw-w64-snappy/cmake-dual-libs.patch
Normal file
@ -0,0 +1,91 @@
|
||||
diff -Naur snappy-1.2.2-orig/CMakeLists.txt snappy-1.2.2/CMakeLists.txt
|
||||
--- snappy-1.2.2-orig/CMakeLists.txt 2025-05-25 21:38:20.499819700 +0300
|
||||
+++ snappy-1.2.2/CMakeLists.txt 2025-05-25 21:44:48.317029200 +0300
|
||||
@@ -251,6 +251,11 @@
|
||||
"snappy-stubs-public.h.in"
|
||||
"${PROJECT_BINARY_DIR}/snappy-stubs-public.h")
|
||||
|
||||
+if (BUILD_SHARED_LIBS)
|
||||
+ set (target_suffix "shared")
|
||||
+else ()
|
||||
+ set (target_suffix "static")
|
||||
+endif ()
|
||||
add_library(snappy "")
|
||||
target_sources(snappy
|
||||
PRIVATE
|
||||
@@ -432,6 +437,7 @@
|
||||
EXPORT SnappyTargets
|
||||
NAMESPACE Snappy::
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
||||
+ FILE ${PROJECT_NAME}-${target_suffix}-targets.cmake
|
||||
)
|
||||
install(
|
||||
FILES
|
||||
diff -Naur snappy-1.2.2-orig/cmake/SnappyConfig.cmake.in snappy-1.2.2/cmake/SnappyConfig.cmake.in
|
||||
--- snappy-1.2.2-orig/cmake/SnappyConfig.cmake.in 2025-03-26 18:19:22.000000000 +0300
|
||||
+++ snappy-1.2.2/cmake/SnappyConfig.cmake.in 2025-05-25 21:42:10.246765400 +0300
|
||||
@@ -28,6 +28,61 @@
|
||||
|
||||
@PACKAGE_INIT@
|
||||
|
||||
-include("${CMAKE_CURRENT_LIST_DIR}/SnappyTargets.cmake")
|
||||
-
|
||||
+set(@PROJECT_NAME@_known_comps static shared)
|
||||
+set(@PROJECT_NAME@_comp_static NO)
|
||||
+set(@PROJECT_NAME@_comp_shared NO)
|
||||
+foreach (@PROJECT_NAME@_comp IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
|
||||
+ if (@PROJECT_NAME@_comp IN_LIST @PROJECT_NAME@_known_comps)
|
||||
+ set(@PROJECT_NAME@_comp_${@PROJECT_NAME@_comp} YES)
|
||||
+ else ()
|
||||
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
|
||||
+ "@PROJECT_NAME@ does not recognize component `${@PROJECT_NAME@_comp}`.")
|
||||
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
||||
+ return()
|
||||
+ endif ()
|
||||
+endforeach ()
|
||||
+
|
||||
+if (@PROJECT_NAME@_comp_static AND @PROJECT_NAME@_comp_shared)
|
||||
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
|
||||
+ "@PROJECT_NAME@ `static` and `shared` components are mutually exclusive.")
|
||||
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
||||
+ return()
|
||||
+endif ()
|
||||
+
|
||||
+set(@PROJECT_NAME@_static_targets "${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-static-targets.cmake")
|
||||
+set(@PROJECT_NAME@_shared_targets "${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-shared-targets.cmake")
|
||||
+
|
||||
+macro(@PROJECT_NAME@_load_targets type)
|
||||
+ if (NOT EXISTS "${@PROJECT_NAME@_${type}_targets}")
|
||||
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
|
||||
+ "@PROJECT_NAME@ `${type}` libraries were requested but not found.")
|
||||
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
||||
+ return()
|
||||
+ endif ()
|
||||
+ include("${@PROJECT_NAME@_${type}_targets}")
|
||||
+endmacro()
|
||||
+
|
||||
+if (@PROJECT_NAME@_comp_static)
|
||||
+ @PROJECT_NAME@_load_targets(static)
|
||||
+elseif (@PROJECT_NAME@_comp_shared)
|
||||
+ @PROJECT_NAME@_load_targets(shared)
|
||||
+elseif (DEFINED @PROJECT_NAME@_SHARED_LIBS AND @PROJECT_NAME@_SHARED_LIBS)
|
||||
+ @PROJECT_NAME@_load_targets(shared)
|
||||
+elseif (DEFINED @PROJECT_NAME@_SHARED_LIBS AND NOT @PROJECT_NAME@_SHARED_LIBS)
|
||||
+ @PROJECT_NAME@_load_targets(static)
|
||||
+elseif (BUILD_SHARED_LIBS)
|
||||
+ if (EXISTS "${@PROJECT_NAME@_shared_targets}")
|
||||
+ @PROJECT_NAME@_load_targets(shared)
|
||||
+ else ()
|
||||
+ @PROJECT_NAME@_load_targets(static)
|
||||
+ endif ()
|
||||
+else ()
|
||||
+ if (EXISTS "${@PROJECT_NAME@_static_targets}")
|
||||
+ @PROJECT_NAME@_load_targets(static)
|
||||
+ else ()
|
||||
+ @PROJECT_NAME@_load_targets(shared)
|
||||
+ endif ()
|
||||
+endif ()
|
||||
+
|
||||
+
|
||||
check_required_components(Snappy)
|
||||
\ No newline at end of file
|
||||
Loading…
x
Reference in New Issue
Block a user