[Cmake-commits] CMake branch, next, updated. v2.8.12.2-1621-g6f5707c

2014-02-21 Thread Brad King
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

2014-02-21 Thread Brad King
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

2014-02-21 Thread Brad King
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

2014-02-21 Thread Ben Boeckel
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

2014-02-21 Thread Brad King
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

2014-02-21 Thread Ben Boeckel
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

2014-02-21 Thread Ben Boeckel
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

2014-02-21 Thread Ben Boeckel
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

2014-02-21 Thread Kitware Robot
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