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