community/libzip: add cmake workaround

Build both static and dynamic libraries in one go
This commit is contained in:
prspkt 2019-03-14 02:10:35 +02:00
parent aa1fbae68b
commit fef1962ce8
No known key found for this signature in database
GPG Key ID: 24BA3D41BDA6E870
2 changed files with 38 additions and 17 deletions

View File

@ -11,7 +11,9 @@ license="BSD-3-Clause"
depends_dev="zlib-dev"
makedepends="$depends_dev cmake openssl-dev perl"
subpackages="$pkgname-dev $pkgname-doc $pkgname-tools"
source="https://www.nih.at/libzip/$pkgname-$pkgver.tar.xz"
source="https://www.nih.at/libzip/$pkgname-$pkgver.tar.xz
build-static-and-dynamic.patch
"
builddir="$srcdir/$pkgname-$pkgver"
# secfixes:
@ -23,24 +25,10 @@ build() {
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=False \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DCMAKE_C_FLAGS="$CFLAGS"
make
mkdir -p "$pkgdir"/tmp
cp "$builddir"/lib/libzip.a "$pkgdir"/tmp
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DCMAKE_C_FLAGS="$CFLAGS"
make
mv "$pkgdir"/tmp/libzip.a "$builddir"/lib/libzip.a
rm -rf "$pkgdir"/tmp
}
check() {
@ -51,7 +39,6 @@ check() {
package() {
cd "$builddir"
make DESTDIR="$pkgdir" -j1 install
cp "$builddir"/lib/libzip.a "$pkgdir"/usr/lib
}
tools() {
@ -60,4 +47,5 @@ tools() {
mv "$pkgdir"/usr/bin "$subpkgdir"/usr
}
sha512sums="1e6d48ddbac4d270f70b314f6ada3c93a3196a8cc3b8d17c6cf5ea8409ff29f36ac351206675f9d81351fcf633b0c15d7b0b5530c30c4140e4fe55e64c602643 libzip-1.5.2.tar.xz"
sha512sums="1e6d48ddbac4d270f70b314f6ada3c93a3196a8cc3b8d17c6cf5ea8409ff29f36ac351206675f9d81351fcf633b0c15d7b0b5530c30c4140e4fe55e64c602643 libzip-1.5.2.tar.xz
09b31e42e732b3d0e7705c90fa0b3afa5a2d2eaa8dfde4ab24d728158d805dc4e8c803f184b6eb69711f4975a220528578a4d78d88713b4ce405d3892be11fa9 build-static-and-dynamic.patch"

View File

@ -0,0 +1,33 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -59,7 +59,7 @@
SET(WINDOWS_CRYPTO_FOUND FALSE)
ENDIF()
-OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON)
+SET(BUILD_SHARED_LIBS ON)
OPTION(SHARED_LIB_VERSIONNING "Add SO version in .so build" ON)
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -215,7 +215,9 @@
)
ENDIF()
-ADD_LIBRARY(zip ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPTIONAL_FILES} ${LIBZIP_OPSYS_FILES})
+ADD_LIBRARY(zip SHARED ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPTIONAL_FILES} ${LIBZIP_OPSYS_FILES})
+ADD_LIBRARY(zip_static STATIC ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPTIONAL_FILES} ${LIBZIP_OPSYS_FILES})
+SET_TARGET_PROPERTIES(zip_static PROPERTIES OUTPUT_NAME zip CLEAN_DIRECT_OUTPUT 1)
IF(SHARED_LIB_VERSIONNING)
SET_TARGET_PROPERTIES(zip PROPERTIES VERSION 5.0 SOVERSION 5)
@@ -223,7 +225,7 @@
TARGET_LINK_LIBRARIES(zip ${ZLIB_LIBRARY} ${OPTIONAL_LIBRARY})
-INSTALL(TARGETS zip
+INSTALL(TARGETS zip zip_static
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})