From 325ecb9f120b1a9a2cfb39c24f64ca309e527f9f Mon Sep 17 00:00:00 2001 From: Tim Kaune <tim.kaune@gmx.de> Date: Tue, 5 Mar 2024 14:39:28 +0100 Subject: [PATCH] Move handle policies code block to extra file --- CMakeLists.txt | 14 ++----- cmake/HandlePolicies.cmake | 38 +++++++++++++++++++ packaging/CMakeLists.txt | 2 + .../LoadStaticSharedTargetsConfig.cmake.in | 12 ++---- 4 files changed, 46 insertions(+), 20 deletions(-) create mode 100644 cmake/HandlePolicies.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a0c700..eed6834 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,15 +27,7 @@ cmake_minimum_required(VERSION 3.25) set(CMAKE_MAXIMUM_SUPPORTED_VERSION 3.28) -# If CMAKE_VERSION <= CMAKE_MAXIMUM_SUPPORTED_VERSION is used, set policies up -# to CMAKE_VERSION to NEW -if (${CMAKE_VERSION} VERSION_LESS_EQUAL ${CMAKE_MAXIMUM_SUPPORTED_VERSION}) - cmake_policy(VERSION ${CMAKE_VERSION}) -# If CMAKE_VERSION > CMAKE_MAXIMUM_SUPPORTED_VERSION is used, set policies up to -# CMAKE_MAXIMUM_SUPPORTED_VERSION to NEW -else () - cmake_policy(VERSION ${CMAKE_MAXIMUM_SUPPORTED_VERSION}) -endif() +include("./cmake/HandlePolicies.cmake" NO_POLICY_SCOPE) project(LoadStaticSharedTargets VERSION 1.5.0 LANGUAGES NONE) @@ -51,6 +43,8 @@ if (IS_TOP_LEVEL) endif () endif () +option(LoadStaticSharedTargets_INCLUDE_PACKAGING "Include packaging rules for LoadStaticSharedTargets" "${IS_TOP_LEVEL}") + add_subdirectory(src) if (IS_TOP_LEVEL AND BUILD_TESTING) @@ -59,8 +53,6 @@ if (IS_TOP_LEVEL AND BUILD_TESTING) add_subdirectory(tests EXCLUDE_FROM_ALL) endif () -option(LoadStaticSharedTargets_INCLUDE_PACKAGING "Include packaging rules for LoadStaticSharedTargets" "${IS_TOP_LEVEL}") - if (LoadStaticSharedTargets_INCLUDE_PACKAGING) add_subdirectory(packaging) endif () diff --git a/cmake/HandlePolicies.cmake b/cmake/HandlePolicies.cmake new file mode 100644 index 0000000..0fb9a23 --- /dev/null +++ b/cmake/HandlePolicies.cmake @@ -0,0 +1,38 @@ +#[[ +MIT License + +CMake build script for LoadStaticSharedTargets module +Copyright (c) 2024 Tim Kaune + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +]] + +if (NOT DEFINED CMAKE_MAXIMUM_SUPPORTED_VERSION) + set(CMAKE_MAXIMUM_SUPPORTED_VERSION ${CMAKE_MINIMUM_REQUIRED_VERSION}) +endif () + +# If CMAKE_VERSION <= CMAKE_MAXIMUM_SUPPORTED_VERSION is used, set policies up +# to CMAKE_VERSION to NEW +if (${CMAKE_VERSION} VERSION_LESS_EQUAL ${CMAKE_MAXIMUM_SUPPORTED_VERSION}) + cmake_policy(VERSION ${CMAKE_VERSION}) +# If CMAKE_VERSION > CMAKE_MAXIMUM_SUPPORTED_VERSION is used, set policies up to +# CMAKE_MAXIMUM_SUPPORTED_VERSION to NEW +else () + cmake_policy(VERSION ${CMAKE_MAXIMUM_SUPPORTED_VERSION}) +endif() diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt index ba64606..2f4ed2a 100644 --- a/packaging/CMakeLists.txt +++ b/packaging/CMakeLists.txt @@ -47,6 +47,8 @@ write_basic_package_version_file( COMPATIBILITY SameMajorVersion ) +file(READ "../cmake/HandlePolicies.cmake" HANDLE_POLICIES_SCRIPT OFFSET 1128) + configure_file( "LoadStaticSharedTargetsConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/LoadStaticSharedTargetsConfig.cmake" diff --git a/packaging/LoadStaticSharedTargetsConfig.cmake.in b/packaging/LoadStaticSharedTargetsConfig.cmake.in index dd26084..fe5ff22 100644 --- a/packaging/LoadStaticSharedTargetsConfig.cmake.in +++ b/packaging/LoadStaticSharedTargetsConfig.cmake.in @@ -27,15 +27,9 @@ cmake_minimum_required(VERSION @CMAKE_MINIMUM_REQUIRED_VERSION@) set(CMAKE_MAXIMUM_SUPPORTED_VERSION @CMAKE_MAXIMUM_SUPPORTED_VERSION@) -# If CMAKE_VERSION <= CMAKE_MAXIMUM_SUPPORTED_VERSION is used, set policies up -# to CMAKE_VERSION to NEW -if (${CMAKE_VERSION} VERSION_LESS_EQUAL ${CMAKE_MAXIMUM_SUPPORTED_VERSION}) - cmake_policy(VERSION ${CMAKE_VERSION}) -# If CMAKE_VERSION > CMAKE_MAXIMUM_SUPPORTED_VERSION is used, set policies up to -# CMAKE_MAXIMUM_SUPPORTED_VERSION to NEW -else () - cmake_policy(VERSION ${CMAKE_MAXIMUM_SUPPORTED_VERSION}) -endif() +# begin HANDLE_POLICIES_SCRIPT +@HANDLE_POLICIES_SCRIPT@ +# end HANDLE_POLICIES_SCRIPT # include(LoadStaticSharedTargets) should work after this list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") -- GitLab