From fe86c79d1c6253e58851c039e30a8ac211207d59 Mon Sep 17 00:00:00 2001
From: Pascal Palenda <pascal.palenda@akustik.rwth-aachen.de>
Date: Thu, 21 Sep 2023 17:16:55 +0200
Subject: [PATCH] Feat: add custom find package

Some third-party libraries depend on further third-party libraries and sometimes even share them.
With this custom find package command it is possible to overwrite the thrid-parties attempts of finding these libraries in order to use a downloaded version form our source tree.
---
 src/Index.cmake | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/src/Index.cmake b/src/Index.cmake
index 13512ad..4397d2c 100644
--- a/src/Index.cmake
+++ b/src/Index.cmake
@@ -23,5 +23,28 @@ include (${CPM_MODULE_LOCATION})
 
 include (${CMAKE_CURRENT_LIST_DIR}/GetCommonLibraries.cmake)
 include (${CMAKE_CURRENT_LIST_DIR}/BuildDoc.cmake)
-include(${CMAKE_CURRENT_LIST_DIR}/IhtaAddTest.cmake)
-include(${CMAKE_CURRENT_LIST_DIR}/IhtaAddLibrary.cmake)
+include (${CMAKE_CURRENT_LIST_DIR}/IhtaAddTest.cmake)
+include (${CMAKE_CURRENT_LIST_DIR}/IhtaAddLibrary.cmake)
+
+macro (find_package)
+
+	if (AVAILABLE_SUB_PROJECTS)
+		string (TOLOWER "${ARGV0}" _pkg_low)
+		string (TOLOWER "${AVAILABLE_SUB_PROJECTS}" _sub_low)
+
+		if (${_pkg_low} STREQUAL ${_sub_low})
+			message (WARNING "Package ${ARGV0} available as a sub project; skip find_package")
+		else ()
+			_find_package (${ARGV})
+		endif ()
+	else ()
+		_find_package (${ARGV})
+	endif ()
+
+	# if (NOT "${ARGV0}" IN_LIST AVAILABLE_SUB_PROJECTS)
+	# 	message (FATAL_ERROR "Package ${ARGV0} not found as a Target; using find_package")
+	# 	# _find_package (${ARGV})
+	# else ()
+	# 	message (FATAL_ERROR "Package ${ARGV0} found as a Target; skip find_package")
+	# endif ()
+endmacro ()
-- 
GitLab