Skip to content
Snippets Groups Projects
Unverified Commit 5eb173a0 authored by Tim Kaune's avatar Tim Kaune
Browse files

Automatically propagate minimum required CMake version

The package config and tests take the minimum required CMake version
from the main project.

Also introduce the maximum supported CMake version for policy management.
parent 0a6f1486
Branches
Tags
No related merge requests found
......@@ -25,10 +25,17 @@ SOFTWARE.
cmake_minimum_required(VERSION 3.25)
# If CMake >=3.24 is used, set policies up to v3.24 to NEW
# if (NOT ${CMAKE_VERSION} VERSION_LESS 3.24)
# cmake_policy(VERSION 3.24)
# endif()
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()
project(LoadStaticSharedTargets VERSION 1.4.1 LANGUAGES NONE)
......
......@@ -26,8 +26,13 @@ SOFTWARE.
include(CMakePackageConfigHelpers)
if (NOT DEFINED LoadStaticSharedTargets_INSTALL_CMAKEDIR)
set(LoadStaticSharedTargets_INSTALL_CMAKEDIR "${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}"
CACHE STRING "Path to LoadStaticSharedTargets CMake files")
set(
LoadStaticSharedTargets_INSTALL_CMAKEDIR
"${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}"
CACHE
STRING
"Path to LoadStaticSharedTargets CMake files"
)
endif ()
install(
......@@ -42,10 +47,16 @@ write_basic_package_version_file(
COMPATIBILITY SameMajorVersion
)
configure_file(
"LoadStaticSharedTargetsConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/LoadStaticSharedTargetsConfig.cmake"
@ONLY
)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/LoadStaticSharedTargetsConfigVersion.cmake"
"LoadStaticSharedTargetsConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/LoadStaticSharedTargetsConfig.cmake"
"../src/cmake/LoadStaticSharedTargets.cmake"
DESTINATION "${LoadStaticSharedTargets_INSTALL_CMAKEDIR}"
)
......@@ -23,12 +23,19 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
]]
cmake_minimum_required(VERSION 3.25)
cmake_minimum_required(VERSION @CMAKE_MINIMUM_REQUIRED_VERSION@)
# If CMake >=3.24 is used, set policies up to v3.24 to NEW
# if (NOT ${CMAKE_VERSION} VERSION_LESS 3.24)
# cmake_policy(VERSION 3.24)
# endif()
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()
# include(LoadStaticSharedTargets) should work after this
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
......@@ -64,7 +64,12 @@ set(
foreach (TEST_CASE IN LISTS TEST_CASES TEST_CASES_WITH_WARNING)
add_test(
NAME "${TEST_CASE}"
COMMAND "${CMAKE_COMMAND}" -D CMAKE_MINIMUM_REQUIRED_VERSION=${CMAKE_MINIMUM_REQUIRED_VERSION} -D "TEST_CASE=${TEST_CASE}" -P "./helpers/test_case_wrapper.cmake"
COMMAND
"${CMAKE_COMMAND}"
-D CMAKE_MINIMUM_REQUIRED_VERSION=${CMAKE_MINIMUM_REQUIRED_VERSION}
-D CMAKE_MAXIMUM_SUPPORTED_VERSION=${CMAKE_MAXIMUM_SUPPORTED_VERSION}
-D "TEST_CASE=${TEST_CASE}"
-P "./helpers/test_case_wrapper.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
)
endforeach ()
......@@ -72,7 +77,12 @@ endforeach ()
foreach (TEST_CASE IN LISTS TEST_CASES_WITH_WARNING)
add_test(
NAME "${TEST_CASE}_check-warning"
COMMAND "${CMAKE_COMMAND}" -D CMAKE_MINIMUM_REQUIRED_VERSION=${CMAKE_MINIMUM_REQUIRED_VERSION} -D "TEST_CASE=${TEST_CASE}" -P "./helpers/test_case_wrapper.cmake"
COMMAND
"${CMAKE_COMMAND}"
-D CMAKE_MINIMUM_REQUIRED_VERSION=${CMAKE_MINIMUM_REQUIRED_VERSION}
-D CMAKE_MAXIMUM_SUPPORTED_VERSION=${CMAKE_MAXIMUM_SUPPORTED_VERSION}
-D "TEST_CASE=${TEST_CASE}"
-P "./helpers/test_case_wrapper.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
)
......
......@@ -25,6 +25,16 @@ SOFTWARE.
cmake_policy(VERSION ${CMAKE_MINIMUM_REQUIRED_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()
include("./helpers/assertions.cmake")
include("../src/cmake/LoadStaticSharedTargets.cmake")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment