diff options
61 files changed, 670 insertions, 287 deletions
diff --git a/Help/command/ctest_submit.rst b/Help/command/ctest_submit.rst index ed801bb..d9b0b78 100644 --- a/Help/command/ctest_submit.rst +++ b/Help/command/ctest_submit.rst @@ -5,7 +5,11 @@ Submit results to a dashboard server. :: - ctest_submit([PARTS ...] [FILES ...] [RETRY_COUNT count] [RETRY_DELAY delay][RETURN_VALUE res]) + ctest_submit([PARTS ...] [FILES ...] + [RETRY_COUNT count] + [RETRY_DELAY delay] + [RETURN_VALUE res] + ) By default all available parts are submitted if no PARTS or FILES are specified. The PARTS option lists a subset of parts to be submitted. diff --git a/Help/manual/cmake-compile-features.7.rst b/Help/manual/cmake-compile-features.7.rst index 8a2fe30..8e3dbb8 100644 --- a/Help/manual/cmake-compile-features.7.rst +++ b/Help/manual/cmake-compile-features.7.rst @@ -276,10 +276,13 @@ properties: .. code-block:: cmake add_library(foo INTERFACE) + set(with_variadics ${CMAKE_CURRENT_SOURCE_DIR}/with_variadics) + set(no_variadics ${CMAKE_CURRENT_SOURCE_DIR}/no_variadics) target_link_libraries(foo INTERFACE - "$<$<COMPILE_FEATURES:cxx_variadic_templates>:${CMAKE_CURRENT_SOURCE_DIR}/with_variadics>" - "$<$<NOT:$<COMPILE_FEATURES:cxx_variadic_templates>>:${CMAKE_CURRENT_SOURCE_DIR}/no_variadics>") + "$<$<COMPILE_FEATURES:cxx_variadic_templates>:${with_variadics}>" + "$<$<NOT:$<COMPILE_FEATURES:cxx_variadic_templates>>:${no_variadics}>" + ) Consuming code then simply links to the ``foo`` target as usual and uses the feature-appropriate include directory diff --git a/Help/manual/cmake-developer.7.rst b/Help/manual/cmake-developer.7.rst index 625dac0..eea5fc3 100644 --- a/Help/manual/cmake-developer.7.rst +++ b/Help/manual/cmake-developer.7.rst @@ -1005,7 +1005,8 @@ projects that do not require a high enough CMake version. .. code-block:: cmake if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.0.0) - message(AUTHOR_WARNING "Your project should require at least CMake 3.0.0 to use FindFoo.cmake") + message(AUTHOR_WARNING + "Your project should require at least CMake 3.0.0 to use FindFoo.cmake") endif() Now the actual libraries and so on have to be found. The code here will diff --git a/Help/manual/cmake-generator-expressions.7.rst b/Help/manual/cmake-generator-expressions.7.rst index 77259a0..981bd84 100644 --- a/Help/manual/cmake-generator-expressions.7.rst +++ b/Help/manual/cmake-generator-expressions.7.rst @@ -38,6 +38,8 @@ create conditional output:: expands to ``DEBUG_MODE`` when the ``Debug`` configuration is used, and otherwise expands to nothing. +Available logical expressions are: + ``$<0:...>`` Empty string (ignores ``...``) ``$<1:...>`` @@ -111,6 +113,8 @@ expands to ``OLD_COMPILER`` if the :variable:`CMAKE_CXX_COMPILER_VERSION <CMAKE_<LANG>_COMPILER_VERSION>` is less than 4.2.0. +Available informational expressions are: + ``$<CONFIGURATION>`` Configuration name. Deprecated. Use ``CONFIG`` instead. ``$<CONFIG>`` @@ -185,7 +189,13 @@ property with each entry preceeded by ``-I``. Note that a more-complete use in this situation would require first checking if the INCLUDE_DIRECTORIES property is non-empty:: - $<$<BOOL:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>>:-I$<JOIN:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>, -I>> + $<$<BOOL:${prop}>:-I$<JOIN:${prop}, -I>> + +where ``${prop}`` refers to a helper variable:: + + set(prop "$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>") + +Available output expressions are: ``$<JOIN:list,...>`` Joins the list with the content of ``...`` diff --git a/Help/manual/cmake-toolchains.7.rst b/Help/manual/cmake-toolchains.7.rst index 1621b5f..fad5481 100644 --- a/Help/manual/cmake-toolchains.7.rst +++ b/Help/manual/cmake-toolchains.7.rst @@ -115,8 +115,9 @@ as: set(CMAKE_SYSROOT /home/devel/rasp-pi-rootfs) set(CMAKE_STAGING_PREFIX /home/devel/stage) - set(CMAKE_C_COMPILER /home/devel/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc) - set(CMAKE_CXX_COMPILER /home/devel/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-g++) + set(tools /home/devel/gcc-4.7-linaro-rpi-gnueabihf) + set(CMAKE_C_COMPILER ${tools}/bin/arm-linux-gnueabihf-gcc) + set(CMAKE_CXX_COMPILER ${tools}/bin/arm-linux-gnueabihf-g++) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 864ea6e..1deb8bb 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -260,6 +260,7 @@ Variables that Control the Build /variable/CMAKE_USE_RELATIVE_PATHS /variable/CMAKE_VISIBILITY_INLINES_HIDDEN /variable/CMAKE_WIN32_EXECUTABLE + /variable/CMAKE_XCODE_ATTRIBUTE_an-attribute /variable/EXECUTABLE_OUTPUT_PATH /variable/LIBRARY_OUTPUT_PATH diff --git a/Help/prop_inst/CPACK_WIX_ACL.rst b/Help/prop_inst/CPACK_WIX_ACL.rst index ee42666..4e13ec4 100644 --- a/Help/prop_inst/CPACK_WIX_ACL.rst +++ b/Help/prop_inst/CPACK_WIX_ACL.rst @@ -14,5 +14,6 @@ each of which has to match the following format. ``<user>`` and ``<domain>`` specify the windows user and domain for which the ``<Permission>`` element should be generated. -``<permission>`` is any of the YesNoType attributes listed here: -http://wixtoolset.org/documentation/manual/v3/xsd/wix/permission.html +``<permission>`` is any of the YesNoType attributes listed here:: + + http://wixtoolset.org/documentation/manual/v3/xsd/wix/permission.html diff --git a/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst b/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst index 0be313c..de98c37 100644 --- a/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst +++ b/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst @@ -5,3 +5,6 @@ Set Xcode target attributes directly. Tell the Xcode generator to set '<an-attribute>' to a given value in the generated Xcode project. Ignored on other generators. + +See the :variable:`CMAKE_XCODE_ATTRIBUTE_<an-attribute>` variable +to set attributes on all targets in a directory tree. diff --git a/Help/release/dev/0-sample-topic.rst b/Help/release/dev/0-sample-topic.rst deleted file mode 100644 index e4cc01e..0000000 --- a/Help/release/dev/0-sample-topic.rst +++ /dev/null @@ -1,7 +0,0 @@ -0-sample-topic --------------- - -* This is a sample release note for the change in a topic. - Developers should add similar notes for each topic branch - making a noteworthy change. Each document should be named - and titled to match the topic name to avoid merge conflicts. diff --git a/Help/release/index.rst b/Help/release/index.rst index abc19b8..616a582 100644 --- a/Help/release/index.rst +++ b/Help/release/index.rst @@ -5,8 +5,6 @@ CMake Release Notes This file should include the adjacent "dev.txt" file in development versions but not in release versions. -.. include:: dev.txt - Releases ======== diff --git a/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst b/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst new file mode 100644 index 0000000..096f64e --- /dev/null +++ b/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst @@ -0,0 +1,10 @@ +CMAKE_XCODE_ATTRIBUTE_<an-attribute> +------------------------------------ + +Set Xcode target attributes directly. + +Tell the Xcode generator to set '<an-attribute>' to a given value in +the generated Xcode project. Ignored on other generators. + +See the :prop_tgt:`XCODE_ATTRIBUTE_<an-attribute>` target property +to set attributes on a specific target. diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake index 445c719..fee0a7c 100644 --- a/Modules/BundleUtilities.cmake +++ b/Modules/BundleUtilities.cmake @@ -655,8 +655,12 @@ function(copy_resolved_framework_into_bundle resolved_item resolved_embedded_ite if(EXISTS "${resolved_resources}") #message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy_directory '${resolved_resources}' '${resolved_embedded_resources}'") execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${resolved_resources}" "${resolved_embedded_resources}") - else() - # Otherwise try at least copy Contents/Info.plist to Resources/Info.plist, if it exists: + endif() + + # Some frameworks e.g. Qt put Info.plist in wrong place, so when it is + # missing in resources, copy it from other well known incorrect locations: + if(NOT EXISTS "${resolved_resources}/Info.plist") + # Check for Contents/Info.plist in framework root (older Qt SDK): string(REGEX REPLACE "^(.*)/[^/]+/[^/]+/[^/]+$" "\\1/Contents/Info.plist" resolved_info_plist "${resolved_item}") string(REGEX REPLACE "^(.*)/[^/]+$" "\\1/Resources/Info.plist" resolved_embedded_info_plist "${resolved_embedded_item}") if(EXISTS "${resolved_info_plist}") @@ -674,6 +678,16 @@ function(copy_resolved_framework_into_bundle resolved_item resolved_embedded_ite if(NOT EXISTS "${resolved_embedded_versions}/Current") execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${resolved_embedded_version}" "${resolved_embedded_versions}/Current") endif() + # Restore symlinks in framework root pointing to current framework + # binary and resources: + string(REGEX REPLACE "^(.*)/[^/]+/[^/]+/[^/]+$" "\\1" resolved_embedded_root "${resolved_embedded_item}") + string(REGEX REPLACE "^.*/([^/]+)$" "\\1" resolved_embedded_item_basename "${resolved_embedded_item}") + if(NOT EXISTS "${resolved_embedded_root}/${resolved_embedded_item_basename}") + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "Versions/Current/${resolved_embedded_item_basename}" "${resolved_embedded_root}/${resolved_embedded_item_basename}") + endif() + if(NOT EXISTS "${resolved_embedded_root}/Resources") + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "Versions/Current/Resources" "${resolved_embedded_root}/Resources") + endif() endif() endif() if(UNIX AND NOT APPLE) diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index a7b5760..613f4b3 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -261,11 +261,20 @@ Id flags: ${testflags} else() set(id_deployment_target "") endif() + set(id_product_type "com.apple.product-type.tool") if(CMAKE_OSX_SYSROOT) set(id_sdkroot "SDKROOT = \"${CMAKE_OSX_SYSROOT}\";") + if(CMAKE_OSX_SYSROOT MATCHES "(^|/)[Ii][Pp][Hh][Oo][Nn][Ee]") + set(id_product_type "com.apple.product-type.bundle.unit-test") + endif() else() set(id_sdkroot "") endif() + if(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY) + set(id_code_sign_identity "CODE_SIGN_IDENTITY = \"${CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY}\";") + else() + set(id_code_sign_identity "") + endif() if(NOT ${XCODE_VERSION} VERSION_LESS 3) set(v 3) set(ext xcodeproj) @@ -298,7 +307,7 @@ Id flags: ${testflags} # ... # /path/to/cc ...CompilerId${lang}/... # to extract the compiler front-end for the language. - if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerId${lang}/(\\./)?CompilerId${lang}[ \t\n\\\"]") + if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerId${lang}(/CompilerId${lang}.xctest)?/(\\./)?CompilerId${lang}[ \t\n\\\"]") set(_comp "${CMAKE_MATCH_2}") if(EXISTS "${_comp}") set(CMAKE_${lang}_COMPILER_ID_TOOL "${_comp}" PARENT_SCOPE) @@ -366,7 +375,13 @@ ${CMAKE_${lang}_COMPILER_ID_OUTPUT} # binary dir. file(GLOB files RELATIVE ${CMAKE_${lang}_COMPILER_ID_DIR} - ${CMAKE_${lang}_COMPILER_ID_DIR}/*) + + # normal case + ${CMAKE_${lang}_COMPILER_ID_DIR}/* + + # com.apple.package-type.bundle.unit-test + ${CMAKE_${lang}_COMPILER_ID_DIR}/*.xctest/* + ) list(REMOVE_ITEM files "${src}") set(COMPILER_${lang}_PRODUCED_FILES "") foreach(file ${files}) diff --git a/Modules/CMakeExpandImportedTargets.cmake b/Modules/CMakeExpandImportedTargets.cmake index b6ab7ef..8ac3364 100644 --- a/Modules/CMakeExpandImportedTargets.cmake +++ b/Modules/CMakeExpandImportedTargets.cmake @@ -20,8 +20,9 @@ # # :: # -# cmake_expand_imported_targets(expandedLibs LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} -# CONFIGURATION "${CMAKE_TRY_COMPILE_CONFIGURATION}" ) +# cmake_expand_imported_targets(expandedLibs +# LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} +# CONFIGURATION "${CMAKE_TRY_COMPILE_CONFIGURATION}" ) #============================================================================= diff --git a/Modules/CMakeFindPackageMode.cmake b/Modules/CMakeFindPackageMode.cmake index 9f97ee5..fc3058d 100644 --- a/Modules/CMakeFindPackageMode.cmake +++ b/Modules/CMakeFindPackageMode.cmake @@ -7,15 +7,24 @@ # This file is executed by cmake when invoked with --find-package. It # expects that the following variables are set using -D: # -# :: -# -# NAME = name of the package -# COMPILER_ID = the CMake compiler ID for which the result is, i.e. GNU/Intel/Clang/MSVC, etc. -# LANGUAGE = language for which the result will be used, i.e. C/CXX/Fortan/ASM -# MODE = EXIST : only check for existence of the given package -# COMPILE : print the flags needed for compiling an object file which uses the given package -# LINK : print the flags needed for linking when using the given package -# QUIET = if TRUE, don't print anything +# ``NAME`` +# name of the package +# ``COMPILER_ID`` +# the CMake compiler ID for which the result is, +# i.e. GNU/Intel/Clang/MSVC, etc. +# ``LANGUAGE`` +# language for which the result will be used, +# i.e. C/CXX/Fortan/ASM +# ``MODE`` +# ``EXIST`` +# only check for existence of the given package +# ``COMPILE`` +# print the flags needed for compiling an object file which uses +# the given package +# ``LINK`` +# print the flags needed for linking when using the given package +# ``QUIET`` +# if TRUE, don't print anything #============================================================================= # Copyright 2006-2011 Alexander Neundorf, <neundorf@kde.org> diff --git a/Modules/CMakePackageConfigHelpers.cmake b/Modules/CMakePackageConfigHelpers.cmake index c6dc141..206ea7a 100644 --- a/Modules/CMakePackageConfigHelpers.cmake +++ b/Modules/CMakePackageConfigHelpers.cmake @@ -15,12 +15,13 @@ # # Create a config file for a project:: # -# configure_package_config_file(<input> <output> INSTALL_DESTINATION <path> -# [PATH_VARS <var1> <var2> ... <varN>] -# [NO_SET_AND_CHECK_MACRO] -# [NO_CHECK_REQUIRED_COMPONENTS_MACRO] -# [INSTALL_PREFIX <path>]) -# +# configure_package_config_file(<input> <output> +# INSTALL_DESTINATION <path> +# [PATH_VARS <var1> <var2> ... <varN>] +# [NO_SET_AND_CHECK_MACRO] +# [NO_CHECK_REQUIRED_COMPONENTS_MACRO] +# [INSTALL_PREFIX <path>] +# ) # # ``configure_package_config_file()`` should be used instead of the plain # :command:`configure_file()` command when creating the ``<Name>Config.cmake`` @@ -51,13 +52,13 @@ # Using ``configure_package_config_file`` helps. If used correctly, it makes # the resulting ``FooConfig.cmake`` file relocatable. Usage: # -# 1. write a ``FooConfig.cmake.in`` file as you are used to -# 2. insert a line containing only the string ``@PACKAGE_INIT@`` -# 3. instead of ``set(FOO_DIR "@SOME_INSTALL_DIR@")``, use -# ``set(FOO_DIR "@PACKAGE_SOME_INSTALL_DIR@")`` (this must be after the -# ``@PACKAGE_INIT@`` line) -# 4. instead of using the normal :command:`configure_file()`, use -# ``configure_package_config_file()`` +# 1. write a ``FooConfig.cmake.in`` file as you are used to +# 2. insert a line containing only the string ``@PACKAGE_INIT@`` +# 3. instead of ``set(FOO_DIR "@SOME_INSTALL_DIR@")``, use +# ``set(FOO_DIR "@PACKAGE_SOME_INSTALL_DIR@")`` (this must be after the +# ``@PACKAGE_INIT@`` line) +# 4. instead of using the normal :command:`configure_file()`, use +# ``configure_package_config_file()`` # # # @@ -116,9 +117,9 @@ # # Create a version file for a project:: # -# write_basic_package_version_file(<filename> -# [VERSION <major.minor.patch>] -# COMPATIBILITY <AnyNewerVersion|SameMajorVersion|ExactVersion> ) +# write_basic_package_version_file(<filename> +# [VERSION <major.minor.patch>] +# COMPATIBILITY <AnyNewerVersion|SameMajorVersion|ExactVersion> ) # # # Writes a file for use as ``<package>ConfigVersion.cmake`` file to @@ -172,13 +173,16 @@ # set(SYSCONFIG_INSTALL_DIR etc/foo/ ... CACHE ) # ... # include(CMakePackageConfigHelpers) -# configure_package_config_file(FooConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake -# INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake -# PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR) -# 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 +# configure_package_config_file(FooConfig.cmake.in +# ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake +# INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake +# PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR) +# 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``: diff --git a/Modules/CMakeParseArguments.cmake b/Modules/CMakeParseArguments.cmake index 4248176..8553f38 100644 --- a/Modules/CMakeParseArguments.cmake +++ b/Modules/CMakeParseArguments.cmake @@ -45,7 +45,8 @@ # set(options OPTIONAL FAST) # set(oneValueArgs DESTINATION RENAME) # set(multiValueArgs TARGETS CONFIGURATIONS) -# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) +# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" +# "${multiValueArgs}" ${ARGN} ) # ... # # diff --git a/Modules/CMakePrintHelpers.cmake b/Modules/CMakePrintHelpers.cmake index ad3b0d5..474fa41 100644 --- a/Modules/CMakePrintHelpers.cmake +++ b/Modules/CMakePrintHelpers.cmake @@ -15,11 +15,10 @@ # # This macro prints the values of the properties of the given targets, # source files, directories, tests or cache entries. Exactly one of the -# scope keywords must be used. Example: +# scope keywords must be used. Example:: # -# :: -# -# cmake_print_properties(TARGETS foo bar PROPERTIES LOCATION INTERFACE_INCLUDE_DIRS) +# cmake_print_properties(TARGETS foo bar PROPERTIES +# LOCATION INTERFACE_INCLUDE_DIRS) # # This will print the LOCATION and INTERFACE_INCLUDE_DIRS properties for # both targets foo and bar. @@ -29,17 +28,13 @@ # CMAKE_PRINT_VARIABLES(var1 var2 .. varN) # # This macro will print the name of each variable followed by its value. -# Example: -# -# :: -# -# cmake_print_variables(CMAKE_C_COMPILER CMAKE_MAJOR_VERSION THIS_ONE_DOES_NOT_EXIST) +# Example:: # -# Gives: +# cmake_print_variables(CMAKE_C_COMPILER CMAKE_MAJOR_VERSION DOES_NOT_EXIST) # -# :: +# Gives:: # -# -- CMAKE_C_COMPILER="/usr/bin/gcc" ; CMAKE_MAJOR_VERSION="2" ; THIS_ONE_DOES_NOT_EXIST="" +# -- CMAKE_C_COMPILER="/usr/bin/gcc" ; CMAKE_MAJOR_VERSION="2" ; DOES_NOT_EXIST="" #============================================================================= # Copyright 2013 Alexander Neundorf, <neundorf@kde.org> diff --git a/Modules/CheckStructHasMember.cmake b/Modules/CheckStructHasMember.cmake index 880a688..c8949cf 100644 --- a/Modules/CheckStructHasMember.cmake +++ b/Modules/CheckStructHasMember.cmake @@ -70,7 +70,7 @@ ${_INCLUDE_FILES} int main() { ${_STRUCT}* tmp; - tmp->${_MEMBER}; + (void) tmp->${_MEMBER}; return 0; } ") diff --git a/Modules/CompilerId/Xcode-3.pbxproj.in b/Modules/CompilerId/Xcode-3.pbxproj.in index eabfc6b..aebae27 100644 --- a/Modules/CompilerId/Xcode-3.pbxproj.in +++ b/Modules/CompilerId/Xcode-3.pbxproj.in @@ -29,7 +29,7 @@ ); name = CompilerId@id_lang@; productName = CompilerId@id_lang@; - productType = "com.apple.product-type.tool"; + productType = "@id_product_type@"; }; 08FB7793FE84155DC02AAC07 = { isa = PBXProject; @@ -81,6 +81,7 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; ONLY_ACTIVE_ARCH = YES; + @id_code_sign_identity@ CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; SYMROOT = .; @id_toolset@ diff --git a/Modules/DeployQt4.cmake b/Modules/DeployQt4.cmake index 9b31567..b1a2370 100644 --- a/Modules/DeployQt4.cmake +++ b/Modules/DeployQt4.cmake @@ -37,7 +37,8 @@ # # :: # -# FIXUP_QT4_EXECUTABLE(<executable> [<qtplugins> <libs> <dirs> <plugins_dir> <request_qt_conf>]) +# FIXUP_QT4_EXECUTABLE(<executable> +# [<qtplugins> <libs> <dirs> <plugins_dir> <request_qt_conf>]) # # Copies Qt plugins, writes a Qt configuration file (if needed) and # fixes up a Qt4 executable using BundleUtilities so it is standalone @@ -63,7 +64,8 @@ # # :: # -# INSTALL_QT4_PLUGIN_PATH(plugin executable copy installed_plugin_path_var <plugins_dir> <component> <configurations>) +# INSTALL_QT4_PLUGIN_PATH(plugin executable copy installed_plugin_path_var +# <plugins_dir> <component> <configurations>) # # Install (or copy) a resolved <plugin> to the default plugins directory # (or <plugins_dir>) relative to <executable> and store the result in @@ -77,7 +79,8 @@ # # :: # -# INSTALL_QT4_PLUGIN(plugin executable copy installed_plugin_path_var <plugins_dir> <component>) +# INSTALL_QT4_PLUGIN(plugin executable copy installed_plugin_path_var +# <plugins_dir> <component>) # # Install (or copy) an unresolved <plugin> to the default plugins # directory (or <plugins_dir>) relative to <executable> and store the @@ -86,7 +89,8 @@ # # :: # -# INSTALL_QT4_EXECUTABLE(<executable> [<qtplugins> <libs> <dirs> <plugins_dir> <request_qt_conf> <component>]) +# INSTALL_QT4_EXECUTABLE(<executable> +# [<qtplugins> <libs> <dirs> <plugins_dir> <request_qt_conf> <component>]) # # Installs Qt plugins, writes a Qt configuration file (if needed) and # fixes up a Qt4 executable using BundleUtilities so it is standalone diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake index 12ea384..37bc6b5 100644 --- a/Modules/FeatureSummary.cmake +++ b/Modules/FeatureSummary.cmake @@ -55,21 +55,32 @@ # The WHAT option is the only mandatory option. Here you specify what # information will be printed: # -# :: -# -# ALL: print everything -# ENABLED_FEATURES: the list of all features which are enabled -# DISABLED_FEATURES: the list of all features which are disabled -# PACKAGES_FOUND: the list of all packages which have been found -# PACKAGES_NOT_FOUND: the list of all packages which have not been found -# OPTIONAL_PACKAGES_FOUND: only those packages which have been found which have the type OPTIONAL -# OPTIONAL_PACKAGES_NOT_FOUND: only those packages which have not been found which have the type OPTIONAL -# RECOMMENDED_PACKAGES_FOUND: only those packages which have been found which have the type RECOMMENDED -# RECOMMENDED_PACKAGES_NOT_FOUND: only those packages which have not been found which have the type RECOMMENDED -# REQUIRED_PACKAGES_FOUND: only those packages which have been found which have the type REQUIRED -# REQUIRED_PACKAGES_NOT_FOUND: only those packages which have not been found which have the type REQUIRED -# RUNTIME_PACKAGES_FOUND: only those packages which have been found which have the type RUNTIME -# RUNTIME_PACKAGES_NOT_FOUND: only those packages which have not been found which have the type RUNTIME +# ``ALL`` +# print everything +# ``ENABLED_FEATURES`` +# the list of all features which are enabled +# ``DISABLED_FEATURES`` +# the list of all features which are disabled +# ``PACKAGES_FOUND`` +# the list of all packages which have been found +# ``PACKAGES_NOT_FOUND`` +# the list of all packages which have not been found +# ``OPTIONAL_PACKAGES_FOUND`` +# only those packages which have been found which have the type OPTIONAL +# ``OPTIONAL_PACKAGES_NOT_FOUND`` +# only those packages which have not been found which have the type OPTIONAL +# ``RECOMMENDED_PACKAGES_FOUND`` +# only those packages which have been found which have the type RECOMMENDED +# ``RECOMMENDED_PACKAGES_NOT_FOUND`` +# only those packages which have not been found which have the type RECOMMENDED +# ``REQUIRED_PACKAGES_FOUND`` +# only those packages which have been found which have the type REQUIRED +# ``REQUIRED_PACKAGES_NOT_FOUND`` +# only those packages which have not been found which have the type REQUIRED +# ``RUNTIME_PACKAGES_FOUND`` +# only those packages which have been found which have the type RUNTIME +# ``RUNTIME_PACKAGES_NOT_FOUND`` +# only those packages which have not been found which have the type RUNTIME # # With the exception of the ``ALL`` value, these values can be combined # in order to customize the output. For example: @@ -118,10 +129,11 @@ # # :: # -# SET_PACKAGE_PROPERTIES(<name> PROPERTIES [ URL <url> ] -# [ DESCRIPTION <description> ] -# [ TYPE (RUNTIME|OPTIONAL|RECOMMENDED|REQUIRED) ] -# [ PURPOSE <purpose> ] +# SET_PACKAGE_PROPERTIES(<name> PROPERTIES +# [ URL <url> ] +# [ DESCRIPTION <description> ] +# [ TYPE (RUNTIME|OPTIONAL|RECOMMENDED|REQUIRED) ] +# [ PURPOSE <purpose> ] # ) # # @@ -171,26 +183,30 @@ # :: # # find_package(LibXml2) -# set_package_properties(LibXml2 PROPERTIES DESCRIPTION "A XML processing library." -# URL "http://xmlsoft.org/") +# set_package_properties(LibXml2 PROPERTIES +# DESCRIPTION "A XML processing library." +# URL "http://xmlsoft.org/") # # # # :: # -# set_package_properties(LibXml2 PROPERTIES TYPE RECOMMENDED -# PURPOSE "Enables HTML-import in MyWordProcessor") +# set_package_properties(LibXml2 PROPERTIES +# TYPE RECOMMENDED +# PURPOSE "Enables HTML-import in MyWordProcessor") # ... -# set_package_properties(LibXml2 PROPERTIES TYPE OPTIONAL -# PURPOSE "Enables odt-export in MyWordProcessor") +# set_package_properties(LibXml2 PROPERTIES +# TYPE OPTIONAL +# PURPOSE "Enables odt-export in MyWordProcessor") # # # # :: # # find_package(DBUS) -# set_package_properties(DBUS PROPERTIES TYPE RUNTIME -# PURPOSE "Necessary to disable the screensaver during a presentation" ) +# set_package_properties(DBUS PROPERTIES +# TYPE RUNTIME +# PURPOSE "Necessary to disable the screensaver during a presentation" ) # # # diff --git a/Modules/FindBacktrace.cmake b/Modules/FindBacktrace.cmake index 07109b0..cb4f60a 100644 --- a/Modules/FindBacktrace.cmake +++ b/Modules/FindBacktrace.cmake @@ -5,18 +5,24 @@ # Find provider for backtrace(3). # # Checks if OS supports backtrace(3) via either libc or custom library. -# This module defines the following variables:: +# This module defines the following variables: # -# Backtrace_HEADER - The header file needed for backtrace(3). Cached. -# Could be forcibly set by user. -# Backtrace_INCLUDE_DIRS - The include directories needed to use backtrace(3) header. -# Backtrace_LIBRARIES - The libraries (linker flags) needed to use backtrace(3), if any. -# Backtrace_FOUND - Is set if and only if backtrace(3) support detected. +# ``Backtrace_HEADER`` +# The header file needed for backtrace(3). Cached. +# Could be forcibly set by user. +# ``Backtrace_INCLUDE_DIRS`` +# The include directories needed to use backtrace(3) header. +# ``Backtrace_LIBRARIES`` +# The libraries (linker flags) needed to use backtrace(3), if any. +# ``Backtrace_FOUND`` +# Is set if and only if backtrace(3) support detected. # -# The following cache variables are also available to set or use:: +# The following cache variables are also available to set or use: # -# Backtrace_LIBRARY - The external library providing backtrace, if any. -# Backtrace_INCLUDE_DIR - The directory holding the backtrace(3) header. +# ``Backtrace_LIBRARY`` +# The external library providing backtrace, if any. +# ``Backtrace_INCLUDE_DIR`` +# The directory holding the backtrace(3) header. # # Typical usage is to generate of header file using configure_file() with the # contents like the following:: diff --git a/Modules/FindCUDA.cmake b/Modules/FindCUDA.cmake index 2e2b21c..3dd975c 100644 --- a/Modules/FindCUDA.cmake +++ b/Modules/FindCUDA.cmake @@ -703,18 +703,6 @@ if(CUDA_BUILD_EMULATION AND CUDA_CUDARTEMU_LIBRARY) else() set(CUDA_LIBRARIES ${CUDA_CUDART_LIBRARY}) endif() -if(APPLE) - # We need to add the path to cudart to the linker using rpath, since the - # library name for the cuda libraries is prepended with @rpath. - if(CUDA_BUILD_EMULATION AND CUDA_CUDARTEMU_LIBRARY) - get_filename_component(_cuda_path_to_cudart "${CUDA_CUDARTEMU_LIBRARY}" PATH) - else() - get_filename_component(_cuda_path_to_cudart "${CUDA_CUDART_LIBRARY}" PATH) - endif() - if(_cuda_path_to_cudart) - list(APPEND CUDA_LIBRARIES -Wl,-rpath "-Wl,${_cuda_path_to_cudart}") - endif() -endif() # 1.1 toolkit on linux doesn't appear to have a separate library on # some platforms. diff --git a/Modules/FindHg.cmake b/Modules/FindHg.cmake index c418afd..34d763e 100644 --- a/Modules/FindHg.cmake +++ b/Modules/FindHg.cmake @@ -66,7 +66,11 @@ if(HG_EXECUTABLE) execute_process(COMMAND ${HG_EXECUTABLE} --version OUTPUT_VARIABLE hg_version ERROR_QUIET + RESULT_VARIABLE hg_result OUTPUT_STRIP_TRAILING_WHITESPACE) + if(hg_result MATCHES "is not a valid Win32 application") + set_property(CACHE HG_EXECUTABLE PROPERTY VALUE "HG_EXECUTABLE-NOTFOUND") + endif() if(hg_version MATCHES "^Mercurial Distributed SCM \\(version ([0-9][^)]*)\\)") set(HG_VERSION_STRING "${CMAKE_MATCH_1}") endif() diff --git a/Modules/FindKDE3.cmake b/Modules/FindKDE3.cmake index ea898a6..dda4530 100644 --- a/Modules/FindKDE3.cmake +++ b/Modules/FindKDE3.cmake @@ -8,29 +8,29 @@ # # This module defines the following variables: # -# :: -# -# KDE3_DEFINITIONS - compiler definitions required for compiling KDE software -# KDE3_INCLUDE_DIR - the KDE include directory -# KDE3_INCLUDE_DIRS - the KDE and the Qt include directory, for use with include_directories() -# KDE3_LIB_DIR - the directory where the KDE libraries are installed, for use with link_directories() -# QT_AND_KDECORE_LIBS - this contains both the Qt and the kdecore library -# KDE3_DCOPIDL_EXECUTABLE - the dcopidl executable -# KDE3_DCOPIDL2CPP_EXECUTABLE - the dcopidl2cpp executable -# KDE3_KCFGC_EXECUTABLE - the kconfig_compiler executable -# KDE3_FOUND - set to TRUE if all of the above has been found -# -# +# ``KDE3_DEFINITIONS`` +# compiler definitions required for compiling KDE software +# ``KDE3_INCLUDE_DIR`` +# the KDE include directory +# ``KDE3_INCLUDE_DIRS`` +# the KDE and the Qt include directory, for use with include_directories() +# ``KDE3_LIB_DIR`` +# the directory where the KDE libraries are installed, for use with link_directories() +# ``QT_AND_KDECORE_LIBS`` +# this contains both the Qt and the kdecore library +# ``KDE3_DCOPIDL_EXECUTABLE`` +# the dcopidl executable +# ``KDE3_DCOPIDL2CPP_EXECUTABLE`` +# the dcopidl2cpp executable +# ``KDE3_KCFGC_EXECUTABLE`` +# the kconfig_compiler executable +# ``KDE3_FOUND`` +# set to TRUE if all of the above has been found # # The following user adjustable options are provided: # -# :: -# -# KDE3_BUILD_TESTS - enable this to build KDE testcases -# -# -# -# +# ``KDE3_BUILD_TESTS`` +# enable this to build KDE testcases # # It also adds the following macros (from KDE3Macros.cmake) SRCS_VAR is # always the variable which contains the list of source files for your @@ -101,7 +101,8 @@ # # :: # -# Currently identical to add_executable(), may provide some advanced features in the future. +# Currently identical to add_executable(), may provide some advanced +# features in the future. # # # @@ -110,7 +111,8 @@ # :: # # Create a KDE plugin (KPart, kioslave, etc.) from the given source files. -# If WITH_PREFIX is given, the resulting plugin will have the prefix "lib", otherwise it won't. +# If WITH_PREFIX is given, the resulting plugin will have the prefix "lib", +# otherwise it won't. # It creates and installs an appropriate libtool la-file. # # @@ -120,7 +122,8 @@ # :: # # Create a KDE application in the form of a module loadable via kdeinit. -# A library named kdeinit_<name> will be created and a small executable which links to it. +# A library named kdeinit_<name> will be created and a small executable +# which links to it. # # # diff --git a/Modules/FindOpenSceneGraph.cmake b/Modules/FindOpenSceneGraph.cmake index 68adff7..5a800e4 100644 --- a/Modules/FindOpenSceneGraph.cmake +++ b/Modules/FindOpenSceneGraph.cmake @@ -40,13 +40,14 @@ # OSG and it's various components. CMAKE_PREFIX_PATH can also be used # for this (see find_library() CMake documentation). # -# :: -# -# <MODULE>_DIR (where MODULE is of the form "OSGVOLUME" and there is a FindosgVolume.cmake file) -# OSG_DIR -# OSGDIR -# OSG_ROOT -# +# ``<MODULE>_DIR`` +# (where MODULE is of the form "OSGVOLUME" and there is a FindosgVolume.cmake file) +# ``OSG_DIR`` +# .. +# ``OSGDIR`` +# .. +# ``OSG_ROOT`` +# .. # # # [CMake 2.8.10]: The CMake variable OSG_DIR can now be used as well to diff --git a/Modules/FindPNG.cmake b/Modules/FindPNG.cmake index fa04bf0..7cf3f22 100644 --- a/Modules/FindPNG.cmake +++ b/Modules/FindPNG.cmake @@ -10,19 +10,22 @@ # # It defines the following variables # -# :: -# -# PNG_INCLUDE_DIRS, where to find png.h, etc. -# PNG_LIBRARIES, the libraries to link against to use PNG. -# PNG_DEFINITIONS - You should add_definitons(${PNG_DEFINITIONS}) before compiling code that includes png library files. -# PNG_FOUND, If false, do not try to use PNG. -# PNG_VERSION_STRING - the version of the PNG library found (since CMake 2.8.8) +# ``PNG_INCLUDE_DIRS`` +# where to find png.h, etc. +# ``PNG_LIBRARIES`` +# the libraries to link against to use PNG. +# ``PNG_DEFINITIONS`` +# You should add_definitons(${PNG_DEFINITIONS}) before compiling code +# that includes png library files. +# ``PNG_FOUND`` +# If false, do not try to use PNG. +# ``PNG_VERSION_STRING`` +# the version of the PNG library found (since CMake 2.8.8) # # Also defined, but not for general use are # -# :: -# -# PNG_LIBRARY, where to find the PNG library. +# ``PNG_LIBRARY`` +# where to find the PNG library. # # For backward compatiblity the variable PNG_INCLUDE_DIR is also set. # It has the same value as PNG_INCLUDE_DIRS. diff --git a/Modules/FindPackageHandleStandardArgs.cmake b/Modules/FindPackageHandleStandardArgs.cmake index 23f3f05..6bcf1e7 100644 --- a/Modules/FindPackageHandleStandardArgs.cmake +++ b/Modules/FindPackageHandleStandardArgs.cmake @@ -20,7 +20,8 @@ # # :: # -# FIND_PACKAGE_HANDLE_STANDARD_ARGS(<name> (DEFAULT_MSG|"Custom failure message") <var1>...<varN> ) +# FIND_PACKAGE_HANDLE_STANDARD_ARGS(<name> +# (DEFAULT_MSG|"Custom failure message") <var1>...<varN> ) # # If the variables <var1> to <varN> are all valid, then # <UPPERCASED_NAME>_FOUND will be set to TRUE. If DEFAULT_MSG is given @@ -32,14 +33,13 @@ # # :: # -# FIND_PACKAGE_HANDLE_STANDARD_ARGS(NAME [FOUND_VAR <resultVar>] -# [REQUIRED_VARS <var1>...<varN>] -# [VERSION_VAR <versionvar>] -# [HANDLE_COMPONENTS] -# [CONFIG_MODE] -# [FAIL_MESSAGE "Custom failure message"] ) -# -# +# FIND_PACKAGE_HANDLE_STANDARD_ARGS(NAME +# [FOUND_VAR <resultVar>] +# [REQUIRED_VARS <var1>...<varN>] +# [VERSION_VAR <versionvar>] +# [HANDLE_COMPONENTS] +# [CONFIG_MODE] +# [FAIL_MESSAGE "Custom failure message"] ) # # In this mode, the name of the result-variable can be set either to # either <UPPERCASED_NAME>_FOUND or <OriginalCase_Name>_FOUND using the @@ -75,7 +75,8 @@ # # :: # -# find_package_handle_standard_args(LibXml2 DEFAULT_MSG LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR) +# find_package_handle_standard_args(LibXml2 DEFAULT_MSG +# LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR) # # # @@ -90,9 +91,10 @@ # # :: # -# find_package_handle_standard_args(LibXslt FOUND_VAR LibXslt_FOUND -# REQUIRED_VARS LibXslt_LIBRARIES LibXslt_INCLUDE_DIRS -# VERSION_VAR LibXslt_VERSION_STRING) +# find_package_handle_standard_args(LibXslt +# FOUND_VAR LibXslt_FOUND +# REQUIRED_VARS LibXslt_LIBRARIES LibXslt_INCLUDE_DIRS +# VERSION_VAR LibXslt_VERSION_STRING) # # In this case, LibXslt is considered to be found if the variable(s) # listed after REQUIRED_VAR are all valid, i.e. LibXslt_LIBRARIES and diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake index 06a8917..2c39de5 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -111,12 +111,14 @@ # # :: # -# macro QT4_ADD_DBUS_ADAPTOR(outfiles xmlfile parentheader parentclassname [basename] [classname]) +# macro QT4_ADD_DBUS_ADAPTOR(outfiles xmlfile parentheader parentclassname +# [basename] [classname]) # create a dbus adaptor (header and implementation file) from the xml file # describing the interface, and add it to the list of sources. The adaptor # forwards the calls to a parent class, defined in parentheader and named # parentclassname. The name of the generated files will be -# <basename>adaptor.{cpp,h} where basename defaults to the basename of the xml file. +# <basename>adaptor.{cpp,h} where basename defaults to the basename of the +# xml file. # If <classname> is provided, then it will be used as the classname of the # adaptor itself. # @@ -128,7 +130,8 @@ # If the optional argument interfacename is omitted, the name of the # interface file is constructed from the basename of the header with # the suffix .xml appended. -# Options may be given to qdbuscpp2xml, such as those found when executing "qdbuscpp2xml --help" +# Options may be given to qdbuscpp2xml, such as those found when +# executing "qdbuscpp2xml --help" # # # :: @@ -170,10 +173,11 @@ # want to use QT4_WRAP_CPP() (which is reliable and mature), you can insert # #include "foo.moc" # in foo.cpp and then give foo.cpp as argument to QT4_AUTOMOC(). This will the -# scan all listed files at cmake-time for such included moc files and if it finds -# them cause a rule to be generated to run moc at build time on the +# scan all listed files at cmake-time for such included moc files and if it +# finds them cause a rule to be generated to run moc at build time on the # accompanying header file foo.h. -# If a source file has the SKIP_AUTOMOC property set it will be ignored by this macro. +# If a source file has the SKIP_AUTOMOC property set it will be ignored by +# this macro. # If the <tgt> is specified, the INTERFACE_INCLUDE_DIRECTORIES and # INTERFACE_COMPILE_DEFINITIONS from the <tgt> are passed to moc. # @@ -181,16 +185,17 @@ # :: # # function QT4_USE_MODULES( target [link_type] modules...) -# This function is obsolete. Use target_link_libraries with IMPORTED targets instead. +# This function is obsolete. Use target_link_libraries with IMPORTED targets +# instead. # Make <target> use the <modules> from Qt. Using a Qt module means # to link to the library, add the relevant include directories for the module, # and add the relevant compiler defines for using the module. # Modules are roughly equivalent to components of Qt4, so usage would be # something like: # qt4_use_modules(myexe Core Gui Declarative) -# to use QtCore, QtGui and QtDeclarative. The optional <link_type> argument can -# be specified as either LINK_PUBLIC or LINK_PRIVATE to specify the same argument -# to the target_link_libraries call. +# to use QtCore, QtGui and QtDeclarative. The optional <link_type> argument +# can be specified as either LINK_PUBLIC or LINK_PRIVATE to specify the +# same argument to the target_link_libraries call. # # # IMPORTED Targets diff --git a/Modules/FindRuby.cmake b/Modules/FindRuby.cmake index aafdc09..b5ac703 100644 --- a/Modules/FindRuby.cmake +++ b/Modules/FindRuby.cmake @@ -14,19 +14,21 @@ # It also determines what the name of the library is. This code sets # the following variables: # -# :: +# ``RUBY_EXECUTABLE`` +# full path to the ruby binary +# ``RUBY_INCLUDE_DIRS`` +# include dirs to be used when using the ruby library +# ``RUBY_LIBRARY`` +# full path to the ruby library +# ``RUBY_VERSION`` +# the version of ruby which was found, e.g. "1.8.7" +# ``RUBY_FOUND`` +# set to true if ruby ws found successfully # -# RUBY_EXECUTABLE = full path to the ruby binary -# RUBY_INCLUDE_DIRS = include dirs to be used when using the ruby library -# RUBY_LIBRARY = full path to the ruby library -# RUBY_VERSION = the version of ruby which was found, e.g. "1.8.7" -# RUBY_FOUND = set to true if ruby ws found successfully +# Also: # -# -# -# :: -# -# RUBY_INCLUDE_PATH = same as RUBY_INCLUDE_DIRS, only provided for compatibility reasons, don't use it +# ``RUBY_INCLUDE_PATH`` +# same as RUBY_INCLUDE_DIRS, only provided for compatibility reasons, don't use it #============================================================================= # Copyright 2004-2009 Kitware, Inc. diff --git a/Modules/FindSquish.cmake b/Modules/FindSquish.cmake index 2b7fd22..4fdecb4 100644 --- a/Modules/FindSquish.cmake +++ b/Modules/FindSquish.cmake @@ -21,7 +21,8 @@ # # :: # -# SQUISH_INSTALL_DIR The Squish installation directory (containing bin, lib, etc) +# SQUISH_INSTALL_DIR The Squish installation directory +# (containing bin, lib, etc) # SQUISH_SERVER_EXECUTABLE The squishserver executable # SQUISH_CLIENT_EXECUTABLE The squishrunner executable # @@ -47,21 +48,26 @@ # # The arguments have the following meaning: # -# :: -# -# cmakeTestName: this will be used as the first argument for add_test() -# AUT targetName: the name of the cmake target which will be used as AUT, i.e. the -# executable which will be tested. -# SUITE suiteName: this is either the full path to the squish suite, or just the -# last directory of the suite, i.e. the suite name. In this case -# the CMakeLists.txt which calls squish_add_test() must be located -# in the parent directory of the suite directory. -# TEST squishTestName: the name of the squish test, i.e. the name of the subdirectory -# of the test inside the suite directory. -# SETTINGSGROUP group: if specified, the given settings group will be used for executing the test. -# If not specified, the groupname will be "CTest_<username>" -# PRE_COMMAND command: if specified, the given command will be executed before starting the squish test. -# POST_COMMAND command: same as PRE_COMMAND, but after the squish test has been executed. +# ``cmakeTestName`` +# this will be used as the first argument for add_test() +# ``AUT targetName`` +# the name of the cmake target which will be used as AUT, i.e. the +# executable which will be tested. +# ``SUITE suiteName`` +# this is either the full path to the squish suite, or just the +# last directory of the suite, i.e. the suite name. In this case +# the CMakeLists.txt which calls squish_add_test() must be located +# in the parent directory of the suite directory. +# ``TEST squishTestName`` +# the name of the squish test, i.e. the name of the subdirectory +# of the test inside the suite directory. +# ``SETTINGSGROUP group`` +# if specified, the given settings group will be used for executing the test. +# If not specified, the groupname will be "CTest_<username>" +# ``PRE_COMMAND command`` +# if specified, the given command will be executed before starting the squish test. +# ``POST_COMMAND command`` +# same as PRE_COMMAND, but after the squish test has been executed. # # # @@ -70,7 +76,12 @@ # enable_testing() # find_package(Squish 4.0) # if (SQUISH_FOUND) -# squish_v4_add_test(myTestName AUT myApp SUITE ${CMAKE_SOURCE_DIR}/tests/mySuite TEST someSquishTest SETTINGSGROUP myGroup ) +# squish_v4_add_test(myTestName +# AUT myApp +# SUITE ${CMAKE_SOURCE_DIR}/tests/mySuite +# TEST someSquishTest +# SETTINGSGROUP myGroup +# ) # endif () # # diff --git a/Modules/GNUInstallDirs.cmake b/Modules/GNUInstallDirs.cmake index 10956aa..c61e7e9 100644 --- a/Modules/GNUInstallDirs.cmake +++ b/Modules/GNUInstallDirs.cmake @@ -6,36 +6,47 @@ # # Provides install directory variables as defined for GNU software: # -# :: -# # http://www.gnu.org/prep/standards/html_node/Directory-Variables.html # # Inclusion of this module defines the following variables: # -# :: -# -# CMAKE_INSTALL_<dir> - destination for files of a given type -# CMAKE_INSTALL_FULL_<dir> - corresponding absolute path +# ``CMAKE_INSTALL_<dir>`` +# destination for files of a given type +# ``CMAKE_INSTALL_FULL_<dir>`` +# corresponding absolute path # # where <dir> is one of: # -# :: -# -# BINDIR - user executables (bin) -# SBINDIR - system admin executables (sbin) -# LIBEXECDIR - program executables (libexec) -# SYSCONFDIR - read-only single-machine data (etc) -# SHAREDSTATEDIR - modifiable architecture-independent data (com) -# LOCALSTATEDIR - modifiable single-machine data (var) -# LIBDIR - object code libraries (lib or lib64 or lib/<multiarch-tuple> on Debian) -# INCLUDEDIR - C header files (include) -# OLDINCLUDEDIR - C header files for non-gcc (/usr/include) -# DATAROOTDIR - read-only architecture-independent data root (share) -# DATADIR - read-only architecture-independent data (DATAROOTDIR) -# INFODIR - info documentation (DATAROOTDIR/info) -# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale) -# MANDIR - man documentation (DATAROOTDIR/man) -# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME) +# ``BINDIR`` +# user executables (bin) +# ``SBINDIR`` +# system admin executables (sbin) +# ``LIBEXECDIR`` +# program executables (libexec) +# ``SYSCONFDIR`` +# read-only single-machine data (etc) +# ``SHAREDSTATEDIR`` +# modifiable architecture-independent data (com) +# ``LOCALSTATEDIR`` +# modifiable single-machine data (var) +# ``LIBDIR`` +# object code libraries (lib or lib64 or lib/<multiarch-tuple> on Debian) +# ``INCLUDEDIR`` +# C header files (include) +# ``OLDINCLUDEDIR`` +# C header files for non-gcc (/usr/include) +# ``DATAROOTDIR`` +# read-only architecture-independent data root (share) +# ``DATADIR`` +# read-only architecture-independent data (DATAROOTDIR) +# ``INFODIR`` +# info documentation (DATAROOTDIR/info) +# ``LOCALEDIR`` +# locale-dependent data (DATAROOTDIR/locale) +# ``MANDIR`` +# man documentation (DATAROOTDIR/man) +# ``DOCDIR`` +# documentation root (DATAROOTDIR/doc/PROJECT_NAME) # # Each CMAKE_INSTALL_<dir> value may be passed to the DESTINATION # options of install() commands for the corresponding file type. If the diff --git a/Modules/WriteBasicConfigVersionFile.cmake b/Modules/WriteBasicConfigVersionFile.cmake index 7d28e95..bf55eb9 100644 --- a/Modules/WriteBasicConfigVersionFile.cmake +++ b/Modules/WriteBasicConfigVersionFile.cmake @@ -6,7 +6,10 @@ # # :: # -# 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) +# ) # # # diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 9c39a11..716f229 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) -set(CMake_VERSION_MINOR 0) -set(CMake_VERSION_PATCH 20141014) -#set(CMake_VERSION_RC 1) +set(CMake_VERSION_MINOR 1) +set(CMake_VERSION_PATCH 0) +set(CMake_VERSION_RC 1) diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx index 5515f35..fe32dd5 100644 --- a/Source/cmDefinitions.cxx +++ b/Source/cmDefinitions.cxx @@ -29,7 +29,7 @@ void cmDefinitions::Reset(cmDefinitions* parent) //---------------------------------------------------------------------------- cmDefinitions::Def const& -cmDefinitions::GetInternal(const std::string& key) const +cmDefinitions::GetInternal(const std::string& key) { MapType::const_iterator i = this->Map.find(key); if(i != this->Map.end()) @@ -38,8 +38,9 @@ cmDefinitions::GetInternal(const std::string& key) const } if(cmDefinitions* up = this->Up) { - // Query the parent scope. - return up->GetInternal(key); + // Query the parent scope and store the result locally. + Def def = up->GetInternal(key); + return this->Map.insert(MapType::value_type(key, def)).first->second; } return this->NoDef; } @@ -62,26 +63,13 @@ cmDefinitions::SetInternal(const std::string& key, Def const& def) } //---------------------------------------------------------------------------- -const char* cmDefinitions::Get(const std::string& key) const +const char* cmDefinitions::Get(const std::string& key) { Def const& def = this->GetInternal(key); return def.Exists? def.c_str() : 0; } //---------------------------------------------------------------------------- -void cmDefinitions::Pull(const std::string& key) -{ - if (this->Up) - { - Def const& def = this->Up->GetInternal(key); - if (def.Exists) - { - this->SetInternal(key, def); - } - } -} - -//---------------------------------------------------------------------------- const char* cmDefinitions::Set(const std::string& key, const char* value) { Def const& def = this->SetInternal(key, Def(value)); diff --git a/Source/cmDefinitions.h b/Source/cmDefinitions.h index 5209a8b..a2f053f 100644 --- a/Source/cmDefinitions.h +++ b/Source/cmDefinitions.h @@ -36,11 +36,9 @@ public: /** Returns the parent scope, if any. */ cmDefinitions* GetParent() const { return this->Up; } - /** Get the value associated with a key; null if none. */ - const char* Get(const std::string& key) const; - - /** Pull a variable from the parent. */ - void Pull(const std::string& key); + /** Get the value associated with a key; null if none. + Store the result locally if it came from a parent. */ + const char* Get(const std::string& key); /** Set (or unset if null) a value associated with a key. */ const char* Set(const std::string& key, const char* value); @@ -82,7 +80,7 @@ private: MapType Map; // Internal query and update methods. - Def const& GetInternal(const std::string& key) const; + Def const& GetInternal(const std::string& key); Def const& SetInternal(const std::string& key, Def const& def); // Implementation of Closure() method. diff --git a/Source/cmGlobalBorlandMakefileGenerator.h b/Source/cmGlobalBorlandMakefileGenerator.h index 470dea4..120d2f8 100644 --- a/Source/cmGlobalBorlandMakefileGenerator.h +++ b/Source/cmGlobalBorlandMakefileGenerator.h @@ -39,7 +39,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 6a4adc0..ae0e807 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -318,7 +318,7 @@ void cmGlobalGenerator::FindMakeProgram(cmMakefile* mf) // will run xcodebuild and if it sees the error text file busy // it will stop forwarding output, and let the build finish. // Then it will retry the build. It will continue this - // untill no text file busy errors occur. + // until no text file busy errors occur. std::string cmakexbuild = this->CMakeInstance->GetCacheManager()->GetCacheValue("CMAKE_COMMAND"); cmakexbuild = cmakexbuild.substr(0, cmakexbuild.length()-5); @@ -1008,9 +1008,9 @@ void cmGlobalGenerator::SetLanguageEnabledMaps(const std::string& l, if (sscanf(linkerPref, "%d", &preference)!=1) { // backward compatibility: before 2.6 LINKER_PREFERENCE - // was either "None" or "Prefered", and only the first character was + // was either "None" or "Preferred", and only the first character was // tested. So if there is a custom language out there and it is - // "Prefered", set its preference high + // "Preferred", set its preference high if (linkerPref[0]=='P') { preference = 100; diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index f166789..ddd7e91 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -39,7 +39,7 @@ class cmExportBuildFileGenerator; class cmQtAutoGenerators; /** \class cmGlobalGenerator - * \brief Responable for overseeing the generation process for the entire tree + * \brief Responsible for overseeing the generation process for the entire tree * * Subclasses of this class generate makefiles for various * platforms. @@ -94,7 +94,7 @@ public: void ClearEnabledLanguages(); void GetEnabledLanguages(std::vector<std::string>& lang) const; /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, @@ -108,7 +108,7 @@ public: bool optional) const; /** - * Try to determine system infomation, get it from another generator + * Try to determine system information, get it from another generator */ virtual void EnableLanguagesFromGenerator(cmGlobalGenerator *gen, cmMakefile* mf); @@ -198,7 +198,7 @@ public: std::string GetLanguageFromExtension(const char* ext) const; ///! is an extension to be ignored bool IgnoreFile(const char* ext) const; - ///! What is the preference for linkers and this language (None or Prefered) + ///! What is the preference for linkers and this language (None or Preferred) int GetLinkerPreference(const std::string& lang) const; ///! What is the object file extension for a given source file? std::string GetLanguageOutputExtension(cmSourceFile const&) const; diff --git a/Source/cmGlobalJOMMakefileGenerator.h b/Source/cmGlobalJOMMakefileGenerator.h index 344e013..fbb35f3 100644 --- a/Source/cmGlobalJOMMakefileGenerator.h +++ b/Source/cmGlobalJOMMakefileGenerator.h @@ -40,7 +40,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmGlobalMSYSMakefileGenerator.h b/Source/cmGlobalMSYSMakefileGenerator.h index c4825bd..baecde7 100644 --- a/Source/cmGlobalMSYSMakefileGenerator.h +++ b/Source/cmGlobalMSYSMakefileGenerator.h @@ -39,7 +39,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmGlobalMinGWMakefileGenerator.h b/Source/cmGlobalMinGWMakefileGenerator.h index 4289422..fa8d9f2 100644 --- a/Source/cmGlobalMinGWMakefileGenerator.h +++ b/Source/cmGlobalMinGWMakefileGenerator.h @@ -38,7 +38,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmGlobalNMakeMakefileGenerator.h b/Source/cmGlobalNMakeMakefileGenerator.h index 2ff44e3..e7b03dd 100644 --- a/Source/cmGlobalNMakeMakefileGenerator.h +++ b/Source/cmGlobalNMakeMakefileGenerator.h @@ -38,7 +38,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index a192eee..f666ee3 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -337,7 +337,7 @@ private: std::string ninjaCmd() const; - /// The file containing the build statement. (the relation ship of the + /// The file containing the build statement. (the relationship of the /// compilation DAG). cmGeneratedFileStream* BuildFileStream; /// The file containing the rule statements. (The action attached to each diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h index f44dd12..c61c36e 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.h +++ b/Source/cmGlobalUnixMakefileGenerator3.h @@ -71,7 +71,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index 3af7b51..686dcdf 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -49,7 +49,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmGlobalVisualStudio6Generator.h b/Source/cmGlobalVisualStudio6Generator.h index 57c2660..58efb25 100644 --- a/Source/cmGlobalVisualStudio6Generator.h +++ b/Source/cmGlobalVisualStudio6Generator.h @@ -42,7 +42,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmGlobalVisualStudio7Generator.h b/Source/cmGlobalVisualStudio7Generator.h index 04a74db..201a6a6 100644 --- a/Source/cmGlobalVisualStudio7Generator.h +++ b/Source/cmGlobalVisualStudio7Generator.h @@ -52,7 +52,7 @@ public: static void GetDocumentation(cmDocumentationEntry& entry); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmGlobalVisualStudio9Generator.h b/Source/cmGlobalVisualStudio9Generator.h index c24d5fe..0a191cd 100644 --- a/Source/cmGlobalVisualStudio9Generator.h +++ b/Source/cmGlobalVisualStudio9Generator.h @@ -32,7 +32,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void WriteSLNHeader(std::ostream& fout); diff --git a/Source/cmGlobalWatcomWMakeGenerator.h b/Source/cmGlobalWatcomWMakeGenerator.h index 2057a42..0e577b5 100644 --- a/Source/cmGlobalWatcomWMakeGenerator.h +++ b/Source/cmGlobalWatcomWMakeGenerator.h @@ -38,7 +38,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index 4fe04fc..9d7b784 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h @@ -44,7 +44,7 @@ public: virtual cmLocalGenerator *CreateLocalGenerator(); /** - * Try to determine system infomation such as shared library + * Try to determine system information such as shared library * extension, pthreads, byte order etc. */ virtual void EnableLanguage(std::vector<std::string>const& languages, diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 8806205..0bd1624 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -4476,7 +4476,7 @@ void cmMakefile::RaiseScope(const std::string& var, const char *varDef) if(cmDefinitions* up = cur.GetParent()) { // First localize the definition in the current scope. - cur.Pull(var); + cur.Get(var); // Now update the definition in the parent scope. up->Set(var, varDef); diff --git a/Tests/ExternalProject/CMakeLists.txt b/Tests/ExternalProject/CMakeLists.txt index 2f74121..d2fa86a 100644 --- a/Tests/ExternalProject/CMakeLists.txt +++ b/Tests/ExternalProject/CMakeLists.txt @@ -372,6 +372,13 @@ if(HG_EXECUTABLE) set(do_hg_tests 1) endif() +if(do_hg_tests AND NOT UNIX) + if("${HG_EXECUTABLE}" MATCHES "cygwin") + message(STATUS "No ExternalProject hg tests with cygwin hg outside cygwin!") + set(do_hg_tests 0) + endif() +endif() + if(do_hg_tests) set(local_hg_repo "../../LocalRepositories/HG") diff --git a/Tests/RunCMake/set/ParentPulling-stderr.txt b/Tests/RunCMake/set/ParentPulling-stderr.txt new file mode 100644 index 0000000..768549b --- /dev/null +++ b/Tests/RunCMake/set/ParentPulling-stderr.txt @@ -0,0 +1,3 @@ +^before PARENT_SCOPE blah=value2 +after PARENT_SCOPE blah=value2 +in parent scope, blah=value2$ diff --git a/Tests/RunCMake/set/ParentPulling.cmake b/Tests/RunCMake/set/ParentPulling.cmake new file mode 100644 index 0000000..2614533 --- /dev/null +++ b/Tests/RunCMake/set/ParentPulling.cmake @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.0) +project(Minimal NONE) + +function(test_set) + set(blah "value2") + message("before PARENT_SCOPE blah=${blah}") + set(blah ${blah} PARENT_SCOPE) + message("after PARENT_SCOPE blah=${blah}") +endfunction() + +set(blah value1) +test_set() +message("in parent scope, blah=${blah}") diff --git a/Tests/RunCMake/set/ParentPullingRecursive-stderr.txt b/Tests/RunCMake/set/ParentPullingRecursive-stderr.txt new file mode 100644 index 0000000..f3260ae --- /dev/null +++ b/Tests/RunCMake/set/ParentPullingRecursive-stderr.txt @@ -0,0 +1,144 @@ +---------- +variable values at top before calls: +top_implicit_inner_set: -->top<-- +top_implicit_inner_unset: <undefined> +top_explicit_inner_set: -->top<-- +top_explicit_inner_unset: <undefined> +top_explicit_inner_tounset: -->top<-- +top_implicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_tounset: -->top<-- +outer_implicit_inner_set: <undefined> +outer_implicit_inner_unset: <undefined> +outer_explicit_inner_set: <undefined> +outer_explicit_inner_unset: <undefined> +outer_explicit_inner_tounset: <undefined> +---------- +---------- +variable values at outer start: +top_implicit_inner_set: -->top<-- +top_implicit_inner_unset: <undefined> +top_explicit_inner_set: -->top<-- +top_explicit_inner_unset: <undefined> +top_explicit_inner_tounset: -->top<-- +top_implicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_tounset: -->top<-- +outer_implicit_inner_set: <undefined> +outer_implicit_inner_unset: <undefined> +outer_explicit_inner_set: <undefined> +outer_explicit_inner_unset: <undefined> +outer_explicit_inner_tounset: <undefined> +---------- +---------- +variable values at outer before inner: +top_implicit_inner_set: -->top<-- +top_implicit_inner_unset: <undefined> +top_explicit_inner_set: -->top<-- +top_explicit_inner_unset: <undefined> +top_explicit_inner_tounset: -->top<-- +top_implicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_tounset: -->top<-- +outer_implicit_inner_set: -->outer<-- +outer_implicit_inner_unset: <undefined> +outer_explicit_inner_set: -->outer<-- +outer_explicit_inner_unset: <undefined> +outer_explicit_inner_tounset: -->outer<-- +---------- +---------- +variable values at inner start: +top_implicit_inner_set: -->top<-- +top_implicit_inner_unset: <undefined> +top_explicit_inner_set: -->top<-- +top_explicit_inner_unset: <undefined> +top_explicit_inner_tounset: -->top<-- +top_implicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_tounset: -->top<-- +outer_implicit_inner_set: -->outer<-- +outer_implicit_inner_unset: <undefined> +outer_explicit_inner_set: -->outer<-- +outer_explicit_inner_unset: <undefined> +outer_explicit_inner_tounset: -->outer<-- +---------- +---------- +variable values at inner end: +top_implicit_inner_set: -->top<-- +top_implicit_inner_unset: <undefined> +top_explicit_inner_set: -->top<-- +top_explicit_inner_unset: <undefined> +top_explicit_inner_tounset: -->top<-- +top_implicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_tounset: -->top<-- +outer_implicit_inner_set: -->outer<-- +outer_implicit_inner_unset: <undefined> +outer_explicit_inner_set: -->outer<-- +outer_explicit_inner_unset: <undefined> +outer_explicit_inner_tounset: -->outer<-- +---------- +---------- +variable values at outer after inner: +top_implicit_inner_set: -->top<-- +top_implicit_inner_unset: <undefined> +top_explicit_inner_set: -->inner<-- +top_explicit_inner_unset: -->inner<-- +top_explicit_inner_tounset: <undefined> +top_implicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_tounset: -->top<-- +outer_implicit_inner_set: -->outer<-- +outer_implicit_inner_unset: <undefined> +outer_explicit_inner_set: -->inner<-- +outer_explicit_inner_unset: -->inner<-- +outer_explicit_inner_tounset: <undefined> +---------- +---------- +variable values at outer end: +top_implicit_inner_set: -->top<-- +top_implicit_inner_unset: <undefined> +top_explicit_inner_set: -->inner<-- +top_explicit_inner_unset: -->inner<-- +top_explicit_inner_tounset: <undefined> +top_implicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_set: -->top<-- +top_explicit_outer_unset: <undefined> +top_explicit_outer_tounset: -->top<-- +outer_implicit_inner_set: -->outer<-- +outer_implicit_inner_unset: <undefined> +outer_explicit_inner_set: -->inner<-- +outer_explicit_inner_unset: -->inner<-- +outer_explicit_inner_tounset: <undefined> +---------- +---------- +variable values at top after calls: +top_implicit_inner_set: -->top<-- +top_implicit_inner_unset: <undefined> +top_explicit_inner_set: -->outer<-- +top_explicit_inner_unset: -->outer<-- +top_explicit_inner_tounset: <undefined> +top_implicit_outer_set: -->top<-- +top_explicit_outer_unset: -->outer<-- +top_explicit_outer_set: -->outer<-- +top_explicit_outer_unset: -->outer<-- +top_explicit_outer_tounset: <undefined> +outer_implicit_inner_set: <undefined> +outer_implicit_inner_unset: <undefined> +outer_explicit_inner_set: <undefined> +outer_explicit_inner_unset: <undefined> +outer_explicit_inner_tounset: <undefined> +---------- diff --git a/Tests/RunCMake/set/ParentPullingRecursive.cmake b/Tests/RunCMake/set/ParentPullingRecursive.cmake new file mode 100644 index 0000000..a3e29f5 --- /dev/null +++ b/Tests/RunCMake/set/ParentPullingRecursive.cmake @@ -0,0 +1,104 @@ +cmake_minimum_required(VERSION 3.0) +project(Minimal NONE) + +function(report where) + message("----------") + message("variable values at ${where}:") + foreach(var IN ITEMS + top_implicit_inner_set top_implicit_inner_unset + top_explicit_inner_set top_explicit_inner_unset top_explicit_inner_tounset + top_implicit_outer_set top_explicit_outer_unset + top_explicit_outer_set top_explicit_outer_unset top_explicit_outer_tounset + + outer_implicit_inner_set outer_implicit_inner_unset + outer_explicit_inner_set outer_explicit_inner_unset outer_explicit_inner_tounset) + if(DEFINED ${var}) + message("${var}: -->${${var}}<--") + else() + message("${var}: <undefined>") + endif() + endforeach() + message("----------") +endfunction() + +macro(set_values upscope downscope value) + # Pull the value in implicitly. + set(dummy ${${upscope}_implicit_${downscope}_set}) + set(dummy ${${upscope}_implicit_${downscope}_unset}) + # Pull it down explicitly. + set(${upscope}_explicit_${downscope}_set "${value}" PARENT_SCOPE) + set(${upscope}_explicit_${downscope}_unset "${value}" PARENT_SCOPE) + set(${upscope}_explicit_${downscope}_tounset PARENT_SCOPE) +endmacro() + +function(inner) + report("inner start") + + set_values(top inner inner) + set_values(outer inner inner) + + report("inner end") +endfunction() + +function(outer) + report("outer start") + + set_values(top outer outer) + + # Set values for inner to manipulate. + set(outer_implicit_inner_set outer) + set(outer_implicit_inner_unset) + set(outer_explicit_inner_set outer) + set(outer_explicit_inner_unset) + set(outer_explicit_inner_tounset outer) + + report("outer before inner") + + inner() + + report("outer after inner") + + # Do what inner does so that we can test the values that inner should have + # pulled through to here. + set_values(top inner outer) + + report("outer end") +endfunction() + +# variable name is: +# +# <upscope>_<pulltype>_<downscope>_<settype> +# +# where the value is the name of the scope it was set in. The scopes available +# are "top", "outer", and "inner". The pull type may either be "implicit" or +# "explicit" based on whether the pull is due to a variable dereference or a +# PARENT_SCOPE setting. The settype is "set" where both scopes set a value, +# "unset" where upscope unsets it and downscope sets it, and "tounset" where +# upscope sets it and downscope unsets it. +# +# We test the following combinations: +# +# - outer overriding top's values; +# - inner overriding top's values; +# - inner overriding outer's values; and +# - outer overriding inner's values in top after inner has run. + +# Set values for inner to manipulate. +set(top_implicit_inner_set top) +set(top_implicit_inner_unset) +set(top_explicit_inner_set top) +set(top_explicit_inner_unset) +set(top_explicit_inner_tounset top) + +# Set values for outer to manipulate. +set(top_implicit_outer_set top) +set(top_implicit_outer_unset) +set(top_explicit_outer_set top) +set(top_explicit_outer_unset) +set(top_explicit_outer_tounset top) + +report("top before calls") + +outer() + +report("top after calls") diff --git a/Tests/RunCMake/set/RunCMakeTest.cmake b/Tests/RunCMake/set/RunCMakeTest.cmake index 1b51ea2..b8e8cf1 100644 --- a/Tests/RunCMake/set/RunCMakeTest.cmake +++ b/Tests/RunCMake/set/RunCMakeTest.cmake @@ -1,3 +1,5 @@ include(RunCMake) run_cmake(ParentScope) +run_cmake(ParentPulling) +run_cmake(ParentPullingRecursive) diff --git a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_lzop.c b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_lzop.c index 088ecea..c666551 100644 --- a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_lzop.c +++ b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_lzop.c @@ -85,7 +85,7 @@ static int archive_write_lzop_free(struct archive_write_filter *); #if defined(HAVE_LZO_LZOCONF_H) && defined(HAVE_LZO_LZO1X_H) /* Maximum block size. */ #define BLOCK_SIZE (256 * 1024) -/* Block infomation is composed of uncompressed size(4 bytes), +/* Block information is composed of uncompressed size(4 bytes), * compressed size(4 bytes) and the checksum of uncompressed data(4 bytes) * in this lzop writer. */ #define BLOCK_INfO_SIZE 12 diff --git a/Utilities/cmlibarchive/libarchive/archive_write_set_format_mtree.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_mtree.c index 4d343ea..b0c8018 100644 --- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_mtree.c +++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_mtree.c @@ -1115,7 +1115,7 @@ write_mtree_entry_tree(struct archive_write *a) do { if (mtree->output_global_set) { /* - * Collect attribute infomation to know which value + * Collect attribute information to know which value * is frequently used among the children. */ attr_counter_set_reset(mtree); |