cmake/Modules/WriteBasicConfigVersionFile.cmake

49 lines
1.4 KiB
CMake
Raw Normal View History

2016-10-30 18:24:19 +01:00
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
2014-08-03 19:52:23 +02:00
#.rst:
# WriteBasicConfigVersionFile
# ---------------------------
#
#
#
# ::
#
2015-04-27 22:25:09 +02:00
# WRITE_BASIC_CONFIG_VERSION_FILE( filename
# [VERSION major.minor.patch]
2018-04-23 21:13:27 +02:00
# COMPATIBILITY (AnyNewerVersion|SameMajorVersion|SameMinorVersion|ExactVersion)
2015-04-27 22:25:09 +02:00
# )
2014-08-03 19:52:23 +02:00
#
#
2012-02-18 12:40:36 +02:00
#
2012-04-19 19:04:21 +03:00
# Deprecated, see WRITE_BASIC_PACKAGE_VERSION_FILE(), it is identical.
2012-02-18 12:40:36 +02:00
function(WRITE_BASIC_CONFIG_VERSION_FILE _filename)
set(options )
set(oneValueArgs VERSION COMPATIBILITY )
set(multiValueArgs )
cmake_parse_arguments(CVF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(CVF_UNPARSED_ARGUMENTS)
message(FATAL_ERROR "Unknown keywords given to WRITE_BASIC_CONFIG_VERSION_FILE(): \"${CVF_UNPARSED_ARGUMENTS}\"")
2013-03-16 19:13:01 +02:00
endif()
2012-02-18 12:40:36 +02:00
set(versionTemplateFile "${CMAKE_ROOT}/Modules/BasicConfigVersion-${CVF_COMPATIBILITY}.cmake.in")
if(NOT EXISTS "${versionTemplateFile}")
message(FATAL_ERROR "Bad COMPATIBILITY value used for WRITE_BASIC_CONFIG_VERSION_FILE(): \"${CVF_COMPATIBILITY}\"")
endif()
if("${CVF_VERSION}" STREQUAL "")
2014-08-03 19:52:23 +02:00
if ("${PROJECT_VERSION}" STREQUAL "")
message(FATAL_ERROR "No VERSION specified for WRITE_BASIC_CONFIG_VERSION_FILE()")
else()
set(CVF_VERSION "${PROJECT_VERSION}")
endif()
2012-02-18 12:40:36 +02:00
endif()
configure_file("${versionTemplateFile}" "${_filename}" @ONLY)
2013-03-16 19:13:01 +02:00
endfunction()