[packages/date] new
atler
atler at pld-linux.org
Tue Feb 2 20:05:04 CET 2021
commit 13ef38fca8c1cdbdb5f5c0c49f8f217b572c6000
Author: Jan Palus <atler at pld-linux.org>
Date: Tue Feb 2 20:02:38 2021 +0100
new
- upstream patches to provide sane soname / cmake config
date-cmake.patch | 200 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
date.spec | 61 +++++++++++++++++
2 files changed, 261 insertions(+)
---
diff --git a/date.spec b/date.spec
new file mode 100644
index 0000000..efcc12e
--- /dev/null
+++ b/date.spec
@@ -0,0 +1,61 @@
+Summary: A date and time library based on the C++11/14/17 <chrono> header
+Name: date
+Version: 3.0.0
+Release: 1
+License: MIT
+Group: Development/Libraries
+Source0: https://github.com/HowardHinnant/date/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: c76681532f87644c59c19938961bc85c
+Patch0: %{name}-cmake.patch
+URL: https://howardhinnant.github.io/date/date.html
+BuildRequires: cmake >= 3.7
+BuildRequires: libstdc++-devel >= 6:5
+BuildRequires: rpmbuild(macros) >= 1.605
+Requires: tzdata
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+A date and time library based on the C++11/14/17 <chrono> header.
+
+%package devel
+Summary: Header files for date library
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Header files for date library.
+
+%prep
+%setup -q
+%patch0 -p1
+
+%build
+install -d build
+cd build
+%cmake .. \
+ -DUSE_SYSTEM_TZ_DB:BOOL=ON \
+ -DBUILD_TZ_LIB:BOOL=ON
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} -C build install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc README.md
+%attr(755,root,root) %{_libdir}/libdate-tz.so.*.*.*
+%ghost %{_libdir}/libdate-tz.so.3
+
+%files devel
+%defattr(644,root,root,755)
+%dir %{_includedir}/date
+%{_includedir}/date/date.h
+%{_includedir}/date/tz.h
+%{_libdir}/cmake/date
+%{_libdir}/libdate-tz.so
diff --git a/date-cmake.patch b/date-cmake.patch
new file mode 100644
index 0000000..6fe4de6
--- /dev/null
+++ b/date-cmake.patch
@@ -0,0 +1,200 @@
+From a6243ce56f6a3781fc2ef18054a718f196591aed Mon Sep 17 00:00:00 2001
+From: Michael Ellery <mellery451 at gmail.com>
+Date: Mon, 22 Jun 2020 08:48:09 -0700
+Subject: [PATCH] set cmake proj ver to 3.0: (#584)
+
+FIXES: #583
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ad749004..76b074ce 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,7 +7,7 @@
+ include( FetchContent )
+ FetchContent_Declare( date_src
+ GIT_REPOSITORY https://github.com/HowardHinnant/date.git
+- GIT_TAG 2.4.2 # adjust tag/branch/commit as needed
++ GIT_TAG v3.0.0 # adjust tag/branch/commit as needed
+ )
+ FetchContent_MakeAvailable(date_src)
+ ...
+@@ -17,7 +17,7 @@
+
+ cmake_minimum_required( VERSION 3.7 )
+
+-project( date VERSION 2.4.1 )
++project( date VERSION 3.0.0 )
+
+ include( GNUInstallDirs )
+
+From 9537addfc4f4b237d50a3502e07fcc492f98d8cc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Nico=20Schl=C3=B6mer?= <nico.schloemer at gmail.com>
+Date: Thu, 23 Jul 2020 01:03:42 +0200
+Subject: [PATCH] fix ONLY_C_LOCALE export from cmake (#590)
+
+* fix ONLY_C_LOCALE export from cmake
+
+* add some comments
+
+* remove all generator expressions for target output
+
+* cmake: fewer variables, make it easier to read
+---
+ CMakeLists.txt | 60 ++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 44 insertions(+), 16 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 76b074ce..ebe2bcef 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -76,10 +76,25 @@ if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.15)
+ # public headers will get installed:
+ set_target_properties( date PROPERTIES PUBLIC_HEADER include/date/date.h )
+ endif ()
+-target_compile_definitions( date INTERFACE
+- #To workaround libstdc++ issue https://github.com/HowardHinnant/date/issues/388
+- ONLY_C_LOCALE=$<IF:$<BOOL:${COMPILE_WITH_C_LOCALE}>,1,0>
+- $<$<BOOL:${DISABLE_STRING_VIEW}>:HAS_STRING_VIEW=0> )
++
++# These used to be set with generator expressions,
++#
++# ONLY_C_LOCALE=$<IF:$<BOOL:${COMPILE_WITH_C_LOCALE}>,1,0>
++#
++# which expand in the output target file to, e.g.
++#
++# ONLY_C_LOCALE=$<IF:$<BOOL:FALSE>,1,0>
++#
++# This string is then (somtimes?) not correctly interpreted.
++if ( COMPILE_WITH_C_LOCALE )
++ # To workaround libstdc++ issue https://github.com/HowardHinnant/date/issues/388
++ target_compile_definitions( date INTERFACE ONLY_C_LOCALE=1 )
++else()
++ target_compile_definitions( date INTERFACE ONLY_C_LOCALE=0 )
++endif()
++if ( DISABLE_STRING_VIEW )
++ target_compile_definitions( date INTERFACE HAS_STRING_VIEW=0 )
++endif()
+
+ #[===================================================================[
+ tz (compiled) library
+@@ -89,27 +104,40 @@ if( BUILD_TZ_LIB )
+ target_sources( date-tz
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>$<INSTALL_INTERFACE:include>/date/tz.h
+- $<$<BOOL:${IOS}>:$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>$<INSTALL_INTERFACE:include>/date/ios.h>
+ PRIVATE
+ include/date/tz_private.h
+- $<$<BOOL:${IOS}>:src/ios.mm>
+ src/tz.cpp )
++ if ( IOS )
++ target_sources( date-tz
++ PUBLIC
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>$<INSTALL_INTERFACE:include>/date/ios.h
++ PRIVATE
++ src/ios.mm )
++ endif()
+ add_library( date::tz ALIAS date-tz )
+ target_link_libraries( date-tz PUBLIC date )
+ target_include_directories( date-tz PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<INSTALL_INTERFACE:include> )
+- target_compile_definitions( date-tz
+- PRIVATE
+- AUTO_DOWNLOAD=$<IF:$<OR:$<BOOL:${USE_SYSTEM_TZ_DB}>,$<BOOL:${MANUAL_TZ_DB}>>,0,1>
+- HAS_REMOTE_API=$<IF:$<OR:$<BOOL:${USE_SYSTEM_TZ_DB}>,$<BOOL:${MANUAL_TZ_DB}>>,0,1>
+- $<$<AND:$<BOOL:${WIN32}>,$<BOOL:${BUILD_SHARED_LIBS}>>:DATE_BUILD_DLL=1>
+- $<$<BOOL:${USE_TZ_DB_IN_DOT}>:INSTALL=.>
+- PUBLIC
+- USE_OS_TZDB=$<IF:$<AND:$<BOOL:${USE_SYSTEM_TZ_DB}>,$<NOT:$<BOOL:${WIN32}>>,$<NOT:$<BOOL:${MANUAL_TZ_DB}>>>,1,0>
+- INTERFACE
+- $<$<AND:$<BOOL:${WIN32}>,$<BOOL:${BUILD_SHARED_LIBS}>>:DATE_USE_DLL=1> )
++
++ if ( USE_SYSTEM_TZ_DB OR MANUAL_TZ_DB )
++ target_compile_definitions( date-tz PRIVATE AUTO_DOWNLOAD=0 HAS_REMOTE_API=0 )
++ else()
++ target_compile_definitions( date-tz PRIVATE AUTO_DOWNLOAD=1 HAS_REMOTE_API=1 )
++ endif()
++
++ if ( USE_SYSTEM_TZ_DB AND NOT WIN32 AND NOT MANUAL_TZ_DB )
++ target_compile_definitions( date-tz PRIVATE INSTALL=. PUBLIC USE_OS_TZDB=1 )
++ else()
++ target_compile_definitions( date-tz PUBLIC USE_OS_TZDB=0 )
++ endif()
++
++ if ( WIN32 AND BUILD_SHARED_LIBS )
++ target_compile_definitions( date-tz PUBLIC DATE_BUILD_DLL=1 )
++ endif()
++
+ set(TZ_HEADERS include/date/tz.h)
++
+ if( IOS )
+ list(APPEND TZ_HEADERS include/date/ios.h)
+ endif( )
+From 313189b0a8767f9964704cfc87fe5956e12abc24 Mon Sep 17 00:00:00 2001
+From: Michael Ellery <mellery451 at gmail.com>
+Date: Tue, 25 Aug 2020 13:57:00 -0700
+Subject: [PATCH] Correct lingering references to bare "tz" libname: (#600)
+
+Fixes: #599
+---
+ CMakeLists.txt | 7 ++++---
+ cmake/dateConfig.cmake | 4 ++--
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ebe2bcef..d0baf600 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,6 +18,7 @@
+ cmake_minimum_required( VERSION 3.7 )
+
+ project( date VERSION 3.0.0 )
++set(ABI_VERSION 3) # used as SOVERSION, increment when ABI changes
+
+ include( GNUInstallDirs )
+
+@@ -114,7 +115,7 @@ if( BUILD_TZ_LIB )
+ PRIVATE
+ src/ios.mm )
+ endif()
+- add_library( date::tz ALIAS date-tz )
++ add_library( date::date-tz ALIAS date-tz )
+ target_link_libraries( date-tz PUBLIC date )
+ target_include_directories( date-tz PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -145,7 +146,7 @@ if( BUILD_TZ_LIB )
+ POSITION_INDEPENDENT_CODE ON
+ PUBLIC_HEADER "${TZ_HEADERS}"
+ VERSION "${PROJECT_VERSION}"
+- SOVERSION "${PROJECT_VERSION}" )
++ SOVERSION "${ABI_VERSION}" )
+ if( NOT MSVC )
+ find_package( Threads )
+ target_link_libraries( date-tz PUBLIC Threads::Threads )
+@@ -250,7 +251,7 @@ if( ENABLE_DATE_TESTING )
+ ${CMAKE_CXX_COMPILER}
+ -std=c++14
+ -L${CMAKE_BINARY_DIR}/
+- -ltz
++ -ldate-tz
+ -I${PROJECT_SOURCE_DIR}/include
+ -I${PROJECT_SOURCE_DIR}/include/date
+ -o ${BIN_NAME}
+diff --git a/cmake/dateConfig.cmake b/cmake/dateConfig.cmake
+index 20f86e8d..2198ad1a 100644
+--- a/cmake/dateConfig.cmake
++++ b/cmake/dateConfig.cmake
+@@ -1,8 +1,8 @@
+ include( CMakeFindDependencyMacro )
+ include( "${CMAKE_CURRENT_LIST_DIR}/dateTargets.cmake" )
+-if( NOT MSVC AND TARGET date::tz )
++if( NOT MSVC AND TARGET date::date-tz )
+ find_dependency( Threads REQUIRED)
+- get_target_property( _tzill date::tz INTERFACE_LINK_LIBRARIES )
++ get_target_property( _tzill date::date-tz INTERFACE_LINK_LIBRARIES )
+ if( _tzill AND "${_tzill}" MATCHES "libcurl" )
+ find_dependency( CURL )
+ endif( )
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/date.git/commitdiff/13ef38fca8c1cdbdb5f5c0c49f8f217b572c6000
More information about the pld-cvs-commit
mailing list