[cmake-developers] Bug in Visual Studio generators

2014-04-08 Thread Josh Green
Hi fellow developers,

I've got an issue with Cmake 2.8.12.2.
The Visual Studio Generators do not abide by the
CMAKE_USE_RELATIVE_PATHS setting.

This means that cmake always attempts to generate relative paths when
inserting filenames into projects, and means that the infamous 260
character max path limit is hit on relatively short
filenames/hierarchies.

I've cloned CMAKE locally, and looked into why this happens.

It appears that the issue is inside the following function:

cmVisualStudio10TargetGenerator::ConvertPath

It calls LocalGenerator-Convert using the default parameter for
'optional' (which is false).
This means that these calls will always end up converting the path to relative.
I have resolved the issue and verified it by supplying a simple true instead.

This means that the internals of LocalGenerator-Convert will end up
checking CMAKE_USE_RELATIVE_PATHS and behave appropriately.

Is it possible to get this into a new version of 2.8.12?

Thanks for your time

Josh
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] target_compile_features remaining issues

2014-04-08 Thread Stephen Kelly
Rolf Eike Beer wrote:

 Of course, it is easier to get features into the CMAKE_CXX_KNOWN_FEATURES
 list when there is only one compiler to test for on the dashboard.  I'll
 add one C++98 feature to establish the infrastructure, but I don't intend
 to be exhaustive about C++98 features. If you or anyone else has an
 interest in doing so, I'd recommend getting them in early.
 
 Cool. I think it would be good to get the stuff that is enabled by the
 -AA +hpxstd98 calls on HP-UX 11i into such a feature so we can make the
 complex testcase just select whatever is needed automatically instead of
 fiddling around to get the magic flags getting passed into that test to
 make the C++ compiler behave like something useful.

Ok, I don't know anything about the features or flags of that compiler.

What features do you have in mind to add?

Thanks,

Steve.


-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] [CMake 0014867]: Not possible to pass options like -DENABLE_ACL through configure when bootstrapping cmake

2014-04-08 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://cmake.org/Bug/view.php?id=14867 
== 
Reported By:Mike Crowe
Assigned To:
== 
Project:CMake
Issue ID:   14867
Category:   CMake
Reproducibility:always
Severity:   minor
Priority:   normal
Status: new
== 
Date Submitted: 2014-04-08 08:37 EDT
Last Modified:  2014-04-08 08:37 EDT
== 
Summary:Not possible to pass options like -DENABLE_ACL
through configure when bootstrapping cmake
Description: 
I'd like to disable ACL and CursesDialog in the final build when bootstrapping
cmake. This isn't currently possible because there is no way to influence
cmake_options passed to cmake near the end of the bootstrap script.

Additional Information: 
The attached patch provides a new --extra option to bootstrap so that options
can be passed through to cmake. It means that I can now run:


 ./configure --extra=-DENABLE_ACL=0 --extra=-DBUILD_CursesDialog=0
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2014-04-08 08:37 Mike Crowe New Issue
2014-04-08 08:37 Mike Crowe File Added: bootstrap-pass-through.patch
   
==

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Bug in Visual Studio generators

2014-04-08 Thread Brad King
On 04/08/2014 04:58 AM, Josh Green wrote:
 I've got an issue with Cmake 2.8.12.2.
 The Visual Studio Generators do not abide by the
 CMAKE_USE_RELATIVE_PATHS setting.

This option is not fully implemented or supported.  The documentation
says that it does not fully work:

 http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_USE_RELATIVE_PATHS.html

CMake is not intended to generate re-locatable or re-distributable
build files.  If you *really* need them then you can use
-DCMAKE_SUPPRESS_REGENERATION=1 and post-process the generated
files to fix paths.

-Brad
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] [CMake 0014868]: Visual Studio 2005/2008 crashes when debugging WinCE 6 CMake projects

2014-04-08 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://public.kitware.com/Bug/view.php?id=14868 
== 
Reported By:Brendan Shanks
Assigned To:
== 
Project:CMake
Issue ID:   14868
Category:   CMake
Reproducibility:always
Severity:   major
Priority:   normal
Status: new
== 
Date Submitted: 2014-04-08 14:06 EDT
Last Modified:  2014-04-08 14:06 EDT
== 
Summary:Visual Studio 2005/2008 crashes when debugging WinCE
6 CMake projects
Description: 
Whenever I try to debug a Windows CE app with Visual Studio project files
generated by CMake, Visual Studio crashes.
VS2005 and 2008 both crash in the same way: right after the EXE is deployed,
with an access violation in devenv.exe (somewhere inside malloc())

I've only tested this with WinCE 6 and deploying/debugging on the emulator
(using a generic BSP I built). If I create a new project from inside Visual
Studio, debugging works fine.

It crashes after the EXE is deployed to the emulator, but if I make sure the
msvcr DLL is copied to the same directory, the binary does work correctly (when
launched from inside CE).

I have had this problem with both cmake 2.8.12.2 and cmake 3.0-rc3

