mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 10:21:07 +08:00
[date] Fix Linux&OSX, add unofficial targets
This commit is contained in:
parent
dc207a2c89
commit
600f7fdf30
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user