mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-09-07 07:12:52 +02:00
75 lines
2.6 KiB
CMake
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)
|