vcpkg/ports/open62541/portfile.cmake
Stéén 9c58903f65
[open62541] Do not enable LTO by default. (#41947)
Co-authored-by: Robin Oger <roger@qcify.com>
2024-11-05 00:55:52 -08:00

65 lines
2.3 KiB
CMake

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO open62541/open62541
REF 43afb0471a81c71dfb1d1e33589308762d5a6d18
SHA512 4c602160baa7ffa464a48f53edcaaaa95bac6933ed40d5113915a04941c0006d0f65267f5ec2462decb0307db5995b8facd3c1d7c4e0e3c3cb9b6f8adb18eb6f
HEAD_REF master
)
# disable docs
vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "add_subdirectory(doc)" "")
vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "include(linting_target)" "")
# do not enable LTO by default
vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)" "")
vcpkg_replace_string("${SOURCE_PATH}/tools/cmake/open62541Config.cmake.in" "find_dependency(PythonInterp REQUIRED)" "")
vcpkg_check_features(
OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
amalgamation UA_ENABLE_AMALGAMATION
diagnostics UA_ENABLE_DIAGNOSTICS
discovery UA_ENABLE_DISCOVERY
historizing UA_ENABLE_HISTORIZING
methodcalls UA_ENABLE_METHODCALLS
subscriptions UA_ENABLE_SUBSCRIPTIONS
subscriptions-events UA_ENABLE_SUBSCRIPTIONS_EVENTS
)
if("openssl" IN_LIST FEATURES)
set(OPEN62541_ENCRYPTION_OPTIONS -DUA_ENABLE_ENCRYPTION=OPENSSL)
if("mbedtls" IN_LIST FEATURES)
message(WARNING "Only one encryption method can be used. When both [openssl] and [mbedtls] "
"are on, openssl is used. To use [mbedtls], don't enable [openssl]. To suppress this "
"message, don't enable [mbedtls]")
endif()
elseif("mbedtls" IN_LIST FEATURES)
set(OPEN62541_ENCRYPTION_OPTIONS -DUA_ENABLE_ENCRYPTION=MBEDTLS)
endif()
vcpkg_find_acquire_program(PYTHON3)
get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY)
vcpkg_add_to_path("${PYTHON3_DIR}")
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
${FEATURE_OPTIONS}
${OPEN62541_ENCRYPTION_OPTIONS}
"-DOPEN62541_VERSION=v${VERSION}"
-DUA_MSVC_FORCE_STATIC_CRT=OFF
-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/open62541")
vcpkg_copy_pdbs()
vcpkg_fixup_pkgconfig()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/open62541/tools")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")