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/opendnp3 | |
Diffstat (limited to 'vcpkg/ports/opendnp3')
| -rw-r--r-- | vcpkg/ports/opendnp3/deps/asio.cmake | 1 | ||||
| -rw-r--r-- | vcpkg/ports/opendnp3/opendnp3-config.cmake.in | 22 | ||||
| -rw-r--r-- | vcpkg/ports/opendnp3/portfile.cmake | 65 | ||||
| -rw-r--r-- | vcpkg/ports/opendnp3/vcpkg.json | 27 |
4 files changed, 115 insertions, 0 deletions
diff --git a/vcpkg/ports/opendnp3/deps/asio.cmake b/vcpkg/ports/opendnp3/deps/asio.cmake new file mode 100644 index 0000000..7645e46 --- /dev/null +++ b/vcpkg/ports/opendnp3/deps/asio.cmake @@ -0,0 +1 @@ +find_package(asio CONFIG REQUIRED) diff --git a/vcpkg/ports/opendnp3/opendnp3-config.cmake.in b/vcpkg/ports/opendnp3/opendnp3-config.cmake.in new file mode 100644 index 0000000..79b2ef8 --- /dev/null +++ b/vcpkg/ports/opendnp3/opendnp3-config.cmake.in @@ -0,0 +1,22 @@ +# Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set(@PROJECT_NAME@_VERSION @PROJECT_VERSION@)
+
+@PACKAGE_INIT@
+
+include(CMakeFindDependencyMacro)
+@FIND_DEPENDS@
+
+include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake)
\ No newline at end of file diff --git a/vcpkg/ports/opendnp3/portfile.cmake b/vcpkg/ports/opendnp3/portfile.cmake new file mode 100644 index 0000000..d0b5b97 --- /dev/null +++ b/vcpkg/ports/opendnp3/portfile.cmake @@ -0,0 +1,65 @@ +if (VCPKG_TARGET_IS_WINDOWS) + vcpkg_check_linkage(ONLY_STATIC_LIBRARY) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO dnp3/opendnp3 + REF 3.1.1 + SHA512 2d7b26753fa03596ab73944236e5f1d82656f38248cc23fd00f7a2cdac27f481e5fe51e68b5896b6740db1a6d9560f0262e473648e001601125f4af8b4a652c2 +) + +file(READ "${SOURCE_PATH}/deps/ser4cpp.cmake" ser4cpp_cmake) +if(ser4cpp_cmake MATCHES "https://github\\.com/automatak/ser4cpp/archive/([0-9a-f]*)\\.zip") + vcpkg_from_github( + OUT_SOURCE_PATH ser4cpp_src + REPO automatak/ser4cpp + REF "${CMAKE_MATCH_1}" + SHA512 cd8d634c0e9fadda357bdd832c382189461f4707ced4834604668df0aa4e396333cce8d676d4f98ba1b414664228518e9a24c6456204b9d96a5f2df078bada2c + ) +else() + message(FATAL_ERROR "Unable to determine version of ser4cpp") +endif() + +file(READ "${SOURCE_PATH}/deps/exe4cpp.cmake" exe4cpp_cmake) +if(exe4cpp_cmake MATCHES "https://github\\.com/automatak/exe4cpp/archive/([0-9a-f]*)\\.zip") + vcpkg_from_github( + OUT_SOURCE_PATH exe4cpp_src + REPO automatak/exe4cpp + REF "${CMAKE_MATCH_1}" + SHA512 c8946db752c0f8499d21c2da96b84676b8768954bcb1964f4c444c731d9871d8978cb96fe89b1125e91b861aef0984bdd943a4dccb91d17ba43f22c57673b7b2 + ) +else() + message(FATAL_ERROR "Unable to determine version of exe4cpp") +endif() + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/opendnp3-config.cmake.in" DESTINATION "${SOURCE_PATH}") +file(COPY "${CMAKE_CURRENT_LIST_DIR}/deps/" DESTINATION "${SOURCE_PATH}/deps/") + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" STATICLIBS) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + tls DNP3_TLS +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DDNP3_STATIC_LIBS=${STATICLIBS} + -DFETCHCONTENT_FULLY_DISCONNECTED=ON + -DFETCHCONTENT_SOURCE_DIR_SER4CPP=${ser4cpp_src} + -DFETCHCONTENT_SOURCE_DIR_EXE4CPP=${exe4cpp_src} + ${FEATURE_OPTIONS} +) + +vcpkg_cmake_install() + +vcpkg_copy_pdbs() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
\ No newline at end of file diff --git a/vcpkg/ports/opendnp3/vcpkg.json b/vcpkg/ports/opendnp3/vcpkg.json new file mode 100644 index 0000000..98d7f33 --- /dev/null +++ b/vcpkg/ports/opendnp3/vcpkg.json @@ -0,0 +1,27 @@ +{ + "name": "opendnp3", + "version": "3.1.1", + "port-version": 1, + "description": "DNP3 (IEEE-1815) protocol stack. Modern C++ with bindings for .NET and Java.", + "homepage": "https://github.com/dnp3/opendnp3/", + "supports": "!uwp", + "dependencies": [ + "asio", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "tls": { + "description": "Build TLS client/server support", + "dependencies": [ + "openssl" + ] + } + } +} |