Skip to content
Snippets Groups Projects
Verified Commit 9e0c55c1 authored by Tim Kaune's avatar Tim Kaune
Browse files

Make install path for CMake files a local variable

Use install root or package directory as preset in the package config file
Protect dependency config option against overwriting
parent 8749cc26
No related branches found
No related tags found
No related merge requests found
......@@ -24,7 +24,6 @@ cmake_minimum_required(VERSION 3.30...${CMAKE_MAXIMUM_SUPPORTED_VERSION})
project(NetlibF2C VERSION 1.7.1 LANGUAGES C)
include(FetchContent)
include(GNUInstallDirs)
string(COMPARE EQUAL "${CMAKE_PROJECT_NAME}" "${PROJECT_NAME}" IS_TOP_LEVEL)
......@@ -49,7 +48,9 @@ FetchContent_Declare(
FIND_PACKAGE_ARGS 1.6.0 CONFIG NAMES LoadStaticSharedTargets
)
if (NOT DEFINED LoadStaticSharedTargets_INCLUDE_PACKAGING)
set(LoadStaticSharedTargets_INCLUDE_PACKAGING "${NetlibF2C_INCLUDE_PACKAGING}")
endif ()
FetchContent_MakeAvailable(LoadStaticSharedTargets)
......
......@@ -17,15 +17,13 @@ License along with this program. If not, see
<https://www.gnu.org/licenses/>.
]]
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
if (NOT DEFINED NetlibF2C_INSTALL_CMAKEDIR)
set(
NetlibF2C_INSTALL_CMAKEDIR
"${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}-${PROJECT_VERSION}"
CACHE
STRING
"Path to Netlib LibF2C CMake files"
)
endif ()
......@@ -107,14 +105,18 @@ write_basic_package_version_file(
)
if (DEFINED LoadStaticSharedTargets_SOURCE_DIR)
cmake_path(APPEND CMAKE_INSTALL_PREFIX "${LoadStaticSharedTargets_INSTALL_CMAKEDIR}" OUTPUT_VARIABLE LoadStaticSharedTargets_DIR)
set(LoadStaticSharedTargets_HINT_VAR "LoadStaticSharedTargets_ROOT")
set(LoadStaticSharedTargets_HINT_PATH "")
else ()
set(LoadStaticSharedTargets_HINT_VAR "LoadStaticSharedTargets_DIR")
set(LoadStaticSharedTargets_HINT_PATH "${LoadStaticSharedTargets_DIR}")
endif ()
configure_package_config_file(
"NetlibF2CConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/NetlibF2CConfig.cmake"
INSTALL_DESTINATION "${NetlibF2C_INSTALL_CMAKEDIR}"
PATH_VARS LoadStaticSharedTargets_DIR
PATH_VARS LoadStaticSharedTargets_HINT_PATH
)
install(
......
......@@ -30,18 +30,11 @@ cmake_minimum_required(VERSION @CMAKE_MINIMUM_REQUIRED_VERSION@...@CMAKE_MAXIMUM
include(CMakeFindDependencyMacro)
set_and_check(
LoadStaticSharedTargets_DIR
"@PACKAGE_LoadStaticSharedTargets_DIR@"
@LoadStaticSharedTargets_HINT_VAR@
"@PACKAGE_LoadStaticSharedTargets_HINT_PATH@"
)
set(
LoadStaticSharedTargets_DIR
"${LoadStaticSharedTargets_DIR}"
CACHE STRING
"The directory containing a CMake configuration file for LoadStaticSharedTargets."
)
find_dependency(LoadStaticSharedTargets REQUIRED CONFIG)
find_dependency(LoadStaticSharedTargets CONFIG)
include(LoadStaticSharedTargets)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment