[Cmake-commits] CMake branch, next, updated. v2.8.12.2-1621-g6f5707c
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 6f5707c3e3f4e666f8d04fba1023597df825063a (commit) via ffe74096bf6eb36c127afae00e2adfdd63e0db77 (commit) from f096cca1b30369b329043030e3583d4ee7c0b455 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6f5707c3e3f4e666f8d04fba1023597df825063a commit 6f5707c3e3f4e666f8d04fba1023597df825063a Merge: f096cca ffe7409 Author: Brad King brad.k...@kitware.com AuthorDate: Fri Feb 21 08:30:26 2014 -0500 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Fri Feb 21 08:30:26 2014 -0500 Merge topic 'target-SOURCES-refactor' into next ffe74096 Remove init of unused field removed in parent http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ffe74096bf6eb36c127afae00e2adfdd63e0db77 commit ffe74096bf6eb36c127afae00e2adfdd63e0db77 Author: Brad King brad.k...@kitware.com AuthorDate: Fri Feb 21 08:30:15 2014 -0500 Commit: Brad King brad.k...@kitware.com CommitDate: Fri Feb 21 08:30:15 2014 -0500 Remove init of unused field removed in parent diff --git a/Source/cmOSXBundleGenerator.cxx b/Source/cmOSXBundleGenerator.cxx index d3c3d81..78b59b3 100644 --- a/Source/cmOSXBundleGenerator.cxx +++ b/Source/cmOSXBundleGenerator.cxx @@ -21,7 +21,6 @@ cmOSXBundleGenerator:: cmOSXBundleGenerator(cmGeneratorTarget* target, const char* configName) : GT(target) - , Target(target-Target) , Makefile(target-Target-GetMakefile()) , LocalGenerator(Makefile-GetLocalGenerator()) , ConfigName(configName) --- Summary of changes: Source/cmOSXBundleGenerator.cxx |1 - 1 file changed, 1 deletion(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v2.8.12.2-1623-gab944c0
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via ab944c0a09a165758f224c58fc1f2e6c4724c139 (commit) via 9c441d19d35d5717487a6ef725327dee91dd2cd4 (commit) from 6f5707c3e3f4e666f8d04fba1023597df825063a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ab944c0a09a165758f224c58fc1f2e6c4724c139 commit ab944c0a09a165758f224c58fc1f2e6c4724c139 Merge: 6f5707c 9c441d1 Author: Brad King brad.k...@kitware.com AuthorDate: Fri Feb 21 08:48:46 2014 -0500 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Fri Feb 21 08:48:46 2014 -0500 Merge topic 'target-SOURCES-refactor' into next 9c441d19 cmGeneratorTarget: Avoid function specialization http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9c441d19d35d5717487a6ef725327dee91dd2cd4 commit 9c441d19d35d5717487a6ef725327dee91dd2cd4 Author: Brad King brad.k...@kitware.com AuthorDate: Fri Feb 21 08:48:07 2014 -0500 Commit: Brad King brad.k...@kitware.com CommitDate: Fri Feb 21 08:48:07 2014 -0500 cmGeneratorTarget: Avoid function specialization diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 38b6936..a7b2fb6 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -88,40 +88,36 @@ struct IsSameTag: public IsSameTagBase }; #endif -templatebool, typename T -void doAccept(T, cmSourceFile*) +templatebool +struct DoAccept { -} - -template -void doAccepttrue, - std::vectorcmSourceFile* (std::vectorcmSourceFile* files, - cmSourceFile* f) -{ - files.push_back(f); -} - -template -void doAccepttrue, - cmGeneratorTarget::ResxData(cmGeneratorTarget::ResxData data, -cmSourceFile* f) -{ - // Build and save the name of the corresponding .h file - // This relationship will be used later when building the project files. - // Both names would have been auto generated from Visual Studio - // where the user supplied the file name and Visual Studio - // appended the suffix. - std::string resx = f-GetFullPath(); - std::string hFileName = resx.substr(0, resx.find_last_of(.)) + .h; - data.ExpectedResxHeaders.insert(hFileName); - data.ResxSources.push_back(f); -} + template typename T static void Do(T, cmSourceFile*) {} +}; template -void doAccepttrue, std::string(std::string data, cmSourceFile* f) +struct DoAccepttrue { - data = f-GetFullPath(); -} + static void Do(std::vectorcmSourceFile* files, cmSourceFile* f) +{ +files.push_back(f); +} + static void Do(cmGeneratorTarget::ResxData data, cmSourceFile* f) +{ +// Build and save the name of the corresponding .h file +// This relationship will be used later when building the project files. +// Both names would have been auto generated from Visual Studio +// where the user supplied the file name and Visual Studio +// appended the suffix. +std::string resx = f-GetFullPath(); +std::string hFileName = resx.substr(0, resx.find_last_of(.)) + .h; +data.ExpectedResxHeaders.insert(hFileName); +data.ResxSources.push_back(f); +} + static void Do(std::string data, cmSourceFile* f) +{ +data = f-GetFullPath(); +} +}; // templatetypename Tag, typename DataType = std::vectorcmSourceFile* @@ -154,19 +150,19 @@ struct TagVisitor std::string ext = cmSystemTools::LowerCase(sf-GetExtension()); if(sf-GetCustomCommand()) { - doAcceptIsSameTagTag, CustomCommandsTag::Result(this-Data, sf); + DoAcceptIsSameTagTag, CustomCommandsTag::Result::Do(this-Data, sf); } else if(this-Target-GetType() == cmTarget::UTILITY) { - doAcceptIsSameTagTag, ExtraSourcesTag::Result(this-Data, sf); + DoAcceptIsSameTagTag, ExtraSourcesTag::Result::Do(this-Data, sf); } else if(sf-GetPropertyAsBool(HEADER_FILE_ONLY)) { - doAcceptIsSameTagTag, HeaderSourcesTag::Result(this-Data, sf); + DoAcceptIsSameTagTag, HeaderSourcesTag::Result::Do(this-Data, sf); } else if(sf-GetPropertyAsBool(EXTERNAL_OBJECT)) { - doAcceptIsSameTagTag, ExternalObjectsTag::Result(this-Data, sf); + DoAcceptIsSameTagTag, ExternalObjectsTag::Result::Do(this-Data, sf); if(this-IsObjLib) { this-BadObjLibFiles.push_back(sf); @@ -174,12 +170,12 @@ struct TagVisitor } else if(sf-GetLanguage()) { - doAcceptIsSameTagTag, ObjectSourcesTag::Result(this-Data, sf); + DoAcceptIsSameTagTag,
[Cmake-commits] CMake branch, next, updated. v2.8.12.2-1626-g854baa7
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 854baa7a5fa143e9a8ae80bc1dcf901ad006decd (commit) via 73e5c6aead4d2c748ced061a7de27f2ffc7e2d31 (commit) via c0bbefbfe7209e849c04f57e79908401ba825fe0 (commit) from ab944c0a09a165758f224c58fc1f2e6c4724c139 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=854baa7a5fa143e9a8ae80bc1dcf901ad006decd commit 854baa7a5fa143e9a8ae80bc1dcf901ad006decd Merge: ab944c0 73e5c6a Author: Brad King brad.k...@kitware.com AuthorDate: Fri Feb 21 11:06:08 2014 -0500 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Fri Feb 21 11:06:08 2014 -0500 Merge topic 'ExternalProject-BUILD_ALWAYS' into next 73e5c6ae ExternalProject: Add option to always run the build step c0bbefbf CMake Nightly Date Stamp http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=73e5c6aead4d2c748ced061a7de27f2ffc7e2d31 commit 73e5c6aead4d2c748ced061a7de27f2ffc7e2d31 Author: Brad King brad.k...@kitware.com AuthorDate: Fri Feb 21 10:59:06 2014 -0500 Commit: Brad King brad.k...@kitware.com CommitDate: Fri Feb 21 11:05:41 2014 -0500 ExternalProject: Add option to always run the build step Teach ExternalProject_Add a new BUILD_ALWAYS option to skip using the build step stamp file and execute the step on every build. Extend the BuildDepends test with a case to cover this option. diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 0df51a8..1e83163 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -54,6 +54,7 @@ #[BINARY_DIR dir]# Specify build dir location #[BUILD_COMMAND cmd...] # Command to drive the native build #[BUILD_IN_SOURCE 1] # Use source dir for build dir +#[BUILD_ALWAYS 1]# No stamp file, build step always runs # #--Install step--- #[INSTALL_DIR dir] # Installation prefix #[INSTALL_COMMAND cmd...]# Command to drive install after build @@ -1716,10 +1717,18 @@ function(_ep_add_build_command name) set(log ) endif() + get_property(build_always TARGET ${name} PROPERTY _EP_BUILD_ALWAYS) + if(build_always) +set(always 1) + else() +set(always 0) + endif() + ExternalProject_Add_Step(${name} build COMMAND ${cmd} WORKING_DIRECTORY ${binary_dir} DEPENDEES configure +ALWAYS ${always} ${log} ) endfunction() diff --git a/Tests/BuildDepends/CMakeLists.txt b/Tests/BuildDepends/CMakeLists.txt index 9727930..a875f07 100644 --- a/Tests/BuildDepends/CMakeLists.txt +++ b/Tests/BuildDepends/CMakeLists.txt @@ -68,6 +68,8 @@ file(WRITE ${BuildDepends_BINARY_DIR}/Project/link_depends_no_shared_exe.h #define link_depends_no_shared_exe_value 0\n) set(link_depends_no_shared_check_txt ${BuildDepends_BINARY_DIR}/Project/link_depends_no_shared_check.txt) +file(WRITE ${BuildDepends_BINARY_DIR}/Project/external.in external original\n) + help_xcode_depends() message(Building project first time) @@ -166,6 +168,19 @@ else() Targets link_depends_no_shared_lib and link_depends_no_shared_exe not both built.) endif() +if(EXISTS ${BuildDepends_BINARY_DIR}/Project/external.out) + file(STRINGS ${BuildDepends_BINARY_DIR}/Project/external.out external_out) + if(${external_out} STREQUAL external original) +message(STATUS external.out contains '${external_out}') + else() +message(SEND_ERROR Project did not initially build properly: + external.out contains '${external_out}') + endif() +else() + message(SEND_ERROR Project did not initially build properly: +external.out is missing) +endif() + message(Waiting 3 seconds...) # any additional argument will cause ${bar} to wait forever execute_process(COMMAND ${bar} -infinite TIMEOUT 3 OUTPUT_VARIABLE out) @@ -191,6 +206,8 @@ if(TEST_LINK_DEPENDS) file(WRITE ${TEST_LINK_DEPENDS} 2) endif() +file(WRITE ${BuildDepends_BINARY_DIR}/Project/external.in external changed\n) + help_xcode_depends() message(Building project second time) @@ -294,3 +311,16 @@ else() message(SEND_ERROR Project did not rebuild properly. Targets link_depends_no_shared_lib and link_depends_no_shared_exe not both built.) endif() + +if(EXISTS ${BuildDepends_BINARY_DIR}/Project/external.out) + file(STRINGS ${BuildDepends_BINARY_DIR}/Project/external.out external_out) + if(${external_out} STREQUAL external changed) +message(STATUS external.out contains '${external_out}') + else() +message(SEND_ERROR Project did not rebuild properly: + external.out contains
[Cmake-commits] CMake branch, next, updated. v2.8.12.2-1628-g2b64ebb
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 2b64ebbf44b56fe21e59ac6fd5904c6528cb8258 (commit) via a9bdef2dda7985762e2eae7e6ae323606d917b4e (commit) from 854baa7a5fa143e9a8ae80bc1dcf901ad006decd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2b64ebbf44b56fe21e59ac6fd5904c6528cb8258 commit 2b64ebbf44b56fe21e59ac6fd5904c6528cb8258 Merge: 854baa7 a9bdef2 Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Fri Feb 21 16:41:26 2014 -0500 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Fri Feb 21 16:41:26 2014 -0500 Merge topic 'variable-expansion-tests' into next a9bdef2d tests: Add variable expansion tests http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a9bdef2dda7985762e2eae7e6ae323606d917b4e commit a9bdef2dda7985762e2eae7e6ae323606d917b4e Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Fri Feb 7 17:53:31 2014 -0500 Commit: Ben Boeckel ben.boec...@kitware.com CommitDate: Fri Feb 21 16:39:12 2014 -0500 tests: Add variable expansion tests There are some corner cases in variable expansion which would be nice to capture before going and rewriting the variable expansion code. The majority of these are related to configuring files and strings with '@' in them in conjunction with @ONLY being specified. Another is testing for '(' usage inside of ENV variable references based on whether it is quoted or not. diff --git a/Tests/RunCMake/Syntax/AtWithVariable-stderr.txt b/Tests/RunCMake/Syntax/AtWithVariable-stderr.txt new file mode 100644 index 000..5dcd4d7 --- /dev/null +++ b/Tests/RunCMake/Syntax/AtWithVariable-stderr.txt @@ -0,0 +1 @@ +--wrong-- diff --git a/Tests/RunCMake/Syntax/AtWithVariable.cmake b/Tests/RunCMake/Syntax/AtWithVariable.cmake new file mode 100644 index 000..2bbf61d --- /dev/null +++ b/Tests/RunCMake/Syntax/AtWithVariable.cmake @@ -0,0 +1,9 @@ +set(right wrong) +set(var \${right}) +# Expanded here. +set(ref @var@) + +# 'right' is dereferenced because 'var' was dereferenced when +# assigning to 'ref' above. +string(CONFIGURE ${ref} output) +message(--${output}--) diff --git a/Tests/RunCMake/Syntax/AtWithVariableAtOnly-stderr.txt b/Tests/RunCMake/Syntax/AtWithVariableAtOnly-stderr.txt new file mode 100644 index 000..cbd1be4 --- /dev/null +++ b/Tests/RunCMake/Syntax/AtWithVariableAtOnly-stderr.txt @@ -0,0 +1 @@ +--\${right}-- diff --git a/Tests/RunCMake/Syntax/AtWithVariableAtOnly.cmake b/Tests/RunCMake/Syntax/AtWithVariableAtOnly.cmake new file mode 100644 index 000..e06484c --- /dev/null +++ b/Tests/RunCMake/Syntax/AtWithVariableAtOnly.cmake @@ -0,0 +1,8 @@ +set(right wrong) +set(var \${right}) +# Expanded here. +set(ref @var@) + +# No dereference done at all. +string(CONFIGURE ${ref} output @ONLY) +message(--${output}--) diff --git a/Tests/RunCMake/Syntax/AtWithVariableAtOnlyFile-stderr.txt b/Tests/RunCMake/Syntax/AtWithVariableAtOnlyFile-stderr.txt new file mode 100644 index 000..90bffb6 --- /dev/null +++ b/Tests/RunCMake/Syntax/AtWithVariableAtOnlyFile-stderr.txt @@ -0,0 +1,5 @@ +--==\${right}== + +==\${var}== +==\${empty}== +-- diff --git a/Tests/RunCMake/Syntax/AtWithVariableAtOnlyFile.cmake b/Tests/RunCMake/Syntax/AtWithVariableAtOnlyFile.cmake new file mode 100644 index 000..bdd7bcd --- /dev/null +++ b/Tests/RunCMake/Syntax/AtWithVariableAtOnlyFile.cmake @@ -0,0 +1,9 @@ +set(right wrong) +set(var \${right}) + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/atfile.txt.in + ${CMAKE_CURRENT_BINARY_DIR}/atfile.txt + @ONLY) +file(READ ${CMAKE_CURRENT_BINARY_DIR}/atfile.txt output) +message(--${output}--) diff --git a/Tests/RunCMake/Syntax/AtWithVariableEmptyExpansion-stderr.txt b/Tests/RunCMake/Syntax/AtWithVariableEmptyExpansion-stderr.txt new file mode 100644 index 000..cbd1be4 --- /dev/null +++ b/Tests/RunCMake/Syntax/AtWithVariableEmptyExpansion-stderr.txt @@ -0,0 +1 @@ +--\${right}-- diff --git a/Tests/RunCMake/Syntax/AtWithVariableEmptyExpansion.cmake b/Tests/RunCMake/Syntax/AtWithVariableEmptyExpansion.cmake new file mode 100644 index 000..840c7f0 --- /dev/null +++ b/Tests/RunCMake/Syntax/AtWithVariableEmptyExpansion.cmake @@ -0,0 +1,8 @@ +# Literal since 'var' is not defined. +set(ref @var@) +set(right wrong) +set(var \${right}) + +# 'var' is dereferenced here. +string(CONFIGURE ${ref} output) +message(--${output}--) diff --git a/Tests/RunCMake/Syntax/AtWithVariableEmptyExpansionAtOnly-stderr.txt b/Tests/RunCMake/Syntax/AtWithVariableEmptyExpansionAtOnly-stderr.txt new file mode 100644 index 000..cbd1be4 --- /dev/null +++
[Cmake-commits] CMake branch, next, updated. v2.8.12.2-1632-g21ae940
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 21ae940bd13a79fb52730962e61265c5d54b23b4 (commit) via 6e89c8a5f1d5aa9bffa95be2b1add8d2c4e55026 (commit) via f11f7b34a8e77c3bd68578f00b57e0884cb0d872 (commit) via e190236c7424fec478b083488eeed88717ed123a (commit) from 2b64ebbf44b56fe21e59ac6fd5904c6528cb8258 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=21ae940bd13a79fb52730962e61265c5d54b23b4 commit 21ae940bd13a79fb52730962e61265c5d54b23b4 Merge: 2b64ebb 6e89c8a Author: Brad King brad.k...@kitware.com AuthorDate: Fri Feb 21 17:07:49 2014 -0500 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Fri Feb 21 17:07:49 2014 -0500 Merge topic 'install-FILES-genex' into next 6e89c8a5 install: Support generator expressions in FILES and PROGRAMS mode f11f7b34 cmInstallFilesGenerator: Add reference to calling cmMakefile e190236c Help: Format install() command documentation http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6e89c8a5f1d5aa9bffa95be2b1add8d2c4e55026 commit 6e89c8a5f1d5aa9bffa95be2b1add8d2c4e55026 Author: Brad King brad.k...@kitware.com AuthorDate: Fri Feb 21 16:47:34 2014 -0500 Commit: Brad King brad.k...@kitware.com CommitDate: Fri Feb 21 17:05:26 2014 -0500 install: Support generator expressions in FILES and PROGRAMS mode Teach the install(FILES) and install(PROGRAMS) commands to evaluate generator expressions in the list of files. Extend the ExportImport test to cover installation cases involving generator expressions. diff --git a/Help/command/install.rst b/Help/command/install.rst index ebc95d7..47108f0 100644 --- a/Help/command/install.rst +++ b/Help/command/install.rst @@ -169,6 +169,12 @@ default permissions for the installed file also include ``OWNER_EXECUTE``, programs that are not targets, such as shell scripts. Use the ``TARGETS`` form to install targets built within the project. +The list of ``files...`` given to ``FILES`` or ``PROGRAMS`` may use +generator expressions with the syntax ``$...``. See the +:manual:`cmake-generator-expressions(7)` manual for available expressions. +However, if any item begins in a generator expression it must evaluate +to a full path. + -- :: diff --git a/Help/release/3.0.0.rst b/Help/release/3.0.0.rst index 105d651..677c7a8 100644 --- a/Help/release/3.0.0.rst +++ b/Help/release/3.0.0.rst @@ -102,6 +102,10 @@ Commands configuration because it will not be available. Use :ref:`Alias Targets` instead. See policy :policy:`CMP0024`. +* The :command:`install(FILES)` command learned to support + :manual:`generator expressions cmake-generator-expressions(7)` + in the list of files. + * The :command:`project` command learned to set some version variables to values specified by the new ``VERSION`` option or to empty strings. See policy :policy:`CMP0048`. diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx index f4fbb8a..0878aae 100644 --- a/Source/cmInstallCommand.cxx +++ b/Source/cmInstallCommand.cxx @@ -1355,7 +1355,8 @@ bool cmInstallCommand::MakeFilesFullPath(const char* modeName, ++fileIt) { std::string file = (*fileIt); -if(!cmSystemTools::FileIsFullPath(file.c_str())) +std::string::size_type gpos = cmGeneratorExpression::Find(file); +if(gpos != 0 !cmSystemTools::FileIsFullPath(file.c_str())) { file = this-Makefile-GetCurrentDirectory(); file += /; @@ -1363,7 +1364,7 @@ bool cmInstallCommand::MakeFilesFullPath(const char* modeName, } // Make sure the file is not a directory. -if(cmSystemTools::FileIsDirectory(file.c_str())) +if(gpos == file.npos cmSystemTools::FileIsDirectory(file.c_str())) { cmOStringStream e; e modeName given directory \ (*fileIt) \ to install.; diff --git a/Source/cmInstallFilesCommand.cxx b/Source/cmInstallFilesCommand.cxx index 32e463b..488d486 100644 --- a/Source/cmInstallFilesCommand.cxx +++ b/Source/cmInstallFilesCommand.cxx @@ -148,7 +148,8 @@ void cmInstallFilesCommand::CreateInstallGenerator() const */ std::string cmInstallFilesCommand::FindInstallSource(const char* name) const { - if(cmSystemTools::FileIsFullPath(name)) + if(cmSystemTools::FileIsFullPath(name) || + cmGeneratorExpression::Find(name) == 0) { // This is a full path. return name; diff --git a/Source/cmInstallFilesGenerator.cxx b/Source/cmInstallFilesGenerator.cxx index 506dcbf..ec15044 100644 ---
[Cmake-commits] CMake branch, next, updated. v2.8.12.2-1637-g2ad6f07
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 2ad6f07fc31047755a6450dfff715957e8d9091d (commit) via a4df41b418f92a91c0e7497f7627791079e48e55 (commit) via 7c565d2fd5e86d420ea83eb724ad5380ca5c2e97 (commit) via 68eb1757445dd1bb6537e32be8c9a72360112978 (commit) via 67253133f8ca99034a1eabe326a51c74f5e95c87 (commit) from 21ae940bd13a79fb52730962e61265c5d54b23b4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2ad6f07fc31047755a6450dfff715957e8d9091d commit 2ad6f07fc31047755a6450dfff715957e8d9091d Merge: 21ae940 a4df41b Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Fri Feb 21 17:16:47 2014 -0500 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Fri Feb 21 17:16:47 2014 -0500 Merge topic 'dev/faster-parsers' into next a4df41b4 relnotes: Add release notes for the branch 7c565d2f cmGeneratorExpression: Improve parsing in StripEmptyListElements 68eb1757 cmGeneratorExpressionLexer: Use a switch statement to parse 67253133 ExpandListArguments: Optimize the parser http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a4df41b418f92a91c0e7497f7627791079e48e55 commit a4df41b418f92a91c0e7497f7627791079e48e55 Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Tue Feb 11 13:54:07 2014 -0500 Commit: Ben Boeckel ben.boec...@kitware.com CommitDate: Fri Feb 21 16:56:06 2014 -0500 relnotes: Add release notes for the branch diff --git a/Help/release/dev/faster-parsers.rst b/Help/release/dev/faster-parsers.rst new file mode 100644 index 000..c2a8bfb --- /dev/null +++ b/Help/release/dev/faster-parsers.rst @@ -0,0 +1,6 @@ +faster-parsers +-- + +* The :manual:`cmake-language(7)` internal implementation of generator + expression and list expansion parsers have been optimized and shows + non-trivial speedup on large projects. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7c565d2fd5e86d420ea83eb724ad5380ca5c2e97 commit 7c565d2fd5e86d420ea83eb724ad5380ca5c2e97 Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Sun Feb 9 05:09:52 2014 -0500 Commit: Ben Boeckel ben.boec...@kitware.com CommitDate: Fri Feb 21 16:56:06 2014 -0500 cmGeneratorExpression: Improve parsing in StripEmptyListElements The char-by-char parsing causes lots of reallocations which shouldn't be necessary. To improve this, fast-path strings without a semicolon, reserve space in the result, and insert into the result in chunks. diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx index 2e66d78..cd30546 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx @@ -157,17 +157,24 @@ cmCompiledGeneratorExpression::~cmCompiledGeneratorExpression() std::string cmGeneratorExpression::StripEmptyListElements( const std::string input) { + if (input.find(';') == input.npos) +{ +return input; +} std::string result; + result.reserve(input.size()); const char *c = input.c_str(); + const char *last = c; bool skipSemiColons = true; for ( ; *c; ++c) { -if(c[0] == ';') +if(*c == ';') { if(skipSemiColons) { -continue; +result.append(last, c - last); +last = c + 1; } skipSemiColons = true; } @@ -175,8 +182,8 @@ std::string cmGeneratorExpression::StripEmptyListElements( { skipSemiColons = false; } -result += *c; } + result.append(last); if (!result.empty() *(result.end() - 1) == ';') { http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=68eb1757445dd1bb6537e32be8c9a72360112978 commit 68eb1757445dd1bb6537e32be8c9a72360112978 Author: Ben Boeckel maths...@gmail.com AuthorDate: Sat Feb 8 12:01:30 2014 -0500 Commit: Ben Boeckel ben.boec...@kitware.com CommitDate: Fri Feb 21 16:56:06 2014 -0500 cmGeneratorExpressionLexer: Use a switch statement to parse Optimize cmGeneratorExpressionLexer::Tokenize to use a switch statement. The many dereferences of the input pointer were expensive. Also remove excess pointer arithmetic. diff --git a/Source/cmGeneratorExpressionLexer.cxx b/Source/cmGeneratorExpressionLexer.cxx index cd71ec0..117a24e 100644 --- a/Source/cmGeneratorExpressionLexer.cxx +++ b/Source/cmGeneratorExpressionLexer.cxx @@ -42,42 +42,42 @@ cmGeneratorExpressionLexer::Tokenize(const char *input) const char *upto = c; for ( ; *c; ++c) - { - if(c[0] == '$' c[1] == '') { -InsertText(upto, c, result); -upto = c; -
[Cmake-commits] CMake branch, next, updated. v2.8.12.2-1643-g8b0b0ee
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 8b0b0ee4c227e4a8dad4a12dd7a79abc5c275f54 (commit) via 670f4d6f82c2250b18e57151a77cad2799f0783f (commit) via 4ae4128fd5629575eb5cb665e108cfecd82e0636 (commit) via 162a583f90aea22a14e0356958e83156d2e07771 (commit) via b667320a541efcb40444af1ce4a4f918a2f0469f (commit) via 07e466ca50456f8d2e99bb29034ca7f1e330419c (commit) from 2ad6f07fc31047755a6450dfff715957e8d9091d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8b0b0ee4c227e4a8dad4a12dd7a79abc5c275f54 commit 8b0b0ee4c227e4a8dad4a12dd7a79abc5c275f54 Merge: 2ad6f07 670f4d6 Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Fri Feb 21 19:50:44 2014 -0500 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Fri Feb 21 19:50:44 2014 -0500 Merge topic 'dev/faster-evis' into next 670f4d6f relnotes: Add release notes for the branch 4ae4128f EVIS: Reimplement using custom parsing code 162a583f tests: Fix StringFileTest for CMP0052 b667320a tests: Add tests for CMP0052 07e466ca policy: Add policy CMP0052 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=670f4d6f82c2250b18e57151a77cad2799f0783f commit 670f4d6f82c2250b18e57151a77cad2799f0783f Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Tue Feb 11 13:54:07 2014 -0500 Commit: Ben Boeckel ben.boec...@kitware.com CommitDate: Fri Feb 21 17:21:01 2014 -0500 relnotes: Add release notes for the branch diff --git a/Help/release/dev/faster-evis.rst b/Help/release/dev/faster-evis.rst new file mode 100644 index 000..14b60a0 --- /dev/null +++ b/Help/release/dev/faster-evis.rst @@ -0,0 +1,6 @@ +faster-evis +--- + +* The :manual:`cmake-language(7)` internal implementation of variable + evaluation has been optimized and shows non-trivial speedup on large + projects. The improvements may be used by setting :policy:`CMP0052` to NEW. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4ae4128fd5629575eb5cb665e108cfecd82e0636 commit 4ae4128fd5629575eb5cb665e108cfecd82e0636 Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Fri Feb 7 22:37:54 2014 -0500 Commit: Ben Boeckel ben.boec...@kitware.com CommitDate: Fri Feb 21 17:20:46 2014 -0500 EVIS: Reimplement using custom parsing code Testing the configure (no generate) step with ParaView shows ~20% performance improvement (~47s - ~39s on my machine). In terms of complete configure/generate steps, further testing with ParaView shows a 20% performance improvement over 2.8.12.2 with Unix Makefiles and minimal with Ninja. Ninja is less because it generate step is the expensive part (future work will address this) by a long shot and these changes help the configure step for the most part. diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index f248c57..a43d320 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -157,6 +157,7 @@ void cmMakefile::Initialize() this-cmDefineRegex.compile(#cmakedefine[ \t]+([A-Za-z_0-9]*)); this-cmDefine01Regex.compile(#cmakedefine01[ \t]+([A-Za-z_0-9]*)); this-cmAtVarRegex.compile((@[A-Za-z_0-9/.+-]+@)); + this-cmNamedCurly.compile(^[A-Za-z0-9/_.+-]+{); // Enter a policy level for this directory. this-PushPolicy(); @@ -2533,23 +2534,88 @@ const char *cmMakefile::ExpandVariablesInString(std::string source, bool removeEmpty, bool replaceAt) const { - if ( source.empty() || source.find_first_of($@\\) == source.npos) + if ( source.find_first_of($@\\) == source.npos) { return source.c_str(); } - // Special-case the @ONLY mode. - if(atOnly) + bool compareResults = false; + cmake::MessageType mtype = cmake::LOG; + std::string errorstr; + + // Sanity check the @ONLY mode. + if(atOnly (!noEscapes || !removeEmpty)) +{ +// This case should never be called. At-only is for +// configure-file/string which always does no escapes. +this-IssueMessage(cmake::INTERNAL_ERROR, + ExpandVariablesInString @ONLY called + on something with escapes.); +return source.c_str(); +} + + // Variables used in the WARN case. + std::string newResult; + cmake::MessageType newError = cmake::LOG; + + switch(this-GetPolicyStatus(cmPolicies::CMP0052)) +{ +case cmPolicies::WARN: + { + std::string newErrorstr; + newResult = source; + compareResults = true; + newError = +
[Cmake-commits] CMake branch, next, updated. v2.8.12.2-1645-g2f16414
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 2f164149ce6dfe7c9a5689ef523e9b3c16f69a2f (commit) via 366a20c580fee4b5458cd51a4fb0563ebd2ca47e (commit) from 8b0b0ee4c227e4a8dad4a12dd7a79abc5c275f54 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2f164149ce6dfe7c9a5689ef523e9b3c16f69a2f commit 2f164149ce6dfe7c9a5689ef523e9b3c16f69a2f Merge: 8b0b0ee 366a20c Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Fri Feb 21 21:47:58 2014 -0500 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Fri Feb 21 21:47:58 2014 -0500 Merge topic 'dev/faster-evis' into next 366a20c5 EVIS: Allow parens in variable names http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=366a20c580fee4b5458cd51a4fb0563ebd2ca47e commit 366a20c580fee4b5458cd51a4fb0563ebd2ca47e Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Fri Feb 21 21:46:58 2014 -0500 Commit: Ben Boeckel ben.boec...@kitware.com CommitDate: Fri Feb 21 21:46:58 2014 -0500 EVIS: Allow parens in variable names Needed for Windows environment variables. diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index a43d320..cbe1691 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -2977,7 +2977,8 @@ cmake::MessageType cmMakefile::ExpandVariablesInStringNew( if(openstack.size() 1 !(isalnum(inc) || inc == '/' || inc == '_' || inc == '.' || - inc == '+' || inc == '-')) + inc == '+' || inc == '-' || + inc == '(' || inc == ')')) { errorstr += Invalid character (\'; errorstr += inc; --- Summary of changes: Source/cmMakefile.cxx |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v2.8.12.2-1482-g4e647cf
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, master has been updated via 4e647cf6b5114307ff0e4bc985b53a0c04661623 (commit) from c0bbefbfe7209e849c04f57e79908401ba825fe0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4e647cf6b5114307ff0e4bc985b53a0c04661623 commit 4e647cf6b5114307ff0e4bc985b53a0c04661623 Author: Kitware Robot kwro...@kitware.com AuthorDate: Sat Feb 22 00:01:06 2014 -0500 Commit: Kitware Robot kwro...@kitware.com CommitDate: Sat Feb 22 00:01:06 2014 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 0c481ad..ef128e1 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 20140221) +set(CMake_VERSION_PATCH 20140222) #set(CMake_VERSION_RC 1) --- Summary of changes: Source/CMakeVersion.cmake |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits