From 1357d49ae6c6d2a1d4ac02b9e08dd5e571a3acf8 Mon Sep 17 00:00:00 2001
From: Paul Zander <negril.nx@gmail.com>
Date: Thu, 17 Sep 2026 23:33:06 +0200
Subject: use system catch

Signed-off-by: Paul Zander <negril.nx@gmail.com>

diff --git a/cmake/external_projects/catch.cmake b/cmake/external_projects/catch.cmake
index 57127b22..a965bc17 100644
--- a/cmake/external_projects/catch.cmake
+++ b/cmake/external_projects/catch.cmake
@@ -1,3 +1,28 @@
+message(STATUS "CMAKE_GENTOO_BUILD ${CMAKE_GENTOO_BUILD}")
+if(CMAKE_GENTOO_BUILD)
+cmake_minimum_required(VERSION 3.24) # Required for FIND_PACKAGE_ARGS
+
+include(FetchContent)
+
+FetchContent_Declare(
+  Catch2
+  GIT_REPOSITORY https://github.com
+  GIT_TAG        v2.13.7
+  SYSTEM
+  FIND_PACKAGE_ARGS NAMES Catch2
+)
+FetchContent_MakeAvailable(Catch2)
+
+if(NOT CATCH_INCLUDE_DIR)
+  if(Catch2_POPULATED)
+    set(CATCH_INCLUDE_DIR "${catch2_SOURCE_DIR}/single_include" CACHE INTERNAL "Path to include folder for Catch")
+  else()
+    get_target_property(CATCH_INCLUDE_DIR Catch2::Catch2 INTERFACE_INCLUDE_DIRECTORIES)
+    set(CATCH_INCLUDE_DIR "${CATCH_INCLUDE_DIR}" CACHE INTERNAL "Path to include folder for Catch")
+  endif()
+endif()
+add_library(project_catch ALIAS Catch2::Catch2)
+else()
 include (ExternalProject)
 find_program(GIT_EXECUTABLE git)
 ExternalProject_Add(
@@ -16,3 +39,4 @@ ExternalProject_Add(
 # Expose required variable (CATCH_INCLUDE_DIR) to parent scope
 ExternalProject_Get_Property(project_catch source_dir)
 set(CATCH_INCLUDE_DIR ${source_dir}/single_include CACHE INTERNAL "Path to include folder for Catch")
+endif()
-- 
2.55.0

