From b9b32d0ec9175fd60fbf40d07d6018337e885e59 Mon Sep 17 00:00:00 2001
From: Jens Georg <jens.georg@desy.de>
Date: Tue, 24 Sep 2019 13:01:45 +0200
Subject: [PATCH] Add public dependencies to Config.cmake

To add public dependencies to the generated config, use e.g.

list(APPEND ${PROJECT_NAME}_PUBLIC_DEPENDENCIES "Boost COMPONENTS system thread chrono")
---
 cmake/PROJECT_NAMEConfig.cmake.in.in  | 2 ++
 cmake/create_cmake_config_files.cmake | 5 +++++
 2 files changed, 7 insertions(+)

diff --git a/cmake/PROJECT_NAMEConfig.cmake.in.in b/cmake/PROJECT_NAMEConfig.cmake.in.in
index 2102790..92c8207 100644
--- a/cmake/PROJECT_NAMEConfig.cmake.in.in
+++ b/cmake/PROJECT_NAMEConfig.cmake.in.in
@@ -34,6 +34,8 @@ FIND_LIBRARY(@PROJECT_NAME@_LIBRARY @PROJECT_NAME@
   NO_DEFAULT_PATH
 )
 
+@@PROJECT_NAME@_PUBLIC_DEPENDENCIES_L@
+
 # Since this file is already part of the installation to be found, the configuration can be hard-coded at
 # installation time
 set(@PROJECT_NAME@_VERSION "@@PROJECT_NAME@_SOVERSION@")
diff --git a/cmake/create_cmake_config_files.cmake b/cmake/create_cmake_config_files.cmake
index fe03409..13fc78d 100644
--- a/cmake/create_cmake_config_files.cmake
+++ b/cmake/create_cmake_config_files.cmake
@@ -53,6 +53,11 @@ foreach(LIBRARY ${LIST})
   endif()
 endforeach()
 
+set(${PROJECT_NAME}_PUBLIC_DEPENDENCIES_L "")
+foreach(DEPENDENCY ${${PROJECT_NAME}_PUBLIC_DEPENDENCIES})
+    string(APPEND ${PROJECT_NAME}_PUBLIC_DEPENDENCIES_L "find_package(${DEPENDENCY} REQUIRED)\n")
+endforeach()
+
 # we have nested @-statements, so we have to parse twice:
 
 # create the cmake find_package configuration file
-- 
GitLab