Steps to Reproduce: 
Start with an extremely simple CMake project (like the one I attached).

 cd ce_cmake_test
 mkdir build
 cd build
 cmake -G Visual Studio 9 2008 BKSEmulator_Rls (ARMV4I) ..
Inside build, open ce_cmake_test.sln
Choose Debug-Start Debugging
After the deploy to the emulator succeeds, Visual Studio crashes (Microsoft
Visual Studio has encountered a problem and needs to close)

== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2014-04-08 14:06 Brendan Shanks New Issue
2014-04-08 14:06 Brendan Shanks File Added: ce_cmake_test.zip   

==

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] CMake master slowdown in generation step

2014-04-08 Thread Brad King
On 04/05/2014 07:08 AM, Stephen Kelly wrote:
 I agree of course that the performance is master currently is not 
 acceptable.
 
 Re-cmake with v2.8.12.2:
  $ time cmake ..
  real0m0.712s
  user0m0.692s
  sys 0m0.020s
[snip]
 Re-cmake with optimize-source-file-processing:
  $ time cmake ..
  real0m0.733s
  user0m0.689s
  sys 0m0.046s 

Do you have timings for running CMake on KDE?

I've merged optimize-source-file-processing to master.  However,
generation is still significantly slower on some projects.  For
example, I ran CMake on VTK master as of commit ce692f85 (with
no options).  On a warm cache with CMake built in Release config
and using the default Unix Makefiles generator:

* Before the source file refactoring, CMake built from
  commit 1d4366ff (Merge topic 'revise-compiler-id-policies'):

  real0m16.551s
  user0m14.908s
  sys 0m1.192s

  real0m16.171s
  user0m14.676s
  sys 0m1.076s

* After the source file refactoring, CMake built from
  commit 5376151a (Merge topic 'target-transitive-sources'):

  real0m58.518s
  user0m52.632s
  sys 0m5.144s

  real0m57.808s
  user0m51.948s
  sys 0m5.288s

* After optimize-source-file-processing, CMake built from
  commit 7f7d6a40 (Merge topic 'optimize-source-file-processing'):

  real0m40.353s
  user0m34.556s
  sys 0m5.100s

  real0m39.837s
  user0m34.288s
  sys 0m4.956s

The Configuring done line prints after about 12 seconds.
Therefore generation is still at least 6x slower.

The correct first, optimize later strategy is reasonable
for new features, but in this case everyone pays the time
cost whether using the new features or not.  The optimize
later time has to be very soon, please.  I would like to
see the run time for the above case to be back down to 17s
or better.

We like to maintain an invariant that 'master' is always
release-ready.  The current performance is not acceptable,
so 'master' is not currently release-ready.  I plan to merge
no more features to 'master' until this is resolved.  If it
is not resolved soon, I will revert the changes from 'master'
to make it release-ready again.  Then the target SOURCES
features can be restored after implementing with acceptable
performance.

Thanks,
-Brad
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] pause on new topics, please

2014-04-08 Thread Brad King
Hi Folks,

Please refrain from adding new topics to 'next' until the
performance problems in 'master' discussed here:

 
http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/9867/focus=9897

have been resolved.  The resolution may involve reverting
recent changes from 'master', and that may conflict with
other topics in 'next'.

Thanks,
-Brad
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] [PATCH] Use single quote for all file/path items in Watcom linker command

2014-04-08 Thread Brad King
On 04/04/2014 05:16 PM, Jiri Malak wrote:
 I enclosed patch to support correct quoting for Watcom linker.
 Single quote quoting is necessary also for target name, library names and 
 libraries search path.
 This patch fix it.

Thanks.  I applied locally.  I will look at integrating after
the topic pause I just announced is lifted.

-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] [CMake 0014869]: ExternalProject - Configuring project failed after changing branch in SVN_REPOSITORY

2014-04-08 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://www.cmake.org/Bug/view.php?id=14869 
== 
Reported By:Jean-Christophe Fillion-Robin
Assigned To:
== 
Project:CMake
Issue ID:   14869
Category:   CMake
Reproducibility:have not tried
Severity:   minor
Priority:   normal
Status: new
== 
Date Submitted: 2014-04-08 22:12 WAT
Last Modified:  2014-04-08 22:12 WAT
== 
Summary:ExternalProject - Configuring project failed after
changing branch in SVN_REPOSITORY
Description: 
The following error is reported:

[ 12%] Performing download step (SVN checkout) for 'EMSegment'
svn: E155000: '/home/jchris/Projects/svn-swtich-cmake-bug/build/EMSegment' is
already a working copy for a different URL





Steps to Reproduce: 

Configure and build the example posted below, then re-configure with
-DSWITCH)URL:BOOL=1


# ---8---8---8---8---8---8---8---8
cmake_minimum_required(VERSION 2.8.12)
project(Foo)
include(ExternalProject)

if(NOT SWITCH_URL)

  ExternalProject_Add(EMSegment
SVN_REPOSITORY http://svn.slicer.org/Slicer3/trunk/Modules/EMSegment;
SVN_REVISION -r 17040
SOURCE_DIR EMSegment
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND 
BUILD_COMMAND 
INSTALL_COMMAND 
)

