From ed9763136acdb8594e4b85ab7b2e4e2828d8b775 Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 26 Oct 2012 08:25:36 -0400 Subject: Optionally skip link dependencies on shared library files Add target property LINK_DEPENDS_NO_SHARED and initialization variable CMAKE_LINK_DEPENDS_NO_SHARED to enable this behavior. Suggested-by: Leif Walsh --- Source/cmComputeLinkInformation.cxx | 10 +++++++++- Source/cmComputeLinkInformation.h | 1 + Source/cmDocumentVariables.cxx | 9 +++++++++ Source/cmTarget.cxx | 17 +++++++++++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx index cd3ef59..d8ffb5e 100644 --- a/Source/cmComputeLinkInformation.cxx +++ b/Source/cmComputeLinkInformation.cxx @@ -277,6 +277,10 @@ cmComputeLinkInformation this->UseImportLibrary = this->Makefile->GetDefinition("CMAKE_IMPORT_LIBRARY_SUFFIX")?true:false; + // Check whether we should skip dependencies on shared library files. + this->LinkDependsNoShared = + this->Target->GetPropertyAsBool("LINK_DEPENDS_NO_SHARED"); + // On platforms without import libraries there may be a special flag // to use when creating a plugin (module) that obtains symbols from // the program that will load it. @@ -650,7 +654,11 @@ void cmComputeLinkInformation::AddItem(std::string const& item, cmTarget* tgt) // Pass the full path to the target file. std::string lib = tgt->GetFullPath(config, implib, true); - this->Depends.push_back(lib); + if(!this->LinkDependsNoShared || + tgt->GetType() != cmTarget::SHARED_LIBRARY) + { + this->Depends.push_back(lib); + } this->AddTargetItem(lib, tgt); this->AddLibraryRuntimeInfo(lib, tgt); diff --git a/Source/cmComputeLinkInformation.h b/Source/cmComputeLinkInformation.h index f60f8d3..e0078af 100644 --- a/Source/cmComputeLinkInformation.h +++ b/Source/cmComputeLinkInformation.h @@ -82,6 +82,7 @@ private: // Configuration information. const char* Config; const char* LinkLanguage; + bool LinkDependsNoShared; // Modes for dealing with dependent shared libraries. enum SharedDepMode diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx index 8db0e8f..55d70f8 100644 --- a/Source/cmDocumentVariables.cxx +++ b/Source/cmDocumentVariables.cxx @@ -1222,6 +1222,15 @@ void cmDocumentVariables::DefineVariables(cmake* cm) "Variables that Control the Build"); cm->DefineProperty + ("CMAKE_LINK_DEPENDS_NO_SHARED", cmProperty::VARIABLE, + "Whether to skip link dependencies on shared library files.", + "This variable initializes the LINK_DEPENDS_NO_SHARED " + "property on targets when they are created. " + "See that target property for additional information.", + false, + "Variables that Control the Build"); + + cm->DefineProperty ("CMAKE_AUTOMOC", cmProperty::VARIABLE, "Whether to handle moc automatically for Qt targets.", "This variable is used to initialize the " diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 423b350..9cfcb63 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -651,6 +651,22 @@ void cmTarget::DefineProperties(cmake *cm) "custom Makefile link rules."); cm->DefineProperty + ("LINK_DEPENDS_NO_SHARED", cmProperty::TARGET, + "Do not depend on linked shared library files.", + "Set this property to true to tell CMake generators not to add " + "file-level dependencies on the shared library files linked by " + "this target. " + "Modification to the shared libraries will not be sufficient to " + "re-link this target. " + "Logical target-level dependencies will not be affected so the " + "linked shared libraries will still be brought up to date before " + "this target is built." + "\n" + "This property is initialized by the value of the variable " + "CMAKE_LINK_DEPENDS_NO_SHARED if it is set when a target is " + "created."); + + cm->DefineProperty ("LINK_INTERFACE_LIBRARIES", cmProperty::TARGET, "List public interface libraries for a shared library or executable.", "By default linking to a shared library target transitively " @@ -1314,6 +1330,7 @@ void cmTarget::SetMakefile(cmMakefile* mf) this->SetPropertyDefault("OSX_ARCHITECTURES", 0); this->SetPropertyDefault("AUTOMOC", 0); this->SetPropertyDefault("AUTOMOC_MOC_OPTIONS", 0); + this->SetPropertyDefault("LINK_DEPENDS_NO_SHARED", 0); this->SetPropertyDefault("LINK_INTERFACE_LIBRARIES", 0); this->SetPropertyDefault("WIN32_EXECUTABLE", 0); this->SetPropertyDefault("MACOSX_BUNDLE", 0); -- cgit v0.12 From d0758290e78046ac0d8cf91e3456369cc4c43999 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Fri, 8 Jun 2012 18:29:34 -0400 Subject: ExternalProject: Only run 'git fetch' when required. In the current default update step for Git under the ExternalProject_Add command, a 'git fetch' is always performed, followed by a 'git checkout' and 'git submodule update --recursive'. However, a 'git fetch' can be time consuming and requires a network connection. To save time, we look at the current checked out hash, and only perform the fetch if required. This is performed in a CMake script so we can handle the conditional logic in a cross platform manner. --- Modules/ExternalProject.cmake | 70 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 65 insertions(+), 5 deletions(-) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 8d57860..7a8aa5f 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -402,6 +402,66 @@ endif() endfunction() +function(_ep_write_gitupdate_script script_filename git_EXECUTABLE git_tag git_repository work_dir) + file(WRITE ${script_filename} +"if(\"${git_tag}\" STREQUAL \"\") + message(FATAL_ERROR \"Tag for git checkout should not be empty.\") +endif() + +execute_process( + COMMAND \"${git_EXECUTABLE}\" rev-list --max-count=1 HEAD + WORKING_DIRECTORY \"${work_dir}\" + RESULT_VARIABLE error_code + OUTPUT_VARIABLE head_sha + ) +if(error_code) + message(FATAL_ERROR \"Failed to get the hash for HEAD\") +endif() + +# This will fail if the tag does not exist (it probably has not been fetched +# yet). +execute_process( + COMMAND \"${git_EXECUTABLE}\" rev-list --max-count=1 ${git_tag} + WORKING_DIRECTORY \"${work_dir}\" + RESULT_VARIABLE error_code + OUTPUT_VARIABLE tag_sha + ) + +# Is the hash checkout out that we want? +if(error_code OR NOT (\"\${tag_sha}\" STREQUAL \"\${head_sha}\")) + execute_process( + COMMAND \"${git_EXECUTABLE}\" fetch + WORKING_DIRECTORY \"${work_dir}\" + RESULT_VARIABLE error_code + ) + if(error_code) + message(FATAL_ERROR \"Failed to fetch repository '${git_repository}'\") + endif() + + execute_process( + COMMAND \"${git_EXECUTABLE}\" checkout ${git_tag} + WORKING_DIRECTORY \"${work_dir}\" + RESULT_VARIABLE error_code + ) + if(error_code) + message(FATAL_ERROR \"Failed to checkout tag: '${git_tag}'\") + endif() + + execute_process( + COMMAND \"${git_EXECUTABLE}\" submodule update --recursive + WORKING_DIRECTORY \"${work_dir}/${src_name}\" + RESULT_VARIABLE error_code + ) + if(error_code) + message(FATAL_ERROR \"Failed to update submodules in: '${work_dir}/${src_name}'\") + endif() +endif() + +" +) + +endfunction(_ep_write_gitupdate_script) + function(_ep_write_downloadfile_script script_filename remote local timeout hash tls_verify tls_cainfo) if(timeout) set(timeout_args TIMEOUT ${timeout}) @@ -1354,7 +1414,7 @@ endfunction() function(_ep_add_update_command name) - ExternalProject_Get_Property(${name} source_dir) + ExternalProject_Get_Property(${name} source_dir tmp_dir) get_property(cmd_set TARGET ${name} PROPERTY _EP_UPDATE_COMMAND SET) get_property(cmd TARGET ${name} PROPERTY _EP_UPDATE_COMMAND) @@ -1406,15 +1466,15 @@ function(_ep_add_update_command name) message(FATAL_ERROR "error: could not find git for fetch of ${name}") endif() set(work_dir ${source_dir}) - set(comment "Performing update step (git fetch) for '${name}'") + set(comment "Performing update step for '${name}'") get_property(git_tag TARGET ${name} PROPERTY _EP_GIT_TAG) if(NOT git_tag) set(git_tag "master") endif() - set(cmd ${GIT_EXECUTABLE} fetch - COMMAND ${GIT_EXECUTABLE} checkout ${git_tag} - COMMAND ${GIT_EXECUTABLE} submodule update --recursive + _ep_write_gitupdate_script(${tmp_dir}/${name}-gitupdate.cmake + ${GIT_EXECUTABLE} ${git_tag} ${git_repository} ${work_dir} ) + set(cmd ${CMAKE_COMMAND} -P ${tmp_dir}/${name}-gitupdate.cmake) set(always 1) elseif(hg_repository) if(NOT HG_EXECUTABLE) -- cgit v0.12 From 378aa127b4f335af77ddfe132e03343d8709c148 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 26 Jul 2012 18:24:41 +0000 Subject: ExternalProject: Do smoke tests for Git Tutorial builds. --- Tests/ExternalProject/CMakeLists.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Tests/ExternalProject/CMakeLists.txt b/Tests/ExternalProject/CMakeLists.txt index 3f8e827..e24a979 100644 --- a/Tests/ExternalProject/CMakeLists.txt +++ b/Tests/ExternalProject/CMakeLists.txt @@ -638,6 +638,17 @@ if(do_svn_tests) "${binary_base}/TutorialStep1-SVN-trunk/Tutorial" 98) endif() +if(do_git_tests) + add_test(TutorialStep1-GIT-byhash + "${binary_base}/TutorialStep1-GIT-byhash/Tutorial" 100) + + add_test(TutorialStep1-GIT-bytag + "${binary_base}/TutorialStep1-GIT-bytag/Tutorial" 99) + + add_test(TutorialStep1-GIT-master + "${binary_base}/TutorialStep1-GIT-master/Tutorial" 98) +endif() + # InstallTree tests: # -- cgit v0.12 From bd8bdb6fddcf45bdd558158e9129a5dbeef47a07 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Wed, 7 Nov 2012 13:45:30 +0100 Subject: Resolve warnings about unused variables. --- Source/cmGlobalVisualStudio6Generator.cxx | 1 - Source/cmLocalVisualStudioGenerator.cxx | 1 - Source/cmNinjaNormalTargetGenerator.cxx | 1 + Source/cmVisualStudio10TargetGenerator.cxx | 1 - 4 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Source/cmGlobalVisualStudio6Generator.cxx b/Source/cmGlobalVisualStudio6Generator.cxx index e8ca788..0ec4850 100644 --- a/Source/cmGlobalVisualStudio6Generator.cxx +++ b/Source/cmGlobalVisualStudio6Generator.cxx @@ -200,7 +200,6 @@ void cmGlobalVisualStudio6Generator tt != orderedProjectTargets.end(); ++tt) { cmTarget* target = *tt; - cmMakefile* mf = target->GetMakefile(); // Write the project into the DSW file const char* expath = target->GetProperty("EXTERNAL_MSPROJECT"); if(expath) diff --git a/Source/cmLocalVisualStudioGenerator.cxx b/Source/cmLocalVisualStudioGenerator.cxx index 4bcf4de..ef2bb1d 100644 --- a/Source/cmLocalVisualStudioGenerator.cxx +++ b/Source/cmLocalVisualStudioGenerator.cxx @@ -84,7 +84,6 @@ cmLocalVisualStudioGenerator const char* newline_text) { bool useLocal = this->CustomCommandUseLocal(); - const cmCustomCommandLines& commandLines = cc.GetCommandLines(); const char* workingDirectory = cc.GetWorkingDirectory(); cmCustomCommandGenerator ccg(cc, configName, this->Makefile); RelativeRoot relativeRoot = workingDirectory? NONE : START_OUTPUT; diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 6c54ced..853bc12 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -564,6 +564,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() // for instance ARG_MAX is 2096152 on Ubuntu or 262144 on Mac commandLineLengthLimit = ((int)sysconf(_SC_ARG_MAX))-linkRuleLength-1000; #else + (void)linkRuleLength; commandLineLengthLimit = -1; #endif } diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index def4133..d55d573 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -907,7 +907,6 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags( cmSourceFile* source) { cmSourceFile& sf = *source; - cmLocalVisualStudio7Generator* lg = this->LocalGenerator; std::string objectName; if(this->GeneratorTarget->ExplicitObjectName.find(&sf) -- cgit v0.12 From d2d43986e7f5013465473a71c393fc3897cecbac Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 1 Nov 2012 08:32:52 -0400 Subject: load_command: Deprecate and document pending removal This command works only when building projects using the same architecture as the running CMake binary. Since it was introduced CMake has learned macro() and function() to add commands, and the execute_process() command to launch advanced external computations. Add a RunCMake.load_command test to verify the warning appears. --- Source/cmLoadCommandCommand.cxx | 4 ++++ Source/cmLoadCommandCommand.h | 15 ++++++++++++++- Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/load_command/CMakeLists.txt | 3 +++ .../load_command/LoadCommandDeprecated-stderr.txt | 6 ++++++ Tests/RunCMake/load_command/LoadCommandDeprecated.cmake | 1 + Tests/RunCMake/load_command/RunCMakeTest.cmake | 3 +++ 7 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 Tests/RunCMake/load_command/CMakeLists.txt create mode 100644 Tests/RunCMake/load_command/LoadCommandDeprecated-stderr.txt create mode 100644 Tests/RunCMake/load_command/LoadCommandDeprecated.cmake create mode 100644 Tests/RunCMake/load_command/RunCMakeTest.cmake diff --git a/Source/cmLoadCommandCommand.cxx b/Source/cmLoadCommandCommand.cxx index b2acf06..181b922 100644 --- a/Source/cmLoadCommandCommand.cxx +++ b/Source/cmLoadCommandCommand.cxx @@ -224,6 +224,10 @@ cmLoadedCommand::~cmLoadedCommand() bool cmLoadCommandCommand ::InitialPass(std::vector const& args, cmExecutionStatus &) { + this->Makefile->IssueMessage( + cmake::AUTHOR_WARNING, + "The \"load_command\" command will be removed in CMake 3.0. " + "See command documentation for details."); if(args.size() < 1 ) { return true; diff --git a/Source/cmLoadCommandCommand.h b/Source/cmLoadCommandCommand.h index f0b34ee..bcd1831 100644 --- a/Source/cmLoadCommandCommand.h +++ b/Source/cmLoadCommandCommand.h @@ -47,7 +47,7 @@ public: */ virtual const char* GetTerseDocumentation() const { - return "Load a command into a running CMake."; + return "Deprecated. Use macro() or function() instead."; } /** @@ -56,6 +56,13 @@ public: virtual const char* GetFullDocumentation() const { return + "This command will be removed in CMake 3.0. " + "It works only when the target architecture matches the " + "running CMake binary. " + "Use macro() or function() to add commands. " + "Use execute_process() to run advanced computations " + "in external processes." + "\n" " load_command(COMMAND_NAME [loc2 ...])\n" "The given locations are searched for a library whose name is " "cmCOMMAND_NAME. If found, it is loaded as a module and the command " @@ -67,6 +74,12 @@ public: "Otherwise the variable will not be set."; } + /** This command is kept for compatibility with older CMake versions. */ + virtual bool IsDiscouraged() const + { + return true; + } + cmTypeMacro(cmLoadCommandCommand, cmCommand); }; diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 3ea54f1..a484983 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -53,6 +53,7 @@ add_RunCMake_test(build_command) add_RunCMake_test(find_package) add_RunCMake_test(include) add_RunCMake_test(list) +add_RunCMake_test(load_command) if("${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio [^6]") add_RunCMake_test(include_external_msproject) diff --git a/Tests/RunCMake/load_command/CMakeLists.txt b/Tests/RunCMake/load_command/CMakeLists.txt new file mode 100644 index 0000000..e8db6b0 --- /dev/null +++ b/Tests/RunCMake/load_command/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 2.8) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/load_command/LoadCommandDeprecated-stderr.txt b/Tests/RunCMake/load_command/LoadCommandDeprecated-stderr.txt new file mode 100644 index 0000000..7d374b2 --- /dev/null +++ b/Tests/RunCMake/load_command/LoadCommandDeprecated-stderr.txt @@ -0,0 +1,6 @@ +CMake Warning \(dev\) at LoadCommandDeprecated.cmake:1 \(load_command\): + The "load_command" command will be removed in CMake 3.0. See command + documentation for details. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) +This warning is for project developers. Use -Wno-dev to suppress it. diff --git a/Tests/RunCMake/load_command/LoadCommandDeprecated.cmake b/Tests/RunCMake/load_command/LoadCommandDeprecated.cmake new file mode 100644 index 0000000..9e9b1f4 --- /dev/null +++ b/Tests/RunCMake/load_command/LoadCommandDeprecated.cmake @@ -0,0 +1 @@ +load_command() diff --git a/Tests/RunCMake/load_command/RunCMakeTest.cmake b/Tests/RunCMake/load_command/RunCMakeTest.cmake new file mode 100644 index 0000000..9a0f98d --- /dev/null +++ b/Tests/RunCMake/load_command/RunCMakeTest.cmake @@ -0,0 +1,3 @@ +include(RunCMake) + +run_cmake(LoadCommandDeprecated) -- cgit v0.12 From b58fd6569a57213299762a9ca04569650e9b7ffa Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Wed, 7 Nov 2012 17:48:53 +0100 Subject: Squish: fix new squish_v4_add_test() macro The OUTPUT_NAME target property only returns something if it has been explicitely set. So use LOCATION, and extract the filename from that. Alex --- Modules/FindSquish.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/FindSquish.cmake b/Modules/FindSquish.cmake index ad72958..b797805 100644 --- a/Modules/FindSquish.cmake +++ b/Modules/FindSquish.cmake @@ -221,7 +221,7 @@ function(SQUISH_V4_ADD_TEST testName) get_target_property(testAUTLocation ${_SQUISH_AUT} LOCATION) get_filename_component(testAUTDir ${testAUTLocation} PATH) - get_target_property(testAUTName ${_SQUISH_AUT} OUTPUT_NAME) + get_filename_component(testAUTName ${testAUTLocation} NAME) get_filename_component(absTestSuite "${_SQUISH_SUITE}" ABSOLUTE) if(NOT EXISTS "${absTestSuite}") -- cgit v0.12 From 965de974b24ecafc420885eff68a3917471ff181 Mon Sep 17 00:00:00 2001 From: Andreas Mohr Date: Wed, 7 Nov 2012 14:17:32 +0100 Subject: Documentation: Correct typos and grammar --- Source/cmConfigureFileCommand.h | 2 +- Source/cmFunctionCommand.h | 2 +- Source/cmMacroCommand.h | 2 +- Source/cmMathCommand.h | 4 ++-- Source/cmPolicies.cxx | 2 +- Source/cmSourceFile.cxx | 2 +- Source/cmSourceGroupCommand.h | 2 +- Source/cmTargetLinkLibrariesCommand.h | 4 ++-- Source/cmTryRunCommand.h | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Source/cmConfigureFileCommand.h b/Source/cmConfigureFileCommand.h index 347174a..a5b44d1 100644 --- a/Source/cmConfigureFileCommand.h +++ b/Source/cmConfigureFileCommand.h @@ -76,7 +76,7 @@ public: "will be C-style escaped. " "The file will be configured with the current values of CMake " "variables. If @ONLY is specified, only variables " - "of the form @VAR@ will be replaces and ${VAR} will be ignored. " + "of the form @VAR@ will be replaced and ${VAR} will be ignored. " "This is useful for configuring scripts that use ${VAR}. " "Any occurrences of #cmakedefine VAR will be replaced with " "either #define VAR or /* #undef VAR */ depending on " diff --git a/Source/cmFunctionCommand.h b/Source/cmFunctionCommand.h index 730a7a7..0c0fd26 100644 --- a/Source/cmFunctionCommand.h +++ b/Source/cmFunctionCommand.h @@ -90,7 +90,7 @@ public: "will have the actual values of the arguments passed in. This " "facilitates creating functions with optional arguments. Additionally " "ARGV holds the list of all arguments given to the function and ARGN " - "holds the list of argument past the last expected argument." + "holds the list of arguments past the last expected argument." "\n" "See the cmake_policy() command documentation for the behavior of " "policies inside functions." diff --git a/Source/cmMacroCommand.h b/Source/cmMacroCommand.h index f8c40c0..2cf0e5b 100644 --- a/Source/cmMacroCommand.h +++ b/Source/cmMacroCommand.h @@ -92,7 +92,7 @@ public: "facilitates creating macros with optional arguments. Additionally " "${ARGV} holds the list of all arguments given to the macro and " "${ARGN} " - "holds the list of argument past the last expected argument. " + "holds the list of arguments past the last expected argument. " "Note that the parameters to a macro and values such as ARGN " "are not variables in the usual CMake sense. They are string " "replacements much like the c preprocessor would do with a " diff --git a/Source/cmMathCommand.h b/Source/cmMathCommand.h index 27c5b6a..dc0ceb3 100644 --- a/Source/cmMathCommand.h +++ b/Source/cmMathCommand.h @@ -58,11 +58,11 @@ public: { return " math(EXPR )\n" - "EXPR evaluates mathematical expression and return result in the " + "EXPR evaluates mathematical expression and returns result in the " "output variable. Example mathematical expression is " "'5 * ( 10 + 13 )'. Supported operators are " "+ - * / % | & ^ ~ << >> * / %. They have the same meaning " - " as they do in c code."; + " as they do in C code."; } cmTypeMacro(cmMathCommand, cmCommand); diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx index 79af4d7..6aef502 100644 --- a/Source/cmPolicies.cxx +++ b/Source/cmPolicies.cxx @@ -457,7 +457,7 @@ cmPolicies::cmPolicies() "This makes sure that the modules belonging to " "CMake always get those files included which they expect, and against " "which they were developed and tested. " - "In call other cases, the files found in " + "In all other cases, the files found in " "CMAKE_MODULE_PATH still take precedence over the ones in " "the CMake module directory. " "The OLD behaviour is to always prefer files from CMAKE_MODULE_PATH over " diff --git a/Source/cmSourceFile.cxx b/Source/cmSourceFile.cxx index cc3b6d6..1d4b0c8 100644 --- a/Source/cmSourceFile.cxx +++ b/Source/cmSourceFile.cxx @@ -458,7 +458,7 @@ void cmSourceFile::DefineProperties(cmake *cm) "A property on a source file that indicates if the source file " "is a header file with no associated implementation. This is " "set automatically based on the file extension and is used by " - "CMake to determine is certain dependency information should be " + "CMake to determine if certain dependency information should be " "computed."); cm->DefineProperty diff --git a/Source/cmSourceGroupCommand.h b/Source/cmSourceGroupCommand.h index 6c87b71..9f6b7e4 100644 --- a/Source/cmSourceGroupCommand.h +++ b/Source/cmSourceGroupCommand.h @@ -68,7 +68,7 @@ public: "expression matches the file will be favored.\n" "The name of the group may contain backslashes to specify subgroups:\n" " source_group(outer\\\\inner ...)\n" - "For backwards compatibility, this command is also supports the " + "For backwards compatibility, this command also supports the " "format:\n" " source_group(name regex)"; } diff --git a/Source/cmTargetLinkLibrariesCommand.h b/Source/cmTargetLinkLibrariesCommand.h index 63114d2..8e5823c 100644 --- a/Source/cmTargetLinkLibrariesCommand.h +++ b/Source/cmTargetLinkLibrariesCommand.h @@ -100,11 +100,11 @@ public: "to the LINK_INTERFACE_LIBRARIES and its per-configuration equivalent " "target properties instead of using them for linking. " "Libraries specified as \"debug\" are appended to the " - "the LINK_INTERFACE_LIBRARIES_DEBUG property (or to the properties " + "LINK_INTERFACE_LIBRARIES_DEBUG property (or to the properties " "corresponding to configurations listed in the DEBUG_CONFIGURATIONS " "global property if it is set). " "Libraries specified as \"optimized\" are appended to the " - "the LINK_INTERFACE_LIBRARIES property. " + "LINK_INTERFACE_LIBRARIES property. " "Libraries specified as \"general\" (or without any keyword) are " "treated as if specified for both \"debug\" and \"optimized\"." "\n" diff --git a/Source/cmTryRunCommand.h b/Source/cmTryRunCommand.h index 7878729..13b9973 100644 --- a/Source/cmTryRunCommand.h +++ b/Source/cmTryRunCommand.h @@ -81,7 +81,7 @@ public: "the executable, but it will not try to run the executable. Instead it " "will create cache variables which must be filled by the user or by " "presetting them in some CMake script file to the values the " - "executable would have produced if it would have been run on its actual " + "executable would have produced if it had been run on its actual " "target platform. These variables are RUN_RESULT_VAR (explanation see " "above) and if RUN_OUTPUT_VARIABLE (or OUTPUT_VARIABLE) was used, an " "additional cache variable " -- cgit v0.12 From 07d5e4b871dae45a3ffcc839965dabf495679e1b Mon Sep 17 00:00:00 2001 From: Andreas Mohr Date: Wed, 7 Nov 2012 17:12:03 +0100 Subject: Documentation: Clarify some command descriptions - file(WRITE): add configure_file() decoupling hint - function(): definitely mention PARENT_SCOPE - include_directories(): mention possible results of SYSTEM setting - macro(): mention scope specifics of function() - message(): improve SEND_ERROR / FATAL_ERROR docs, since people said it's not obvious --- Source/cmFileCommand.h | 3 ++- Source/cmFunctionCommand.h | 2 ++ Source/cmIncludeDirectoryCommand.h | 5 ++++- Source/cmMacroCommand.h | 6 +++--- Source/cmMessageCommand.h | 5 +++-- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Source/cmFileCommand.h b/Source/cmFileCommand.h index b4aa903..a0862ec 100644 --- a/Source/cmFileCommand.h +++ b/Source/cmFileCommand.h @@ -89,7 +89,8 @@ public: " [TIMEOUT timeout] [STATUS status] [LOG log] [SHOW_PROGRESS])\n" "WRITE will write a message into a file called 'filename'. It " "overwrites the file if it already exists, and creates the file " - "if it does not exist.\n" + "if it does not exist. (If the file is a build input, use " + "configure_file to update the file only when its content changes.)\n" "APPEND will write a message into a file same as WRITE, except " "it will append it to the end of the file\n" "READ will read the content of a file and store it into the " diff --git a/Source/cmFunctionCommand.h b/Source/cmFunctionCommand.h index 0c0fd26..0a029dc 100644 --- a/Source/cmFunctionCommand.h +++ b/Source/cmFunctionCommand.h @@ -92,6 +92,8 @@ public: "ARGV holds the list of all arguments given to the function and ARGN " "holds the list of arguments past the last expected argument." "\n" + "A function opens a new scope: see set(var PARENT_SCOPE) for details." + "\n" "See the cmake_policy() command documentation for the behavior of " "policies inside functions." ; diff --git a/Source/cmIncludeDirectoryCommand.h b/Source/cmIncludeDirectoryCommand.h index 6751fc0..dd37b82 100644 --- a/Source/cmIncludeDirectoryCommand.h +++ b/Source/cmIncludeDirectoryCommand.h @@ -72,9 +72,12 @@ public: "CMAKE_INCLUDE_DIRECTORIES_BEFORE to ON. " "By using AFTER or BEFORE explicitly, you can select between " "appending and prepending, independent of the default. " + "\n" "If the SYSTEM option is given, the compiler will be told the " "directories are meant as system include directories on some " - "platforms."; + "platforms (signalling this setting might achieve effects such as " + "the compiler skipping warnings, or these fixed-install system files " + "not being considered in dependency calculations - see compiler docs)."; } cmTypeMacro(cmIncludeDirectoryCommand, cmCommand); diff --git a/Source/cmMacroCommand.h b/Source/cmMacroCommand.h index 2cf0e5b..aedbb4d 100644 --- a/Source/cmMacroCommand.h +++ b/Source/cmMacroCommand.h @@ -95,9 +95,9 @@ public: "holds the list of arguments past the last expected argument. " "Note that the parameters to a macro and values such as ARGN " "are not variables in the usual CMake sense. They are string " - "replacements much like the c preprocessor would do with a " - "macro. If you want true CMake variables you should look at " - "the function command." + "replacements much like the C preprocessor would do with a macro. " + "If you want true CMake variables and/or better CMake scope control " + "you should look at the function command." "\n" "See the cmake_policy() command documentation for the behavior of " "policies inside macros." diff --git a/Source/cmMessageCommand.h b/Source/cmMessageCommand.h index 9f01eaf..fc61810 100644 --- a/Source/cmMessageCommand.h +++ b/Source/cmMessageCommand.h @@ -67,8 +67,9 @@ public: " STATUS = Incidental information\n" " WARNING = CMake Warning, continue processing\n" " AUTHOR_WARNING = CMake Warning (dev), continue processing\n" - " SEND_ERROR = CMake Error, continue but skip generation\n" - " FATAL_ERROR = CMake Error, stop all processing\n" + " SEND_ERROR = CMake Error, continue processing,\n" + " but skip generation\n" + " FATAL_ERROR = CMake Error, stop processing and generation\n" "The CMake command-line tool displays STATUS messages on stdout " "and all other message types on stderr. " "The CMake GUI displays all messages in its log area. " -- cgit v0.12 From fa046735ae0902bd72f6094972b9ac042eea5566 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 7 Nov 2012 14:11:12 -0500 Subject: Documentation: Clarify configure_file behavior --- Source/cmConfigureFileCommand.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Source/cmConfigureFileCommand.h b/Source/cmConfigureFileCommand.h index a5b44d1..0393ecf 100644 --- a/Source/cmConfigureFileCommand.h +++ b/Source/cmConfigureFileCommand.h @@ -68,6 +68,9 @@ public: "If names an existing directory the input file is placed " "in that directory with its original name. " "\n" + "If the