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/fastdds/portfile.cmake | |
Diffstat (limited to 'vcpkg/ports/fastdds/portfile.cmake')
| -rw-r--r-- | vcpkg/ports/fastdds/portfile.cmake | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/vcpkg/ports/fastdds/portfile.cmake b/vcpkg/ports/fastdds/portfile.cmake new file mode 100644 index 0000000..050a3f7 --- /dev/null +++ b/vcpkg/ports/fastdds/portfile.cmake @@ -0,0 +1,91 @@ +vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO eProsima/Fast-DDS
+ REF "v${VERSION}"
+ SHA512 970b80dc87224183f730b32f21dba4cdd55cf9ac88ce662c0a0f710a2bca6233754d1274a71cca64a543407a4d5f09db3badf73201b6bb5f49ff68c81b368509
+ HEAD_REF master
+ PATCHES
+ fix-deps.patch
+ pdb-file.patch
+ disable-werror.patch
+ include-cstdint.patch
+)
+
+set(extra_opts "")
+if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ # when cross-compiling, try_run will not work.
+ set(extra_opts
+ -DSM_RUN_RESULT=TRUE
+ -DSM_RUN_RESULT__TRYRUN_OUTPUT=
+ )
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DSECURITY=ON
+ -DFORCE_CXX=14 # foonathan memory debug needs C++14 constexpr
+ ${extra_opts}
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH share/fastdds/cmake)
+
+if(VCPKG_TARGET_IS_WINDOWS)
+ # copy tools from "bin" to "tools" folder
+ foreach(TOOL "fast-discovery-server-1.0.1.exe" "fastdds.bat" "ros-discovery.bat")
+ file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/${TOOL}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/${TOOL}")
+ endforeach()
+
+ # remove tools from debug builds
+ foreach(TOOL "fast-discovery-serverd-1.0.1.exe" "fastdds.bat" "ros-discovery.bat")
+ if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL}")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL}")
+ endif()
+ endforeach()
+
+ # adjust paths in batch files
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/fastdds.bat" "%dir%\\..\\tools\\fastdds\\fastdds.py" "%dir%\\..\\fastdds\\fastdds.py")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/ros-discovery.bat" "%dir%\\..\\tools\\fastdds\\fastdds.py" "%dir%\\..\\fastdds\\fastdds.py")
+
+ vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+elseif(VCPKG_TARGET_IS_LINUX)
+ # copy tools from "bin" to "tools" folder
+ foreach(TOOL "fast-discovery-server-1.0.1" "fast-discovery-server" "fastdds" "ros-discovery")
+ file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/${TOOL}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/${TOOL}")
+ endforeach()
+
+ # replace symlink by a copy because symlinks do not work well together with vcpkg binary caching
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/fast-discovery-server")
+ file(INSTALL "${CURRENT_PACKAGES_DIR}/tools/${PORT}/fast-discovery-server-1.0.1" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}" RENAME "fast-discovery-server")
+
+ # remove tools from debug builds
+ foreach(TOOL "fast-discovery-serverd-1.0.1" "fast-discovery-server" "fastdds" "ros-discovery")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL}")
+ endforeach()
+
+ # adjust paths in batch files
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/fastdds" "$dir/../tools/fastdds/fastdds.py" "$dir/../fastdds/fastdds.py")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/ros-discovery" "$dir/../tools/fastdds/fastdds.py" "$dir/../fastdds/fastdds.py")
+endif()
+
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/fastdds/discovery/parser.py" "tool_path / '../../../bin'" "tool_path / '../../${PORT}'")
+if(NOT VCPKG_BUILD_TYPE)
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fastdds/fast-discovery-server-targets-debug.cmake" [[${_IMPORT_PREFIX}/tools/fastdds/fast-discovery-serverd-1.0.1]] [[${_IMPORT_PREFIX}/tools/fastdds/fast-discovery-server-1.0.1]])
+endif()
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS)
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin")
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin")
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/tools")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|