else()

  ExternalProject_Add(EMSegment
SVN_REPOSITORY http://svn.slicer.org/Slicer3/branches/Slicer4-EMSegment;
SVN_REVISION -r 17043
SOURCE_DIR EMSegment
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND 
BUILD_COMMAND 
INSTALL_COMMAND 
)

endif()
# ---8---8---8---8---8---8---8---8

Additional Information: 

Log step by step ... 


$ ~/Support/cmake-2.8.12.2/bin/cmake ../
-- The C compiler identification is GNU 4.8.1
[...]
-- Configuring done
-- Generating done
-- Build files have been written to:
/home/jchris/Projects/svn-swtich-cmake-bug/build

jchris@karakoram:build $ make
Scanning dependencies of target EMSegment
[ 12%] Creating directories for 'EMSegment'
[ 25%] Performing download step (SVN checkout) for 'EMSegment'
AEMSegment/CMake
AEMSegment/CMake/EM_Slicer3_GenerateConfigureFile.cmake
[...]
Checked out revision 17040.
[ 37%] No patch step for 'EMSegment'
[ 50%] Performing update step (SVN update) for 'EMSegment'
Updating '.':
At revision 17040.
[ 62%] No configure step for 'EMSegment'
[ 75%] No build step for 'EMSegment'
[ 87%] No install step for 'EMSegment'
[100%] Completed 'EMSegment'
[100%] Built target EMSegment

jchris@karakoram:build $ ~/Support/cmake-2.8.12.2/bin/cmake -DSWITCH_URL:BOOL=1
.
-- Configuring done
-- Generating done
-- Build files have been written to:
/home/jchris/Projects/svn-swtich-cmake-bug/build

jchris@karakoram:build $ make
[ 12%] Performing download step (SVN checkout) for 'EMSegment'
svn: E155000: '/home/jchris/Projects/svn-swtich-cmake-bug/build/EMSegment' is
already a working copy for a different URL
make[2]: *** [EMSegment-prefix/src/EMSegment-stamp/EMSegment-download] Error 1
make[1]: *** [CMakeFiles/EMSegment.dir/all] Error 2
make: *** [all] Error 2
== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2014-04-08 22:12 Jean-Christophe Fillion-RobinNew Issue 
  
==

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] Which version of cmake is good to compile VTK6.x wiith Qt enabled?

2014-04-08 Thread Sam Raby
Hi

I would like to compile a VTK 6.x with Qt5.x.

Which version of cmake you guys recommend to use?

I very much appreciate your help.

-S
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Re: [cmake-developers] Bug in Visual Studio generators

2014-04-08 Thread Josh Green
Hi Brad,

Sorry, I think I failed to communicate what the problem was. (Sorry
for caps, just emphasising the keywords)
Please read my full e-mail
I do NOT want to have a relocatable build file.
I do NOT want to set CMAKE_USE_RELATIVE_PATHS to True (the default is False).

I NEED absolute paths in my build files.
I believe cmake intends to supply absolute paths in my case (and
indeed reading the code, the writer expects this to be the case).
But it currently does NOT. The fact that it doesn't, is why I am
emailing with a fix!

The problem is that the Visual studio generators currently ALWAYS
Generate RELATIVE paths.

Sorry to take so much of your time, but I genuinely believe this is a
bug, and your previous e-mail has dismissed it as by design, I can
almost guarantee you that it is not CMAKE's intention to be always
generating relative paths in VisualStudio generators. I'm sure you
will agree with that statement.
If you read below, I hope you will agree this is a bug, and can be fixed easily!

For an explanation why Visual Studio project files should have
absolute files when possible, see the bottom of this email: (I think
you already know this though)

If you read the code for cmVisualStudio10TargetGenerator::writeSource
You will notice that it is written assuming that absolute paths are
always generated by default, and that under some circumstances it will
force the path to relative.
This assumption is broken!!

Please look at this commit:
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4248132e59a8401a96d9c20ef155d80e439e7346

In that commit, the function convertPath is created to choose
between relative/absolute.
The bug is that this new convertPath function ALWAYS chooses
relative! The original code that it is replacing it my reason for
wanting this change, it said:

- if(relative)
-{
-// custom command sources must use relative paths or they will
-// not show up in the GUI.
-sourceFile = cmSystemTools::RelativePath(
-  this-Makefile-GetCurrentOutputDirectory(),
-  sourceFile.c_str());
-}
-  else
-{
-// do not use a relative path here because it means that you
-// can not use as long a path to the file.
-}

The Else here is exactly why I need absolute paths and I'm sure it
is the intention of Cmake to use them.

If you look at the contents of this new ConvertPath

+std::string
+cmVisualStudio10TargetGenerator::ConvertPath(std::string const path,
+ bool forceRelative)
+{
+  return forceRelative
+? cmSystemTools::RelativePath(
+  this-Makefile-GetCurrentOutputDirectory(), path.c_str())
+: this-LocalGenerator-Convert(path.c_str(),
+cmLocalGenerator::START_OUTPUT,
+cmLocalGenerator::UNCHANGED);
+}

