Commit 6973e2d5 authored by Alexander Neundorf's avatar Alexander Neundorf Committed by Brad King
Browse files

wrap write_basic_config_version_file as write_basic_package_version_file()

So the name fits better with configure_package_config_file(), as
discussed on the mailing list. Adapt the documentation accordingly.

Alex
parent 204f5d44
...@@ -58,7 +58,32 @@ ...@@ -58,7 +58,32 @@
# When using the NO_SET_AND_CHECK_MACRO, this macro is not generated into the # When using the NO_SET_AND_CHECK_MACRO, this macro is not generated into the
# FooConfig.cmake file. # FooConfig.cmake file.
# #
# Example: # For an example see below the documentation for WRITE_BASIC_PACKAGE_VERSION_FILE().
#
#
# WRITE_BASIC_PACKAGE_VERSION_FILE( filename VERSION major.minor.patch COMPATIBILITY (AnyNewerVersion|SameMajorVersion) )
#
# Writes a file for use as <package>ConfigVersion.cmake file to <filename>.
# See the documentation of FIND_PACKAGE() for details on this.
# filename is the output filename, it should be in the build tree.
# major.minor.patch is the version number of the project to be installed
# The COMPATIBILITY mode AnyNewerVersion means that the installed package version
# will be considered compatible if it is newer or exactly the same as the requested version.
# If SameMajorVersion is used instead, then the behaviour differs from AnyNewerVersion
# in that the major version number must be the same as requested, e.g. version 2.0 will
# not be considered compatible if 1.0 is requested.
# If your project has more elaborated version matching rules, you will need to write your
# own custom ConfigVersion.cmake file instead of using this macro.
#
# Internally, this macro executes configure_file() to create the resulting
# version file. Depending on the COMPATIBLITY, either the file
# BasicConfigVersion-SameMajorVersion.cmake.in or BasicConfigVersion-AnyNewerVersion.cmake.in
# is used. Please note that these two files are internal to CMake and you should
# not call configure_file() on them yourself, but they can be used as starting
# point to create more sophisticted custom ConfigVersion.cmake files.
#
#
# Example using both configure_package_config_file() and write_basic_package_version_file():
# CMakeLists.txt: # CMakeLists.txt:
# set(INCLUDE_INSTALL_DIR include/ ... CACHE ) # set(INCLUDE_INSTALL_DIR include/ ... CACHE )
# set(LIB_INSTALL_DIR lib/ ... CACHE ) # set(LIB_INSTALL_DIR lib/ ... CACHE )
...@@ -68,9 +93,13 @@ ...@@ -68,9 +93,13 @@
# configure_package_config_file(FooConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake # configure_package_config_file(FooConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
# INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake # INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake
# PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR) # PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR)
# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake ) # write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
# VERSION 1.2.3
# COMPATIBILITY SameMajorVersion )
# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
# DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake )
# #
# FooConfig.cmake.in: # With a FooConfig.cmake.in:
# set(FOO_VERSION x.y.z) # set(FOO_VERSION x.y.z)
# ... # ...
# @PACKAGE_INIT@ # @PACKAGE_INIT@
...@@ -94,6 +123,12 @@ ...@@ -94,6 +123,12 @@
include(CMakeParseArguments) include(CMakeParseArguments)
include(WriteBasicConfigVersionFile)
macro(WRITE_BASIC_PACKAGE_VERSION_FILE)
write_basic_config_version_file(${ARGN})
endmacro()
function(CONFIGURE_PACKAGE_CONFIG_FILE _inputFile _outputFile) function(CONFIGURE_PACKAGE_CONFIG_FILE _inputFile _outputFile)
set(options NO_SET_AND_CHECK_MACRO) set(options NO_SET_AND_CHECK_MACRO)
......
# WRITE_BASIC_CONFIG_VERSION_FILE( filename VERSION major.minor.patch COMPATIBILITY (AnyNewerVersion|SameMajorVersion) ) # WRITE_BASIC_CONFIG_VERSION_FILE( filename VERSION major.minor.patch COMPATIBILITY (AnyNewerVersion|SameMajorVersion) )
# #
# Writes a file for use as <package>ConfigVersion.cmake file to <filename>. # Deprecated, see WRITE_BASIC_PACKAGE_VERSION_FILE(), it is identical.
# See the documentation of FIND_PACKAGE() for details on this.
# filename is the output filename, it should be in the build tree.
# major.minor.patch is the version number of the project to be installed
# The COMPATIBILITY mode AnyNewerVersion means that the installed package version
# will be considered compatible if it is newer or exactly the same as the requested version.
# If SameMajorVersion is used instead, then the behaviour differs from AnyNewerVersion
# in that the major version number must be the same as requested, e.g. version 2.0 will
# not be considered compatible if 1.0 is requested.
# If your project has more elaborated version matching rules, you will need to write your
# own custom ConfigVersion.cmake file instead of using this macro.
#
# Example:
# write_basic_config_version_file(${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
# VERSION 1.2.3
# COMPATIBILITY SameMajorVersion )
# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
# ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
# DESTINATION lib/cmake/Foo )
#
# Internally, this macro executes configure_file() to create the resulting
# version file. Depending on the COMPATIBLITY, either the file
# BasicConfigVersion-SameMajorVersion.cmake.in or BasicConfigVersion-AnyNewerVersion.cmake.in
# is used. Please note that these two files are internal to CMake and you should
# not call configure_file() on them yourself, but they can be used as starting
# point to create more sophisticted custom ConfigVersion.cmake files.
#============================================================================= #=============================================================================
# Copyright 2008-2011 Alexander Neundorf, <neundorf@kde.org> # Copyright 2008-2011 Alexander Neundorf, <neundorf@kde.org>
......
...@@ -192,7 +192,7 @@ void cmFindPackageCommand::GenerateDocumentation() ...@@ -192,7 +192,7 @@ void cmFindPackageCommand::GenerateDocumentation()
"If no such version file is available then the configuration file " "If no such version file is available then the configuration file "
"is assumed to not be compatible with any requested version. " "is assumed to not be compatible with any requested version. "
"A basic version file containing generic version matching code can be " "A basic version file containing generic version matching code can be "
"created using the macro write_basic_config_version_file(), see its " "created using the macro write_basic_package_version_file(), see its "
"documentation for more details. " "documentation for more details. "
"When a version file is found it is loaded to check the requested " "When a version file is found it is loaded to check the requested "
"version number. " "version number. "
......
...@@ -335,11 +335,9 @@ endif() ...@@ -335,11 +335,9 @@ endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Test write_basic_config_version_file(). # Test write_basic_config_version_file().
include(WriteBasicConfigVersionFile) write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/Foo123ConfigVersion.cmake
VERSION 1.2.3
write_basic_config_version_file(${CMAKE_CURRENT_BINARY_DIR}/Foo123ConfigVersion.cmake COMPATIBILITY AnyNewerVersion)
VERSION 1.2.3
COMPATIBILITY AnyNewerVersion)
set(PACKAGE_FIND_VERSION 2.3.4) set(PACKAGE_FIND_VERSION 2.3.4)
include(${CMAKE_CURRENT_BINARY_DIR}/Foo123ConfigVersion.cmake) include(${CMAKE_CURRENT_BINARY_DIR}/Foo123ConfigVersion.cmake)
...@@ -373,6 +371,7 @@ endif() ...@@ -373,6 +371,7 @@ endif()
####################### #######################
include(WriteBasicConfigVersionFile)
write_basic_config_version_file(${CMAKE_CURRENT_BINARY_DIR}/Boo123ConfigVersion.cmake write_basic_config_version_file(${CMAKE_CURRENT_BINARY_DIR}/Boo123ConfigVersion.cmake
VERSION 1.2.3 VERSION 1.2.3
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment