ZeroTierOne/ext/opentelemetry-cpp-1.21.0/tools/ports/opentelemetry/portfile.cmake
2025-07-11 10:37:21 -07:00

75 lines
2.6 KiB
CMake

include(vcpkg_common_functions)
message("CURRENT_PACKAGES_DIR = ${CURRENT_PACKAGES_DIR}")
message("CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}")
message("CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")
message("CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}")
message("VCPKG_TARGET_TRIPLET = ${VCPKG_TARGET_TRIPLET}")
message("VCPKG_CMAKE_SYSTEM_NAME = ${VCPKG_CMAKE_SYSTEM_NAME}")
message("VCPKG_LIBRARY_LINKAGE = ${VCPKG_LIBRARY_LINKAGE}")
vcpkg_check_features(
OUT_FEATURE_OPTIONS FEATURE_OPTIONS
stdlib WITH_STDLIB
)
# TODO: if building dynamic, use portable ABI. if building static, use STDLIB
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
if (NOT DEFINED WIN32)
execute_process(COMMAND "${CMAKE_CURRENT_LIST_DIR}/get_repo_name.sh" OUTPUT_VARIABLE REPO_NAME ERROR_QUIET)
message("REPO_NAME=${REPO_NAME}")
endif()
if (DEFINED REPO_NAME)
# Use local snapshot since we already cloned the code
get_filename_component(SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
message("Using local source snapshot from ${SOURCE_PATH}")
else()
# Fetch from GitHub master
message("Fetching source code from GitHub...")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO open-telemetry/opentelemetry-cpp
HEAD_REF master
)
endif()
# TODO: it will be slightly cleaner to perform pure CMake or Ninja build, by describing all possible variable options
# as separate triplets. Since we have a fairly non-trivial build logic in build.sh script - we use it as-is for now.
# build.sh itself should check if we are building under vcpkg and avoid installing deps that are coming from vcpkg.
if (UNIX)
set(ENV{USE_VCPKG} 1)
set(ENV{NOROOT} 1)
# Custom options could be passed to COMMAND, e.g.
# vcpkg_execute_build_process(
# COMMAND ${SOURCE_PATH}/tools/build.sh nostd-vcpkg -DBUILD_TESTING=OFF
# ...
#
vcpkg_execute_build_process(
COMMAND ${SOURCE_PATH}/tools/build.sh nostd-vcpkg ${FEATURE_OPTIONS}
WORKING_DIRECTORY ${SOURCE_PATH}/
LOGNAME build
)
vcpkg_execute_build_process(
COMMAND ${SOURCE_PATH}/tools/install.sh ${CURRENT_PACKAGES_DIR}
WORKING_DIRECTORY ${SOURCE_PATH}/
LOGNAME install
)
else()
# TODO: verify Windows build
vcpkg_execute_build_process(
COMMAND ${SOURCE_PATH}/tools/build.cmd
WORKING_DIRECTORY ${SOURCE_PATH}/
LOGNAME build
# TODO: add Windows headers installation step
)
endif()
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)