So, if forceRelative == True, then we will generate a relative path.
if forceRelative == False, then:

this-LocalGenerator-Convert(path.c_str(),
cmLocalGenerator::START_OUTPUT,
cmLocalGenerator::UNCHANGED);

This function will ALWAYS generate a relative path when called like
this!!! (because the default parameter optional is set to false by
default)

We need to change it to be:

this-LocalGenerator-Convert(path.c_str(),
cmLocalGenerator::START_OUTPUT,
cmLocalGenerator::UNCHANGED,
true);

(To tell it that the conversion is optional).

Thanks for your time, sorry I have been so verbose, but your previous
e-mail dismissing the issue meant that I needed to try to be as clear
as possible.

Joshua Green

@Appendix:

The reason I need absolute paths is because in visual studio a 260
character limit applies to file paths, and relative files mean that
limit is reached much earlier than necessary. (because the relative
path + the build file location must be  260 chars).

Currently CMAKE is generating relative paths in my projects of 160
characters length (with 6 ../../ on the front). These paths are then
appended to my build file location (100chars in length).
Causing the problem that visual studio cannot find these files.

On Wed, Apr 9, 2014 at 3:32 AM, Brad King brad.k...@kitware.com wrote:
 On 04/08/2014 04:58 AM, Josh Green wrote:
 I've got an issue with Cmake 2.8.12.2.
 The Visual Studio Generators do not abide by the
 CMAKE_USE_RELATIVE_PATHS setting.

 This option is not fully implemented or supported.  The documentation
 says that it does not fully work:

  http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_USE_RELATIVE_PATHS.html

 CMake is not intended to generate re-locatable or re-distributable
 build files.  If you *really* need them then you can use
 -DCMAKE_SUPPRESS_REGENERATION=1 and post-process the generated
 files to fix paths.

 -Brad
 --

 Powered by www.kitware.com

 Please keep messages on-topic and check the CMake FAQ at: 
 

Re: [cmake-developers] CMake master slowdown in generation step

2014-04-08 Thread Stephen Kelly
Brad King wrote:

 Do you have timings for running CMake on KDE?

With kdelibs branch KDE/4.13:

adb96ae67e2ae5d8ab543fc60f11750a42ed0c41
(after latest optimization)
real0m17.862s
user0m16.817s
sys 0m1.001s

9b1abc543e9aee946e093229e1715c4b8a961514
(after previous optimization)
real0m38.593s
user0m37.318s
sys 0m1.254s

521b930bf4e211735842e71f1eb0018c2184a05f
(before refactor)
real0m16.526s
user0m15.230s
sys 0m1.202s


So, similar to the VTK result probably, and probably for the same reason of 
being a deeper graph than the previous testcase.

 The correct first, optimize later strategy is reasonable
 for new features, but in this case everyone pays the time
 cost whether using the new features or not.  The optimize
 later time has to be very soon, please.  I would like to
 see the run time for the above case to be back down to 17s
 or better.

My new optimizations make the VTK time comparable with before-refactor on my 
machine.

 We like to maintain an invariant that 'master' is always
 release-ready.  The current performance is not acceptable,
 so 'master' is not currently release-ready.  I plan to merge
 no more features to 'master' until this is resolved.  If it
 is not resolved soon, I will revert the changes from 'master'
 to make it release-ready again.  Then the target SOURCES
 features can be restored after implementing with acceptable
 performance.

Ok.

Thanks,

Steve.



-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[CMake] Changing object file names

2014-04-08 Thread Emmanuel Blot
Hi,

Is there a way, in CMake, to change the pattern of the output object
files - that is for each .c compiled, the name of the output binary .o
files.
I'm not refering to the file extension, nor any library name for which
I already found answers in CMake doc, but the basename.

The issue I'm facing is that several existing libraries used the same
name for source files, and when archived into the same final library
(.a), the names of both object file collide. I cannot really keep both
.a files for several reasons.

The idea would be to add a prefix to each object file based on the
original library name, to avoid collision, that is:

liba/x.c  - liba_x.o
liba/y.c  - liba_y.o
libb/x.c  - libb_x.o
libb/y.c  - libb_y.o

final.a -- liba_x.o, libb_x.o, libb_x.o, libb_y.o

I cannot / do not want to change the name of the source files, to ease
upstream merge.

What would be the best way to change the name of the output object
files with CMake?

Thanks,
Manu
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] multi-line strings... is this expected?

2014-04-08 Thread Matthew Woehlke

On 2014-03-27 13:54, Matthew Woehlke wrote:

I haveĀ¹ a CTest like:

execute_process(...)
set(expected 
...text...
...text...
)
string(REGEX MATCH ${expected} match ${out})

This works great... *IF* the script file has UNIX line endings. I'm
wondering if that is expected? It seems that CTest must be processing
the script in binary mode in order for the string to contain '\r'
characters...


