aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/catch2
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/catch2
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/catch2')
-rw-r--r--vcpkg/ports/catch2/fix-install-path.patch52
-rw-r--r--vcpkg/ports/catch2/portfile.cmake45
-rw-r--r--vcpkg/ports/catch2/vcpkg.json22
3 files changed, 119 insertions, 0 deletions
diff --git a/vcpkg/ports/catch2/fix-install-path.patch b/vcpkg/ports/catch2/fix-install-path.patch
new file mode 100644
index 0000000..83d50b4
--- /dev/null
+++ b/vcpkg/ports/catch2/fix-install-path.patch
@@ -0,0 +1,52 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1676ee7..5231934 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -167,13 +167,13 @@ if(NOT_SUBPROJECT)
+ "extras/gdbinit"
+ "extras/lldbinit"
+ DESTINATION
+- ${CMAKE_INSTALL_DATAROOTDIR}/Catch2
++ ${CMAKE_INSTALL_DATAROOTDIR}/catch2
+ )
+ endif()
+
+ ## Provide some pkg-config integration
+ set(PKGCONFIG_INSTALL_DIR
+- "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig"
++ "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
+ CACHE PATH "Path where catch2.pc is installed"
+ )
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 1e3af14..265626c 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -402,7 +402,6 @@ if(NOT_SUBPROJECT)
+ install(
+ TARGETS
+ Catch2
+- Catch2WithMain
+ EXPORT
+ Catch2Targets
+ LIBRARY DESTINATION
+@@ -413,6 +412,19 @@ if(NOT_SUBPROJECT)
+ ${CMAKE_INSTALL_BINDIR}
+ )
+
++ install(
++ TARGETS
++ Catch2WithMain
++ EXPORT
++ Catch2Targets
++ LIBRARY DESTINATION
++ ${CMAKE_INSTALL_LIBDIR}/manual-link
++ ARCHIVE DESTINATION
++ ${CMAKE_INSTALL_LIBDIR}/manual-link
++ RUNTIME DESTINATION
++ ${CMAKE_INSTALL_BINDIR}
++ )
++
+ install(
+ EXPORT
+ Catch2Targets
diff --git a/vcpkg/ports/catch2/portfile.cmake b/vcpkg/ports/catch2/portfile.cmake
new file mode 100644
index 0000000..767c9b7
--- /dev/null
+++ b/vcpkg/ports/catch2/portfile.cmake
@@ -0,0 +1,45 @@
+if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO catchorg/Catch2
+ REF v${VERSION}
+ SHA512 a95495142f915d6e9c2a23e80fe360343e9097680066a2f9d3037a070ba5f81ee5559a0407cc9e972dc2afae325873f1fc7ea07a64012c0f01aac6e549f03e3f
+ HEAD_REF devel
+ PATCHES
+ fix-install-path.patch
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS
+ FEATURES
+ thread-safe-assertions CATCH_CONFIG_EXPERIMENTAL_THREAD_SAFE_ASSERTIONS
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${OPTIONS}
+ -DCATCH_INSTALL_DOCS=OFF
+ -DCMAKE_CXX_STANDARD=17
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Catch2)
+vcpkg_fixup_pkgconfig()
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/catch2-with-main.pc" [["-L${libdir}"]] [["-L${libdir}/manual-link"]])
+if(NOT VCPKG_BUILD_TYPE)
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/catch2-with-main.pc" [["-L${libdir}"]] [["-L${libdir}/manual-link"]])
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+# We remove these folders because they are empty and cause warnings on the library installation
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/catch2/benchmark/internal")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/catch2/generators/internal")
+
+file(WRITE "${CURRENT_PACKAGES_DIR}/include/catch.hpp" "#include <catch2/catch_all.hpp>")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt")
diff --git a/vcpkg/ports/catch2/vcpkg.json b/vcpkg/ports/catch2/vcpkg.json
new file mode 100644
index 0000000..5621d8d
--- /dev/null
+++ b/vcpkg/ports/catch2/vcpkg.json
@@ -0,0 +1,22 @@
+{
+ "name": "catch2",
+ "version-semver": "3.11.0",
+ "description": "A modern, C++-native, test framework for unit-tests, TDD and BDD.",
+ "homepage": "https://github.com/catchorg/Catch2",
+ "license": "BSL-1.0",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "thread-safe-assertions": {
+ "description": "Enables thread safe assertions"
+ }
+ }
+}