diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/open62541/portfile.cmake | |
Diffstat (limited to 'vcpkg/ports/open62541/portfile.cmake')
| -rw-r--r-- | vcpkg/ports/open62541/portfile.cmake | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/vcpkg/ports/open62541/portfile.cmake b/vcpkg/ports/open62541/portfile.cmake new file mode 100644 index 0000000..8109127 --- /dev/null +++ b/vcpkg/ports/open62541/portfile.cmake @@ -0,0 +1,73 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO open62541/open62541 + REF v${VERSION} + SHA512 521e29921d7aed6ee9766a1781c28071447ec0046f02a23376798ac35c18feba37cc0f4c217df41abb1c4470b7bf7aae26cf88da0ec8136f64a969be9ff56426 + HEAD_REF master + PATCHES + android.patch +) + +# 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_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + 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() + +if("multithreading" IN_LIST FEATURES) + set(OPEN62541_MULTITHREADING_OPTIONS -DUA_MULTITHREADING=100) +endif() + +vcpkg_find_acquire_program(PYTHON3) +get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) +vcpkg_add_to_path("${PYTHON3_DIR}") + +if(VCPKG_TARGET_IS_ANDROID) + list(APPEND FEATURE_OPTIONS "-DUA_ARCHITECTURE=posix") +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + ${OPEN62541_ENCRYPTION_OPTIONS} + ${OPEN62541_MULTITHREADING_OPTIONS} + "-DOPEN62541_VERSION=v${VERSION}" + -DUA_ENABLE_DEBUG_SANITIZER=OFF + -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") |