For the record: no. It turns out the line endings is actually a) a red 
herring (although the problem was a platform difference in a way), and 
b) not actually an issue (on further investigation, both CMake 2.8.x and 
3.0 seem to be behaving as expected in this respect).


Can anyone spot the problem above? :-)


It turns out that what is *actually* happening is that this:

  string(REGEX MATCH ${expected} match ${out})

...strips any ';'s from ${out}. And incidentally, the work-around I was 
using ('string(REPLACE \r  expected ${expected})') does likewise, so 
that the combination results in neither string containing ';'s, which 
then can match. I was only seeing issues on Windows because the relevant 
';'s are path separators, which are of course ':'s on other platforms 
and so are not affected.


Quoting the argument to REGEX MATCH is the actual correct fix :-).

--
Matthew

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

[CMake] Support for building of OCaml software?

2014-04-08 Thread SF Markus Elfring
Hello,

I would like to build a package for a software which was developed in the
programming language OCaml.
How is the status for the support of corresponding development tools?

Regards,
Markus
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


[Cmake-commits] CMake branch, next, updated. v3.0.0-rc3-2100-g5d615d4

2014-04-08 Thread Stephen Kelly
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  5d615d4077b02972332008e5bbf2cd53ee92695c (commit)
   via  0a42151cf21992b53088c5d659964795075882a1 (commit)
  from  536e0ce89c7bd4bcea0b4e658b4112c4f00e544c (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=5d615d4077b02972332008e5bbf2cd53ee92695c
commit 5d615d4077b02972332008e5bbf2cd53ee92695c
Merge: 536e0ce 0a42151
Author: Stephen Kelly steve...@gmail.com
AuthorDate: Tue Apr 8 05:04:53 2014 -0400
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Apr 8 05:04:53 2014 -0400

Merge topic 'target_compile_features' into next

0a42151c Set the AppleClang policy.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0a42151cf21992b53088c5d659964795075882a1
commit 0a42151cf21992b53088c5d659964795075882a1
Author: Stephen Kelly steve...@gmail.com
AuthorDate: Tue Apr 8 11:03:34 2014 +0200
Commit: Stephen Kelly steve...@gmail.com
CommitDate: Tue Apr 8 11:03:34 2014 +0200

Set the AppleClang policy.

Don't bump the required version, setting all recent policies.

diff --git a/Tests/ExportImport/Import/CMakeLists.txt 
b/Tests/ExportImport/Import/CMakeLists.txt
index 229e579..189f7a2 100644
--- a/Tests/ExportImport/Import/CMakeLists.txt
+++ b/Tests/ExportImport/Import/CMakeLists.txt
@@ -1,4 +1,5 @@
-cmake_minimum_required (VERSION 3.0)
+cmake_minimum_required (VERSION 2.7.20090711)
+cmake_policy(SET CMP0025 NEW)
 project(Import C CXX)
 
 # Import everything in a subdirectory.

---

Summary of changes:
 Tests/ExportImport/Import/CMakeLists.txt |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, next, updated. v3.0.0-rc3-2102-ga0e3736

2014-04-08 Thread Stephen Kelly
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  a0e3736726eb737a8b50e581f1ebd4148f4c3521 (commit)
   via  9eaf3755987821080908a289cefbf546773071f9 (commit)
  from  5d615d4077b02972332008e5bbf2cd53ee92695c (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=a0e3736726eb737a8b50e581f1ebd4148f4c3521
commit a0e3736726eb737a8b50e581f1ebd4148f4c3521
Merge: 5d615d4 9eaf375
Author: Stephen Kelly steve...@gmail.com
AuthorDate: Tue Apr 8 05:07:01 2014 -0400
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Apr 8 05:07:01 2014 -0400

Merge topic 'target_compile_features' into next

9eaf3755 Export: Populate INTERFACE_COMPILE_FEATURES property.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9eaf3755987821080908a289cefbf546773071f9
commit 9eaf3755987821080908a289cefbf546773071f9
Author: Stephen Kelly steve...@gmail.com
AuthorDate: Tue Dec 17 19:23:40 2013 +0100
Commit: Stephen Kelly steve...@gmail.com
CommitDate: Tue Apr 8 11:05:07 2014 +0200

Export: Populate INTERFACE_COMPILE_FEATURES property.

diff --git a/Source/cmExportBuildFileGenerator.cxx 
b/Source/cmExportBuildFileGenerator.cxx
index e79206d..6c8ebb6 100644
--- a/Source/cmExportBuildFileGenerator.cxx
+++ b/Source/cmExportBuildFileGenerator.cxx
@@ -85,6 +85,9 @@ bool 
cmExportBuildFileGenerator::GenerateMainFile(std::ostream os)
 this-PopulateInterfaceProperty(INTERFACE_AUTOUIC_OPTIONS, te,
 cmGeneratorExpression::BuildInterface,
 properties, missingTargets);
+this-PopulateInterfaceProperty(INTERFACE_COMPILE_FEATURES, te,
+cmGeneratorExpression::BuildInterface,
+properties, missingTargets);
 this-PopulateInterfaceProperty(INTERFACE_POSITION_INDEPENDENT_CODE,
   te, properties);
 const bool newCMP0022Behavior =
diff --git a/Source/cmExportInstallFileGenerator.cxx 
b/Source/cmExportInstallFileGenerator.cxx
index a83a228..89071c0 100644
--- a/Source/cmExportInstallFileGenerator.cxx
+++ b/Source/cmExportInstallFileGenerator.cxx
@@ -149,6 +149,10 @@ bool 
cmExportInstallFileGenerator::GenerateMainFile(std::ostream os)
   te,
   cmGeneratorExpression::InstallInterface,
   properties, missingTargets);
+this-PopulateInterfaceProperty(INTERFACE_COMPILE_FEATURES,
+  te,
+  cmGeneratorExpression::InstallInterface,
+  properties, missingTargets);
 
 const bool newCMP0022Behavior =
   te-GetPolicyStatusCMP0022() != cmPolicies::WARN
diff --git a/Tests/ExportImport/Export/Interface/CMakeLists.txt 
b/Tests/ExportImport/Export/Interface/CMakeLists.txt
index 9d4793d..1b653eb 100644
--- a/Tests/ExportImport/Export/Interface/CMakeLists.txt
+++ b/Tests/ExportImport/Export/Interface/CMakeLists.txt
@@ -23,7 +23,10 @@ set_property(TARGET sharedlib PROPERTY 
INTERFACE_COMPILE_DEFINITIONS SHAREDLIB_
 add_library(sharediface INTERFACE)
 target_link_libraries(sharediface INTERFACE sharedlib)
 
-install(TARGETS headeronly sharediface
+add_library(use_auto_type INTERFACE)
+target_compile_features(use_auto_type INTERFACE cxx_auto_type)
+
+install(TARGETS headeronly sharediface use_auto_type
   EXPORT expInterface
 )
 install(TARGETS sharedlib
diff --git a/Tests/ExportImport/Import/CMakeLists.txt 
b/Tests/ExportImport/Import/CMakeLists.txt
index 5e809a2..189f7a2 100644
--- a/Tests/ExportImport/Import/CMakeLists.txt
+++ b/Tests/ExportImport/Import/CMakeLists.txt
@@ -1,4 +1,5 @@
 cmake_minimum_required (VERSION 2.7.20090711)
+cmake_policy(SET CMP0025 NEW)
 project(Import C CXX)
 
 # Import everything in a subdirectory.
diff --git a/Tests/ExportImport/Import/Interface/CMakeLists.txt 
b/Tests/ExportImport/Import/Interface/CMakeLists.txt
index cf7e2bc..1f30c67 100644
--- a/Tests/ExportImport/Import/Interface/CMakeLists.txt
+++ b/Tests/ExportImport/Import/Interface/CMakeLists.txt
@@ -40,6 +40,23 @@ macro(do_try_compile prefix)
   if(NOT ${prefix}IFACE_TRY_COMPILE)
 message(SEND_ERROR ${prefix} try_compile with IMPORTED INTERFACE target 
failed!\n\n${OUTPUT})
   endif()
+
+  if (;${CMAKE_CXX_COMPILE_FEATURES}; MATCHES ;cxx_auto_type;)
+set(CMAKE_REQUIRED_LIBRARIES ${prefix}::use_auto_type)
+check_cxx_source_compiles(
+  
+int main(int,char**)
+{
+  auto value = 0;
+  return value;
+}
+ 

[Cmake-commits] CMake branch, next, updated. v3.0.0-rc3-2149-gc48fa9a

2014-04-08 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  c48fa9ac1355fe7f754e7dbd6a8cdcb17a5a8c09 (commit)
   via  a9fe65c316dbfebe5b69269cf50659fe1aa5919d (commit)
  from  69982fe430aceeb05bd3c6d9686384b1d728ca8c (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=c48fa9ac1355fe7f754e7dbd6a8cdcb17a5a8c09
commit c48fa9ac1355fe7f754e7dbd6a8cdcb17a5a8c09
Merge: 69982fe a9fe65c
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Apr 8 08:49:07 2014 -0400
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Apr 8 08:49:07 2014 -0400

Merge topic 'suppress-warning-in-comment' into next

a9fe65c3 cmSystemTools: Remove unreachable return on HP compiler


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a9fe65c316dbfebe5b69269cf50659fe1aa5919d
commit a9fe65c316dbfebe5b69269cf50659fe1aa5919d
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Apr 8 08:48:08 2014 -0400
Commit: Brad King brad.k...@kitware.com
CommitDate: Tue Apr 8 08:48:08 2014 -0400

cmSystemTools: Remove unreachable return on HP compiler

Follow up commit 1de08685 (cmSystemTools: Restore unreachable return to
silence warnings, 2014-04-02) by excluding the unreachable return on the
HP compiler as well as Clang.  Both recognize that it is unreachable and
warn.

diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 635e31c..c27b561 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -1616,7 +1616,7 @@ long copy_data(struct archive *ar, struct archive *aw)
   return (r);
   }
 }
-#if !defined(__clang__)
+#if !defined(__clang__)  !defined(__HP_aCC)
   return r; /* this should not happen but it quiets some compilers */
 #endif
 }

---

Summary of changes:
 Source/cmSystemTools.cxx |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


[Cmake-commits] CMake branch, next, updated. v3.0.0-rc3-2153-g19ef804

2014-04-08 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  19ef8048be624cde670218cb3cc878597c7f108f (commit)
   via  f401b925cf1711d4b77b1039204cb78c10b9252d (commit)
   via  c54be58309fbf9c2a5cfec8ba190c631e1db4a6c (commit)
   via  9b1abc543e9aee946e093229e1715c4b8a961514 (commit)
  from  c48fa9ac1355fe7f754e7dbd6a8cdcb17a5a8c09 (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=19ef8048be624cde670218cb3cc878597c7f108f
commit 19ef8048be624cde670218cb3cc878597c7f108f
Merge: c48fa9a f401b92
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Apr 8 13:07:38 2014 -0400
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Apr 8 13:07:38 2014 -0400

Merge topic 'update-kwsys' into next

f401b925 Merge branch 'upstream-kwsys' into update-kwsys
c54be583 KWSys 2014-04-07 (8b085635)
9b1abc54 CMake Nightly Date Stamp


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f401b925cf1711d4b77b1039204cb78c10b9252d
commit f401b925cf1711d4b77b1039204cb78c10b9252d
Merge: 9b1abc5 c54be58
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Apr 8 13:06:14 2014 -0400
Commit: Brad King brad.k...@kitware.com
CommitDate: Tue Apr 8 13:06:14 2014 -0400

Merge branch 'upstream-kwsys' into update-kwsys


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c54be58309fbf9c2a5cfec8ba190c631e1db4a6c
commit c54be58309fbf9c2a5cfec8ba190c631e1db4a6c
Author: KWSys Robot kwro...@kitware.com
AuthorDate: Mon Apr 7 09:49:13 2014 -0400
Commit: Brad King brad.k...@kitware.com
CommitDate: Tue Apr 8 13:06:10 2014 -0400

KWSys 2014-04-07 (8b085635)

Extract upstream KWSys using the following shell commands.

$ git archive --prefix=upstream-kwsys/ 8b085635 | tar x
$ git shortlog --no-merges --abbrev=8 --format='%h %s' 39f98b5d..8b085635
Rolf Eike Beer (2):
  a99a9235 set the compile flags for older HP compilers to fix 
compilation
  8b085635 MD5: avoid casting back and forth between size_t and int

Change-Id: I6386b521dbaba2e4f9ed5b2be34a504b9c17fc36

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 977d57b..5e6a226 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -299,6 +299,13 @@ IF(NOT CMAKE_COMPILER_IS_GNUCXX)
   ENDIF(CMAKE_SYSTEM MATCHES OSF1-V.*)
   IF(CMAKE_SYSTEM MATCHES HP-UX)
 SET(KWSYS_PLATFORM_CXX_TEST_EXTRA_FLAGS +p)
+IF(CMAKE_CXX_COMPILER_ID MATCHES HP)
+  # it is known that version 3.85 fails and 6.25 works without these flags
+  IF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4)
+# use new C++ library and improved template support
+SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -AA +hpxstd98)
+  ENDIF()
+ENDIF()
   ENDIF(CMAKE_SYSTEM MATCHES HP-UX)
 ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX)
 
diff --git a/MD5.c b/MD5.c
index 56776a3..a147057 100644
--- a/MD5.c
+++ b/MD5.c
@@ -478,11 +478,16 @@ void kwsysMD5_Initialize(kwsysMD5* md5)
 /*--*/
 void kwsysMD5_Append(kwsysMD5* md5, unsigned char const* data, int length)
 {
+  size_t dlen;
   if(length  0)
 {
-length = (int)strlen((char const*)data);
+dlen = strlen((char const*)data);
 }
-  md5_append(md5-md5_state, (md5_byte_t const*)data, (size_t)length);
+  else
+{
+dlen = (size_t)length;
+}
+  md5_append(md5-md5_state, (md5_byte_t const*)data, dlen);
 }
 
 /*--*/

---

Summary of changes:
 Source/CMakeVersion.cmake   |2 +-
 Source/kwsys/CMakeLists.txt |7 +++
 Source/kwsys/MD5.c  |9 +++--
 3 files changed, 15 insertions(+), 3 deletions(-)


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. v3.0.0-rc3-2156-g5f86bb5

2014-04-08 Thread Stephen Kelly
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  5f86bb5194a4122e1f8245ff8c5950cde9d358b5 (commit)
   via  adb96ae67e2ae5d8ab543fc60f11750a42ed0c41 (commit)
   via  eb20b962447a3e42e6b6ad62a829025b29f51b32 (commit)
  from  19ef8048be624cde670218cb3cc878597c7f108f (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=5f86bb5194a4122e1f8245ff8c5950cde9d358b5
commit 5f86bb5194a4122e1f8245ff8c5950cde9d358b5
Merge: 19ef804 adb96ae
Author: Stephen Kelly steve...@gmail.com
AuthorDate: Tue Apr 8 19:42:56 2014 -0400
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Apr 8 19:42:56 2014 -0400

Merge topic 'optimize-source-file-processing' into next

adb96ae6 cmTarget: Add all sources traced from custom commands at once.
eb20b962 cmTarget: Short-circuit language computation if context 
independent.

diff --cc Source/cmTarget.cxx
index 1d4d84c,9c0697d..d4c9556
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@@ -232,9 -227,9 +232,10 @@@ cmTarget::cmTarget(
this-BuildInterfaceIncludesAppended = false;
this-DebugIncludesDone = false;
this-DebugCompileOptionsDone = false;
 +  this-DebugCompileFeaturesDone = false;
this-DebugCompileDefinitionsDone = false;
this-DebugSourcesDone = false;
+   this-LinkImplementationLanguageIsContextDependent = true;
  }
  
  //

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=adb96ae67e2ae5d8ab543fc60f11750a42ed0c41
commit adb96ae67e2ae5d8ab543fc60f11750a42ed0c41
Author: Stephen Kelly steve...@gmail.com
AuthorDate: Wed Apr 9 01:32:14 2014 +0200
Commit: Stephen Kelly steve...@gmail.com
CommitDate: Wed Apr 9 01:38:23 2014 +0200

cmTarget: Add all sources traced from custom commands at once.

The AddSource method accepts one file and tries to avoiding adding
it to the sources-list of the target if it already exists.  This
involves creating many cmSourceFileLocation objects for matching
on existing files, which is an expensive operation.

Avoid the searching algorithm by appending the new sources as one
group.  Generate-time processing of source files will ensure
uniqueness.

Add a new AddTracedSources for this purpose.  The existing
AddSources method must process the input for policy CMP0049, but
as these source filenames come from cmSourceFile::GetFullPath(),
we can forego that extra processing.

diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index 0d25a00..ec5ce9e 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -610,6 +610,7 @@ private:
   std::setcmSourceFile* SourcesQueued;
   typedef std::mapstd::string, cmSourceFile* NameMapType;
   NameMapType NameMap;
+  std::vectorstd::string NewSources;
 
   void QueueSource(cmSourceFile* sf);
   void FollowName(std::string const name);
@@ -698,6 +699,8 @@ void cmTargetTraceDependencies::Trace()
   }
 }
   this-CurrentEntry = 0;
