]> git.proxmox.com Git - ceph.git/blame - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/llfio/portfile.cmake
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / llfio / portfile.cmake
CommitLineData
1e59de90
TL
1message(WARNING [=[
2LLFIO depends on Outcome which depends on QuickCppLib which uses the vcpkg versions of gsl-lite and byte-lite, rather than the versions tested by QuickCppLib's, Outcome's and LLFIO's CI. It is not guaranteed to work with other versions, with failures experienced in the past up-to-and-including runtime crashes. See the warning message from QuickCppLib for how you can pin the versions of those dependencies in your manifest file to those with which QuickCppLib was tested. Do not report issues to upstream without first pinning the versions as QuickCppLib was tested against.
3]=])
4
5
6vcpkg_from_github(
7 OUT_SOURCE_PATH SOURCE_PATH
8 REPO ned14/llfio
9 REF 565f27555d13ce2a37346d838f32e03e1972aac1
10 SHA512 386007d03c3923e79bb1b80b1b750ae738bbc22aa5124c606cc5e7818f57a4b819bb920257c9aca39765a4a8b93d2528b4a956c53b96bd8db3b8d4a54a851e41
11 HEAD_REF develop
12)
13
14if(VCPKG_TARGET_IS_WINDOWS)
15 vcpkg_from_github(
16 OUT_SOURCE_PATH NTKEC_SOURCE_PATH
17 REPO ned14/ntkernel-error-category
18 REF bbd44623594142155d49bd3ce8820d3cf9da1e1e
19 SHA512 589d3bc7bca98ca8d05ce9f5cf009dd98b8884bdf3739582f2f6cbf5a324ce95007ea041450ed935baa4a401b4a0242c181fb6d2dcf7ad91587d75f05491f50e
20 HEAD_REF master
21 )
22endif()
23
24vcpkg_check_features(
25 OUT_FEATURE_OPTIONS LLFIO_FEATURE_OPTIONS
26 FEATURES
27 status-code LLFIO_USE_EXPERIMENTAL_SG14_STATUS_CODE
28)
29
30# LLFIO needs a copy of QuickCppLib with which to bootstrap its cmake
31file(COPY "${CURRENT_INSTALLED_DIR}/include/quickcpplib"
32 DESTINATION "${SOURCE_PATH}/quickcpplib/repo/include/"
33)
34file(COPY "${CURRENT_INSTALLED_DIR}/share/ned14-internal-quickcpplib/"
35 DESTINATION "${SOURCE_PATH}/quickcpplib/repo/"
36)
37
38# LLFIO expects ntkernel-error-category to live inside its include directory
39file(REMOVE_RECURSE "${SOURCE_PATH}/include/llfio/ntkernel-error-category")
40if(VCPKG_TARGET_IS_WINDOWS)
41 file(RENAME "${NTKEC_SOURCE_PATH}" "${SOURCE_PATH}/include/llfio/ntkernel-error-category")
42endif()
43
44# Already installed dependencies don't appear on the include path, which LLFIO assumes.
45string(APPEND VCPKG_CXX_FLAGS " \"-I${CURRENT_INSTALLED_DIR}/include\"")
46string(APPEND VCPKG_C_FLAGS " \"-I${CURRENT_INSTALLED_DIR}/include\"")
47
48set(extra_config)
49# cmake does not correctly set CMAKE_SYSTEM_PROCESSOR when targeting ARM on Windows
50if(VCPKG_TARGET_IS_WINDOWS AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64"))
51 list(APPEND extra_config -DLLFIO_ASSUME_CROSS_COMPILING=On)
52endif()
53
54vcpkg_configure_cmake(
55 SOURCE_PATH "${SOURCE_PATH}"
56 PREFER_NINJA
57 OPTIONS
58 -DPROJECT_IS_DEPENDENCY=On
59 -Dquickcpplib_FOUND=1
60 -Doutcome_FOUND=1
61 ${LLFIO_FEATURE_OPTIONS}
62 -DLLFIO_ENABLE_DEPENDENCY_SMOKE_TEST=ON # Leave this always on to test everything compiles
63 -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
64 ${extra_config}
65)
66
67# LLFIO install assumes that the static library is always built
68vcpkg_build_cmake(TARGET _sl)
69if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
70 vcpkg_build_cmake(TARGET _dl)
71endif()
72
73if("run-tests" IN_LIST FEATURES)
74 vcpkg_build_cmake(TARGET test)
75endif()
76
77vcpkg_install_cmake()
78
79vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/llfio)
80
81file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")
82if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
83 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
84endif()
85
86if("status-code" IN_LIST FEATURES)
87 file(INSTALL "${CURRENT_PORT_DIR}/usage-status-code-${VCPKG_LIBRARY_LINKAGE}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
88else()
89 file(INSTALL "${CURRENT_PORT_DIR}/usage-error-code-${VCPKG_LIBRARY_LINKAGE}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
90endif()
91file(INSTALL "${SOURCE_PATH}/Licence.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)