From 7a608be59b40e4fb57e49fecae70ed6106adb072 Mon Sep 17 00:00:00 2001
From: Pascal Palenda <pascal.palenda@akustik.rwth-aachen.de>
Date: Mon, 10 Apr 2023 11:34:52 +0200
Subject: [PATCH] Fix issue with unset base dir variable

---
 src/Index.cmake            | 18 ++++++++++++++++--
 src/UseSharedConfigs.cmake |  4 ++++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/Index.cmake b/src/Index.cmake
index f02d296..a21991d 100644
--- a/src/Index.cmake
+++ b/src/Index.cmake
@@ -2,14 +2,28 @@ cmake_minimum_required (VERSION 3.20 FATAL_ERROR)
 
 include_guard ()
 
-set(IHTA_CMAKE_COMMON_BASE_DIR ${CMAKE_CURRENT_LIST_DIR})
+#[=======================================================================[.rst:
+..command:: set_ihta_common_base_dir
+
+	Set the base dir for the library to reference bundled files.
+
+	::
+
+		set_ihta_common_base_dir()
+
+#]=======================================================================]
+macro (set_ihta_common_base_dir)
+	get_directory_property (LISTFILE_STACK LISTFILE_STACK)
+	list (POP_BACK LISTFILE_STACK _LIST_FILE)
+	cmake_path (GET _LIST_FILE PARENT_PATH IHTA_CMAKE_COMMON_BASE_DIR)
+endmacro ()
 
 include (${CMAKE_CURRENT_LIST_DIR}/InitProject.cmake)
 
 # Check for CPM
 file (GLOB CPM_MODULE_LOCATIONS ${CMAKE_BINARY_DIR}/cmake/CPM*.cmake)
 
-list(GET CPM_MODULE_LOCATIONS -1 CPM_MODULE_LOCATION)
+list (GET CPM_MODULE_LOCATIONS -1 CPM_MODULE_LOCATION)
 
 if (NOT (EXISTS ${CPM_MODULE_LOCATION}))
 	set (CPM_DOWNLOAD_VERSION 0.37.0)
diff --git a/src/UseSharedConfigs.cmake b/src/UseSharedConfigs.cmake
index 0300ad9..6935d20 100644
--- a/src/UseSharedConfigs.cmake
+++ b/src/UseSharedConfigs.cmake
@@ -10,6 +10,8 @@ include_guard ()
 	- `.cmake-format`
 	are supported.
 
+	This should be called after `project` so that `PROJECT_SOURCE_DIR` is set.
+
 	::
 
 		use_shared_configs(TRUE TRUE FALSE)
@@ -28,6 +30,8 @@ include_guard ()
 
 #]=======================================================================]
 macro (use_shared_configs SHARED_CLANG_FORMAT SHARED_CMAKE_FORMAT SHARED_CLANG_TIDY)
+	set_ihta_common_base_dir ()
+
 	if (${SHARED_CLANG_TIDY})
 		file (COPY_FILE ${IHTA_CMAKE_COMMON_BASE_DIR}/resources/.clang-tidy ${PROJECT_SOURCE_DIR}/.clang-tidy
 			  ONLY_IF_DIFFERENT
-- 
GitLab