File: FindDate.cmake

package info (click to toggle)
kodi 2%3A20.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 143,820 kB
  • sloc: cpp: 664,925; xml: 68,398; ansic: 37,223; python: 6,903; sh: 4,209; javascript: 2,325; makefile: 1,754; perl: 969; java: 513; cs: 390; objc: 340
file content (110 lines) | stat: -rw-r--r-- 3,279 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#.rst:
# FindDate
# -------
# Finds the DATE library and builds internal
# DATE if requested
#
# This will define the following variables::
#
# DATE_FOUND - system has DATE
# DATE_INCLUDE_DIRS - the DATE include directory
# DATE_LIBRARIES - the DATE libraries
# DATE_DEFINITIONS - the DATE definitions
#
# and the following imported targets::
#
#   Date::Date   - The Date library

if(ENABLE_INTERNAL_DATE)
  include(cmake/scripts/common/ModuleHelpers.cmake)

  set(MODULE_LC date)

  SETUP_BUILD_VARS()

  set(DATE_VERSION ${${MODULE}_VER})

  # Debug postfix only used for windows
  if(WIN32 OR WINDOWS_STORE)
    set(DATE_DEBUG_POSTFIX "d")
  endif()

  # Propagate CMake definitions

  if(CORE_SYSTEM_NAME STREQUAL darwin_embedded)
    set(EXTRA_ARGS -DIOS=ON)
  elseif(WINDOWS_STORE)
    set(EXTRA_ARGS -DWINRT=ON)
  endif()

  set(CMAKE_ARGS -DCMAKE_CXX_STANDARD=17
                 -DUSE_SYSTEM_TZ_DB=OFF
                 -DMANUAL_TZ_DB=ON
                 -DUSE_TZ_DB_IN_DOT=OFF
                 -DBUILD_SHARED_LIBS=OFF
                 -DBUILD_TZ_LIB=ON
                 ${EXTRA_ARGS})

  # Work around old release

  file(GLOB patches "${CMAKE_SOURCE_DIR}/tools/depends/target/date/*.patch")

  generate_patchcommand("${patches}")

  BUILD_DEP_TARGET()
else()
  if(PKG_CONFIG_FOUND)
    pkg_check_modules(PC_DATE libdate-tz>=3.0.1 QUIET)
  endif()

  find_path(DATE_INCLUDE_DIR date/date.h
                             PATHS ${PC_DATE_INCLUDEDIR})
  find_library(DATE_LIBRARY_RELEASE NAMES date-tz libdate-tz
                                    PATHS ${PC_DATE_LIBDIR})
  find_library(DATE_LIBRARY_DEBUG NAMES date-tzd libdate-tzd
                                    PATHS ${PC_DATE_LIBDIR})
  set(DATE_VERSION ${PC_DATE_VERSION})
endif()

include(SelectLibraryConfigurations)
select_library_configurations(DATE)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Date
                                  REQUIRED_VARS DATE_LIBRARY DATE_INCLUDE_DIR
                                  VERSION_VAR DATE_VERSION)

if(DATE_FOUND)
  set(DATE_INCLUDE_DIRS ${DATE_INCLUDE_DIR})
  set(DATE_LIBRARIES ${DATE_LIBRARY})

  if(ENABLE_INTERNAL_TZDATA)
    set(DATE_DEFINITIONS ${DATE_DEFINITIONS} -DDATE_INTERNAL_TZDATA)
  endif()

  if(DATE_HAS_STRINGVIEW)
    set(DATE_DEFINITIONS ${DATE_DEFINITIONS} -DDATE_HAS_STRINGVIEW)
  endif()

  if(NOT TARGET Date::Date)
    add_library(Date::Date UNKNOWN IMPORTED)
    if(DATE_LIBRARY_RELEASE)
      set_target_properties(Date::Date PROPERTIES
                                           IMPORTED_CONFIGURATIONS RELEASE
                                           IMPORTED_LOCATION "${DATE_LIBRARY_RELEASE}")
    endif()
    if(DATE_LIBRARY_DEBUG)
      set_target_properties(Date::Date PROPERTIES
                                           IMPORTED_CONFIGURATIONS DEBUG
                                           IMPORTED_LOCATION "${DATE_LIBRARY_DEBUG}")
    endif()
    set_target_properties(Date::Date PROPERTIES
                                         INTERFACE_INCLUDE_DIRECTORIES "${DATE_INCLUDE_DIR}")
    if(TARGET date)
      add_dependencies(Date::Date date)
    endif()
  endif()
  set_property(GLOBAL APPEND PROPERTY INTERNAL_DEPS_PROP Date::Date)
endif()

mark_as_advanced(DATE_INCLUDE_DIR DATE_LIBRARY)