+
+  this-Target-AddTracedSources(this-NewSources);
 }
 
 //
@@ -707,8 +710,8 @@ void cmTargetTraceDependencies::QueueSource(cmSourceFile* 
sf)
 {
 this-SourceQueue.push(sf);
 
-// Make sure this file is in the target.
-this-Target-AddSource(sf-GetFullPath());
+// Make sure this file is in the target at the end.
+this-NewSources.push_back(sf-GetFullPath());
 }
 }
 
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 14af2aa..9c0697d 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -852,6 +852,33 @@ void cmTarget::GetSourceFiles(std::vectorcmSourceFile* 
files,
 }
 
 //
+void cmTarget::AddTracedSources(std::vectorstd::string const srcs)
+{
+  std::string srcFiles;
+  const char* sep = ;
+  for(std::vectorstd::string::const_iterator i = srcs.begin();
+  i != srcs.end(); ++i)
+{
+std::string filename = *i;
+srcFiles += sep;
+srcFiles += filename;
+sep = ;;
+}
+  if (!srcFiles.empty())
+{
+this-Internal-SourceFilesMap.clear();
+this-LinkImplementationLanguageIsContextDependent = true;
+cmListFileBacktrace lfbt;
+this-Makefile-GetBacktrace(lfbt);
+cmGeneratorExpression ge(lfbt);
+cmsys::auto_ptrcmCompiledGeneratorExpression cge = ge.Parse(srcFiles);
+cge-SetEvaluateForBuildsystem(true);
+this-Internal-SourceEntries.push_back(
+  new cmTargetInternals::TargetPropertyEntry(cge));

[Cmake-commits] CMake branch, master, updated. v3.0.0-rc3-517-g8512bb4

2014-04-08 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  8512bb4fff741360994317ed832be05b8b122721 (commit)
  from  9b1abc543e9aee946e093229e1715c4b8a961514 (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=8512bb4fff741360994317ed832be05b8b122721
commit 8512bb4fff741360994317ed832be05b8b122721
Author: Kitware Robot kwro...@kitware.com
AuthorDate: Wed Apr 9 00:01:06 2014 -0400
Commit: Kitware Robot kwro...@kitware.com
CommitDate: Wed Apr 9 00:01:06 2014 -0400

CMake Nightly Date Stamp

diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index 641c801..89b5c69 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 20140408)
+set(CMake_VERSION_PATCH 20140409)
 #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