aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-04-10 05:46:46 -0700
committerRobert Schumacher <roschuma@microsoft.com>2018-04-12 23:32:06 -0700
commit600f7fdf30434f7c1e1e15acf3df3271d6b91387 (patch)
treea4a27b1d0183e8dcec8852b60ee493d68cfc3078
parentdc207a2c891fe6deb2710ccde0abf48078f64fcd (diff)
downloadvcpkg-600f7fdf30434f7c1e1e15acf3df3271d6b91387.tar.gz
vcpkg-600f7fdf30434f7c1e1e15acf3df3271d6b91387.zip
[date] Fix Linux&OSX, add unofficial targets
-rw-r--r--ports/date/CMakeLists.txt22
-rw-r--r--ports/date/CONTROL4
-rw-r--r--ports/date/portfile.cmake19
3 files changed, 38 insertions, 7 deletions
diff --git a/ports/date/CMakeLists.txt b/ports/date/CMakeLists.txt
index 4c38e4a87..292c1758a 100644
--- a/ports/date/CMakeLists.txt
+++ b/ports/date/CMakeLists.txt
@@ -1,28 +1,44 @@
cmake_minimum_required(VERSION 3.5.1)
project(tz CXX)
+set(CMAKE_CXX_STANDARD 11)
if(MSVC)
add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
endif()
-add_definitions(-DNOMINMAX)
+option(HAS_REMOTE_API "" 0)
+add_definitions(-DNOMINMAX -DHAS_REMOTE_API=${HAS_REMOTE_API})
-include_directories("./include")
+add_library(date INTERFACE)
+target_include_directories(date INTERFACE $<INSTALL_INTERFACE:include>)
add_library(tz src/tz.cpp)
+target_include_directories(tz PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
+
+if(HAS_REMOTE_API)
+ find_package(CURL REQUIRED)
+ target_link_libraries(tz PUBLIC $<BUILD_INTERFACE:${CURL_LIBRARIES}>)
+ target_include_directories(tz PUBLIC $<BUILD_INTERFACE:${CURL_INCLUDE_DIRS}>)
+endif()
if(BUILD_SHARED_LIBS)
target_compile_definitions(tz PRIVATE -DDATE_BUILD_DLL)
endif()
install(
- TARGETS tz
+ TARGETS tz date
+ EXPORT tz
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-date-config.cmake" "include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-date-targets.cmake)\n")
+
+install(EXPORT tz FILE unofficial-date-targets.cmake NAMESPACE unofficial::date:: DESTINATION share/unofficial-date)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-date-config.cmake DESTINATION share/unofficial-date)
+
if(NOT DISABLE_INSTALL_HEADERS)
install(FILES include/date/date.h include/date/tz.h include/date/julian.h include/date/iso_week.h include/date/islamic.h DESTINATION include/date)
endif()
diff --git a/ports/date/CONTROL b/ports/date/CONTROL
index 8c1797072..bf3095ac6 100644
--- a/ports/date/CONTROL
+++ b/ports/date/CONTROL
@@ -1,3 +1,7 @@
Source: date
Version: 2.4
Description: A date and time library based on the C++11/14/17 <chrono> header
+
+Feature: remote-api
+Description: support automatic download of tz data
+Build-Depends: curl
diff --git a/ports/date/portfile.cmake b/ports/date/portfile.cmake
index c60a7bcb0..3b36a19fc 100644
--- a/ports/date/portfile.cmake
+++ b/ports/date/portfile.cmake
@@ -1,9 +1,11 @@
include(vcpkg_common_functions)
-message(WARNING
- "You will need to also install http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml into your install location"
- "See https://howardhinnant.github.io/date/tz.html"
-)
+if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(WARNING
+ "You will need to also install http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml into your install location.\n"
+ "See https://howardhinnant.github.io/date/tz.html"
+ )
+endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
@@ -20,18 +22,27 @@ vcpkg_apply_patches(
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+set(HAS_REMOTE_API 0)
+if("remote-api" IN_LIST FEATURES)
+ set(HAS_REMOTE_API 1)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ OPTIONS -DHAS_REMOTE_API=${HAS_REMOTE_API}
OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-date TARGET_PATH share/unofficial-date)
+
vcpkg_copy_pdbs()
set(HEADER "${CURRENT_PACKAGES_DIR}/include/date/tz.h")
file(READ "${HEADER}" _contents)
+string(REPLACE "#define TZ_H" "#define TZ_H\n#undef HAS_REMOTE_API\n#define HAS_REMOTE_API ${HAS_REMOTE_API}" _contents "${_contents}")
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
string(REPLACE "ifdef DATE_BUILD_DLL" "if 1" _contents "${_contents}")
endif()