[cmake-developers] Multiple dependent install(EXPORT) sets

2011-11-22 Thread Brad King

On 11/22/2011 9:31 AM, Stephen Kelly wrote:

CMake Error: INSTALL(EXPORT twoDeps ...) includes target libtwo which
requires target libone that is not in the export set.

How can we resolve this?


http://public.kitware.com/Bug/view.php?id=12588

Brad asked to bring this up on the list for discussion.


Additional CMake development is needed to support this.  We need to
introduce the notion of multiple dependent install(EXPORT) sets.

I think the commands will look something like this:

  add_library(A ...)
  add_library(B ...)
  target_link_libraries(B A)
  install(TARGETS A ... EXPORT ExportA)
  install(TARGETS B ... EXPORT ExportB)
  install(EXPORT ExportA ...)
  install(EXPORT ExportB DEPENDS ExportA ...)

The DEPENDS ExportA option to install(EXPORT) on the last line will need to
be added and implemented.  We will have to require that the install(EXPORT)
commands be invoked in dependency order (ex. A before B).  That way when
the command installing ExportB is writing library B's dependency on A, it
can transform the name using the options that had been given to the install
command for ExportA, such as its NAMESPACE.  Furthermore, the targets file
generated for ExportB will need to include() the file generated for ExportA
using the DESTINATION given to the latter to make its targets available.

Take a look at cmInstallExportGenerator, cmExportInstallFileGenerator,
and cmGlobalGenerator's ExportSets member.  Some of them will need to be
refactored to allow an export set to refer to other exports sets as
dependencies.  The check in cmExportFileGenerator::SetImportLinkProperty
for availability of a target's dependencies will have to be replaced with
a lookup that follows the export set's dependencies.  If the dependency
belongs to another set, that other set's prefix must be used when referring
to the target.

-Brad
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] Multiple dependent install(EXPORT) sets

2011-11-22 Thread Stephen Kelly
Brad King wrote:

 On 11/22/2011 9:31 AM, Stephen Kelly wrote:
 CMake Error: INSTALL(EXPORT twoDeps ...) includes target libtwo
 which requires target libone that is not in the export set.

 How can we resolve this?

 http://public.kitware.com/Bug/view.php?id=12588

 Brad asked to bring this up on the list for discussion.
 
 Additional CMake development is needed to support this.  We need to
 introduce the notion of multiple dependent install(EXPORT) sets.
 
 I think the commands will look something like this:
 
add_library(A ...)
add_library(B ...)
target_link_libraries(B A)
install(TARGETS A ... EXPORT ExportA)
install(TARGETS B ... EXPORT ExportB)
install(EXPORT ExportA ...)
install(EXPORT ExportB DEPENDS ExportA ...)
 
 The DEPENDS ExportA option to install(EXPORT) on the last line will need
 to
 be added and implemented.  We will have to require that the
 install(EXPORT)
 commands be invoked in dependency order (ex. A before B).  That way when
 the command installing ExportB is writing library B's dependency on A, it
 can transform the name using the options that had been given to the
 install
 command for ExportA, such as its NAMESPACE.  Furthermore, the targets file
 generated for ExportB will need to include() the file generated for
 ExportA using the DESTINATION given to the latter to make its targets
 available.

And its FILE presumably, but why? This ties in to the question of whether 
find_package(B) should find the dependencies of B:

case 1:
project(big_project)

find_package(A) // Uses AConfig.cmake, which includes ATargets.cmake
find_package(B) // Uses BConfig.cmake, which includes BTargets.cmake

case 2:
project(big_project)

find_package(B) // Uses BConfig.cmake, which includes BTargets.cmake 
// and ATargets.cmake, but there was no find_package(A), 
// so this is broken anyway.

case 3:
project(big_project)

find_package(B) // Uses BConfig.cmake, which runs find_package(A), 
// includes BTargets.cmake and ATargets.cmake, despite the 
// fact that, find_package(A) has the effect of including it 
// anyway.



--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] Multiple dependent install(EXPORT) sets

2011-11-22 Thread Brad King

On 11/22/2011 10:03 AM, Stephen Kelly wrote:

Brad King wrote:

We will have to require that the install(EXPORT)
commands be invoked in dependency order (ex. A before B).  That way when
the command installing ExportB is writing library B's dependency on A, it
can transform the name using the options that had been given to the
install command for ExportA, such as its NAMESPACE.


This is required because ExportB will create an imported target for library B
and that imported target will list its dependency on an imported target for
library A.  What is that imported target called?  Where is it defined?  Only
ExportA knows, and then only after its install(EXPORT) has been called.


Furthermore, the targets file
generated for ExportB will need to include() the file generated for
ExportA using the DESTINATION given to the latter to make its targets
available.


And its FILE presumably, but why? This ties in to the question of whether
find_package(B) should find the dependencies of B:


We could leave this part out and leave it up to the Config.cmake file
author to ensure ExportA's targets file is loaded when ExportB's targets
file is loaded.

-Brad
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Alexander Neundorf
On Tuesday 22 November 2011, Stephen Kelly wrote:
 On 11/10/2011 10:16 PM, Alexander Neundorf wrote:
  On Wednesday 02 November 2011, David Faure wrote:
  On Monday 31 October 2011 21:47:31 Alexander Neundorf wrote:
  On Monday 31 October 2011, David Faure wrote:
  This is a typical (kde) case where the .cpp incudes the .moc, for the
  object defined in the .h.
  
  Shouldn't it include moc_kauthactionwatcher.cpp ?
  
  No, that's for the case where the qobject is in the .cpp file.
  
  Is this really a typical case, i.e. is that done in many places ?
  
  Yes. Just grep for moc includes in kde...
  
  I thought the rule is that if there is a include foo.moc, the Q_OBJECT
  is in the same cpp file.
  
  No, it's the other way around, in KDE.
  
  $ grep Q_OBJECT kautosavefile.*
  kautosavefile.h:Q_OBJECT
  $ grep moc kautosavefile.cpp
  #include kautosavefile.moc
  
  If it did additionally other things, this was more or less
  accidentially.
  
  But it was the way kdesupport/automoc always worked, on purpose, not
  accidentally.
  
  OK, more precisely: it didn't care what the name of the included moc
  file was, what mattered was, where is Q_OBJECT being used.
  
  As the kde4automoc.cpp code says: when parsing the .cpp file:
  
  // If the moc include is of the moc_foo.cpp style we expect the Q_OBJECT
  class // declaration in a header file.
  // If the moc include is of the foo.moc style we need to look for a
  Q_OBJECT // macro in the current source file, if it contains the macro
  we generate the // moc file from the source file, else from the header.
  
  The logic which is currently implemented is:
  
  1. if foo.cpp includes foo.moc, run moc on foo.cpp and generate foo.moc
  
  That should depend on if foo.cpp actually says Q_OBJECT or not.
  Otherwise this .moc should be created from the header file. Not much
  point in running moc over a .cpp that doesn't define a Q_OBJECT :)
  
  2. run moc on all header files bar.h which contain Q_OBJECT and
  generate moc_bar.cpp from them
  
  That could be moc_bar.cpp or bar.moc depending on which one is included.
  
  (which in detail means:
  2.1 for every included moc_xyz.cpp (no matter in which file), search
  for a corresponsing xyz.h/hxx/hpp file and run moc on it
  
  2.2 for every bar.cpp file, check whether there is a corresponding
  bar.h/hpp/hxx file and collect it
  
  2.3 check for a Q_OBJECT macro in all collected header files and all
  header files listed explicitely as a source for the target, and run moc
  on them. If the resulting moc_xyz.cpp file has not been included in any
  source file, include it intargetname_automoc.cpp, which is built as
  part of the target )
  
  Step 2.2 already involves guessing, which I don't like.
  Beside that, IMO these are clear rules, which are easy to understand.
  
  With the old behaviour it was actually ambigous:
  
  foo.h:
  class Foo
  {
  
 Q_OBJECT
  
  };
  
  
  foo.cpp:
  
  Foo::Foo() {}
  
  #include foo.moc
  #include moc_foo.cpp
  
  This would have generated twice the same moc file, I think. IMO this is
  really confusing.
  
  Well there is no reason to include both, unless you have Q_OBJECT in the
  .cpp file too :-)
  
  Now it is simple: foo.moc from foo.cpp, moc_foo.cpp from foo.h.
  
  If this is really done in many places in KDE, I'll add some workaround,
  but I think the default behaviour should stay as it is now in cmake
  git.
  
  How does qmake handle such cases ?
  
  Checking
  Indeed qmake expects moc_foo.cpp for the standard case (Q_OBJECT in
  header). This is why kde4automoc was made to support both moc filenames,
  so that it could be compatible with the kde way of doing it (foo.moc)
  and with the qmake way of doing it (moc_foo.cpp).
  
  Oh well, if you want to stick to that we'll change all of KDE, for the
  benefit of a clearer future indeed... At least it won't be an source
  incompatible change for app developers since they will have to enable
  CMAKE_AUTOMOC to get into this situation. Merely upgrading cmake or KDE
  (even to frameworks 5) won't trigger it. OK not exactly,
  find_package(kde4) will stop working so they will -have- to port to
  CMAKE_AUTOMOC, it will be the only solution available...
  
  Please give the RestoreAutmocKDECompatibility branch on cmake stage a
  try. It should work again, but print a warning if a file includes a
  moc_foo.cpp, but no foo.moc, and contains a Q_OBJECT macro.
  
  For Qt5 I'd prefer to not support that anymore.
  I.e. moc_foo.cpp -  header, foo.moc -  source file.
  
  Alex
 
 I tried that branch.

I think I merged it into next in the meantime.

 It doesn't build the frameworks branch for me. Does it work for you?

I haven't actually tried, I was relying on the frameworks developers (e.g. 
you) for that :-)
In CMake/Tests/QtAutomoc/ there are several cases tested, actually I think all 
I could think of.

Using Qt5 or Qt4 ?

 There seems to be several problems:
 
 * KDE does include foo.moc if it wants the 

Re: [cmake-developers] Multiple dependent install(EXPORT) sets

2011-11-22 Thread Alexander Neundorf
On Tuesday 22 November 2011, Brad King wrote:
 On 11/22/2011 10:03 AM, Stephen Kelly wrote:
  Brad King wrote:
  We will have to require that the install(EXPORT)
  commands be invoked in dependency order (ex. A before B).  That way when
  the command installing ExportB is writing library B's dependency on A,
  it can transform the name using the options that had been given to the
  install command for ExportA, such as its NAMESPACE.
 
 This is required because ExportB will create an imported target for library
 B and that imported target will list its dependency on an imported target
 for library A.  What is that imported target called?  Where is it defined?
  Only ExportA knows, and then only after its install(EXPORT) has been
 called.

Yes.

Where/why is it actually necessary to split libraries installed from one 
package into multiple Config.cmake files ?
This is now to install separate libraries from a big kdelibs, right ?
Maybe we (KDE) simply shouldn't do this, and just start with it once the big 
modules are broken into separate parts.
Then each of the smaller parts can install a Config.cmake file for all its 
libraries. If e.g. libkgui depends on libkcore, currently those two targets 
would exist in one project, but installed as two export sets.
Once they are separated into two projects, then libkgui depends already on the 
imported target KDE::kcore (or how it is named), and referencing this in its 
Targets.cmake file works fine.
We do this already with Qt4.
 
  Furthermore, the targets file
  generated for ExportB will need to include() the file generated for
  ExportA using the DESTINATION given to the latter to make its targets
  available.
  
  And its FILE presumably, but why? This ties in to the question of whether
 
  find_package(B) should find the dependencies of B:
 We could leave this part out and leave it up to the Config.cmake file
 author to ensure ExportA's targets file is loaded when ExportB's targets
 file is loaded.

Yes.

Alex
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Stephen Kelly

On 11/22/2011 06:20 PM, Alexander Neundorf wrote:

Using Qt5 or Qt4 ?


Qt4.


There seems to be several problems:

* KDE does include foo.moc if it wants the header file to be moc'd.
This is 'incorrect' compared to what qmake expects, which would be a
moc_foo.cpp include.

Yes.


* Some places in KDE use include moc_foo.cpp 'correctly', but there
are only about 10 occurrences. The current automoc tool seems to handle
that, as does cmake 2.8.6 apparently.

I thought about this. There are 4 constellations, and only one constellation
where things can break:

* foo.cpp includes neither foo.moc nor moc_foo.cpp. No problem.


Sort of. There are cases where the moc file must be included in the cpp 
file (see below).


But this removal of includes is what we should aim for in KDE. I think 
if the options are:


1) Introduce odd hacky KDE specific workarounds to CMake
2) Remove the problematic includes from KDE files in the frameworks branch

I will side with option 2). CMAKE_AUTOMOC is not used in KDE4. The 
feature is only really relevant to non KDE Qt4 users. Let's just 'fix 
the bug' in the frameworks iteration of kdelibs.



* if foo.cpp includes both foo.moc and moc_foo.cpp, then both foo.h and
foo.cpp will be moc'ed, and it doesn't matter which one is for which. No
problem.
It seems there is a test missing for this case.


Yes.


* if foo.cpp includes only foo.moc, then foo.cpp will be moc'ed. This may be
unnecessary, but shouldn't create problems. If foo.h also needs to be moc'ed,
it will be, and the resulting moc_foo.cpp will be included in the
target_automoc.cpp file. So it should also work.
This is Tests/QtAutomoc/codeeditor.cpp


Sort of. There are cases where the moc file must be included in the cpp 
file, because it needs definitions from the .h file. (eg, use of the 
Q_PRIVATE_SLOT macro).


If a KDE developer included foo.moc expecting that to be the result of 
moc'ing the .h file, the build will fail.


In this case, foo.cpp needs to be fixed to include moc_foo.cpp 
instead. I don't think CMake should introduce a hack for this.




* problematic case: if foo.cpp includes only moc_foo.cpp, then cmake will
check whether foo.cpp contains Q_OBJECT. If it does, it will:
** fail with Qt5, stating that foo.cpp contains Q_OBJECT but does not include
foo.moc, so it can't work


I think this is fine.


** warn with Qt4 that it will run moc on foo.cpp instead of foo.h to generate
moc_foo.cpp
This is Tests/QtAutomoc/blub.cpp



* KDE does include foo_test.moc in foo_test.cpp to moc the test object
in foo_test.cpp. This is 'correct' compared to what qmake does.

Yes.


* KDE does eg, include kjob_p.moc in kjob.cpp to cause kjob_p.h to be
moc'd. The RestoreAutmocKDECompatibility branch introduces a commit
which makes this not work because the source file has a different basename.

Yes.
I did not expect somebody would be doing this.
I don't want to support this for Qt5.
I can add a fix with a warning for Qt4.


This is not uncommon in both KDE and in Qt itself, or any other project 
where it makes sense to put a QObject-inherited class in the _p.h as an 
internally used class. See for example, qplaintextedit.cpp:


#include moc_qplaintextedit.cpp
#include moc_qplaintextedit_p.cpp

This should be supported by the automoc feature.

I have also seen places (I think in QtDeclarative) where a foo.cpp file 
included the file moc_bar.cpp, though that is very uncommon. The logic 
that I would use would be something like:


find #include moc_(.*).cpp - generate moc for \\1.h
find #include (.*).moc - generate moc for \\1.cpp

Was there a reason for preventing this?


I think we need to have a list of exactly what cases should be
supported,

This is the current documentation of automoc in cmake. I was hoping it would
be relatively clear:

If an #include statement like #include \moc_foo.cpp\ is found,
the Q_OBJECT class declaration is expected in the header, and moc is
run on the header file.
If an #include statement like #include \foo.moc\ is found,
then a Q_OBJECT is expected in the current source file and moc
is run on the file itself.
Additionally, all header files are parsed for Q_OBJECT macros,
and if found, moc is also executed on those files. The resulting
moc files, which are not included as shown above in any of the source
files are included in a generatedtargetname_automoc.cpp file, 
which is compiled as part of the target.

This should be compatible to qmake, and this is what I'd like to support for
Qt5.


Nearly. As you can see, there are quite some differences compared to the 
qmake behavior.





and fix KDE to do the right thing. I think in many cases,
fixing KDE will just be removing the explicit include foo.moc which is
intended to run moc on foo.h, and let the automatic moc'ing do the work.

If any other 'KDE compatilbility' features are in cmQtAutomoc which
differ from qmake behavior, I really think it should be behind an option
which is off by default, which KDE turns on, and then actively ports
away 

Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Alexander Neundorf
On Tuesday 22 November 2011, Stephen Kelly wrote:
 On 11/22/2011 06:20 PM, Alexander Neundorf wrote:
  Using Qt5 or Qt4 ?
 
 Qt4.
 
  There seems to be several problems:
  
  * KDE does include foo.moc if it wants the header file to be moc'd.
  This is 'incorrect' compared to what qmake expects, which would be a
  moc_foo.cpp include.
  
  Yes.
  
  * Some places in KDE use include moc_foo.cpp 'correctly', but there
  are only about 10 occurrences. The current automoc tool seems to handle
  that, as does cmake 2.8.6 apparently.
  
  I thought about this. There are 4 constellations, and only one
  constellation where things can break:
  
  * foo.cpp includes neither foo.moc nor moc_foo.cpp. No problem.
 
 Sort of. There are cases where the moc file must be included in the cpp
 file (see below).
 
 But this removal of includes is what we should aim for in KDE. I think
 if the options are:
 
 1) Introduce odd hacky KDE specific workarounds to CMake
 2) Remove the problematic includes from KDE files in the frameworks branch
 
 I will side with option 2). CMAKE_AUTOMOC is not used in KDE4. The
 feature is only really relevant to non KDE Qt4 users. Let's just 'fix
 the bug' in the frameworks iteration of kdelibs.
 
  * if foo.cpp includes both foo.moc and moc_foo.cpp, then both foo.h and
  foo.cpp will be moc'ed, and it doesn't matter which one is for which. No
  problem.
  It seems there is a test missing for this case.
 
 Yes.
 
  * if foo.cpp includes only foo.moc, then foo.cpp will be moc'ed. This may
  be unnecessary, but shouldn't create problems. If foo.h also needs to be
  moc'ed, it will be, and the resulting moc_foo.cpp will be included in
  the target_automoc.cpp file. So it should also work.
  This is Tests/QtAutomoc/codeeditor.cpp
 
 Sort of. There are cases where the moc file must be included in the cpp
 file, because it needs definitions from the .h file. (eg, use of the
 Q_PRIVATE_SLOT macro).

I don't know that one.
Are there docs somewhere ?
I have also seen a I think Q_GADGET macro mentioned somewhere, but also didn't 
find docs.
If they exist and require special handling, adding this special handling is 
fine IMO.

 If a KDE developer included foo.moc expecting that to be the result of
 moc'ing the .h file, the build will fail.
 
 In this case, foo.cpp needs to be fixed to include moc_foo.cpp
 instead. I don't think CMake should introduce a hack for this.

  * problematic case: if foo.cpp includes only moc_foo.cpp, then cmake will
  check whether foo.cpp contains Q_OBJECT. If it does, it will:
  ** fail with Qt5, stating that foo.cpp contains Q_OBJECT but does not
  include foo.moc, so it can't work
 
 I think this is fine.
 
  ** warn with Qt4 that it will run moc on foo.cpp instead of foo.h to
  generate moc_foo.cpp
  This is Tests/QtAutomoc/blub.cpp
  
  * KDE does include foo_test.moc in foo_test.cpp to moc the test object
  in foo_test.cpp. This is 'correct' compared to what qmake does.
  
  Yes.
  
  * KDE does eg, include kjob_p.moc in kjob.cpp to cause kjob_p.h to be
  moc'd. The RestoreAutmocKDECompatibility branch introduces a commit
  which makes this not work because the source file has a different
  basename.
  
  Yes.
  I did not expect somebody would be doing this.
  I don't want to support this for Qt5.
  I can add a fix with a warning for Qt4.
 
 This is not uncommon in both KDE and in Qt itself, or any other project
 where it makes sense to put a QObject-inherited class in the _p.h as an
 internally used class. See for example, qplaintextedit.cpp:
 
 #include moc_qplaintextedit.cpp
 #include moc_qplaintextedit_p.cpp
 
 This should be supported by the automoc feature.

Yes, it should work.
I'm adding a test.

 I have also seen places (I think in QtDeclarative) where a foo.cpp file
 included the file moc_bar.cpp, though that is very uncommon. The logic
 that I would use would be something like:
 
 find #include moc_(.*).cpp - generate moc for \\1.h

This should work right now.
I thought there is a test for this. Checking.

 find #include (.*).moc - generate moc for \\1.cpp
 Was there a reason for preventing this?
 
We can do that, but how can that work ?
I mean, this will generate code for a class which is declated in a different 
source file, so it is unknown in the including file, no ?

  I think we need to have a list of exactly what cases should be
  supported,
  
  This is the current documentation of automoc in cmake. I was hoping it
  would be relatively clear:
  
  If an #include statement like #include \moc_foo.cpp\ is found,
  the Q_OBJECT class declaration is expected in the header, and moc is
  run on the header file.
  If an #include statement like #include \foo.moc\ is found,
  then a Q_OBJECT is expected in the current source file and moc
  is run on the file itself.
  Additionally, all header files are parsed for Q_OBJECT macros,
  and if found, moc is also executed on those files. The resulting
  moc files, which are not included as shown above in any of the 

Re: [cmake-developers] Multiple dependent install(EXPORT) sets

2011-11-22 Thread Stephen Kelly
Alexander Neundorf wrote:

 On Tuesday 22 November 2011, Brad King wrote:
 On 11/22/2011 10:03 AM, Stephen Kelly wrote:
  Brad King wrote:
  We will have to require that the install(EXPORT)
  commands be invoked in dependency order (ex. A before B).  That way
  when the command installing ExportB is writing library B's dependency
  on A, it can transform the name using the options that had been given
  to the install command for ExportA, such as its NAMESPACE.
 
 This is required because ExportB will create an imported target for
 library B and that imported target will list its dependency on an
 imported target
 for library A.  What is that imported target called?  Where is it
 defined?
  Only ExportA knows, and then only after its install(EXPORT) has been
 called.
 
 Yes.
 
 Where/why is it actually necessary to split libraries installed from one
 package into multiple Config.cmake files ?
 This is now to install separate libraries from a big kdelibs, right ?
 Maybe we (KDE) simply shouldn't do this, and just start with it once the
 big modules are broken into separate parts.

Maybe. Should nobody install multiple 'modular pieces' from one top level 
CMakeLists.txt? It's sort of superbuild without superbuild, but with the 
advantage that the sources are in the source directory.

 Then each of the smaller parts can install a Config.cmake file for all its
 libraries. If e.g. libkgui depends on libkcore, currently those two
 targets would exist in one project, but installed as two export sets.
 Once they are separated into two projects, then libkgui depends already on
 the imported target KDE::kcore (or how it is named), and referencing this
 in its Targets.cmake file works fine.

Does a target know its imported target name or is it really just the export 
mechanism? Would it be possible for the export mechanism to inform the 
targets of their imported target name and location so that that information 
can be retrieved by dependents?

Consider this:

add_library(bar)
add_library(foo)
target_link_libraries(foo bar)

install(TARGETS bar EXPORT barTargets ...)
install(TARGETS foo EXPORT fooTargets ...)

install(EXPORTS barTargets NAMESPACE myNS) # sets a property on bar that its 
   # imported name is myNS::bar
install(EXPORTS fooTargets NAMESPACE otherNS) # Maps from the LINK_LIBRARIES 
  # information 'bar' to 
  # 'myNS::bar' to populate the 
  # dependency information

This also removes the need for explicit dependencies between 
install(EXPORTS) invocations, which is already implicitly specified by the 
(public) link interface of targets build in the same build system.

 We do this already with Qt4.

You mean in FindQt4.cmake? I'm not sure it's the same situation.

  
  Furthermore, the targets file
  generated for ExportB will need to include() the file generated for
  ExportA using the DESTINATION given to the latter to make its targets
  available.
  
  And its FILE presumably, but why? This ties in to the question of
  whether
 
  find_package(B) should find the dependencies of B:
 We could leave this part out and leave it up to the Config.cmake file
 author to ensure ExportA's targets file is loaded when ExportB's targets
 file is loaded.
 

Why the Config file author? Why not the consumer of the config files? You 
mean that the author of BConfig.cmake should ensure that ExportA's targets 
file is loaded? How would it do that without a find_package(A)?

Thanks,

Steve.



--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Stephen Kelly

On 11/22/2011 07:10 PM, Alexander Neundorf wrote:

  find #include (.*).moc -  generate moc for \\1.cpp
  Was there a reason for preventing this?


We can do that, but how can that work ?
I mean, this will generate code for a class which is declated in a different
source file, so it is unknown in the including file, no ?



You're right sorry, I was just cut+paste+modifying.

If  #include (.*).moc CMAKE_MATCH_1 MATCHES basename, then moc self I 
guess.

--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Alexander Neundorf
On Tuesday 22 November 2011, Alexander Neundorf wrote:
 On Tuesday 22 November 2011, Stephen Kelly wrote:
...
  This is not uncommon in both KDE and in Qt itself, or any other project
  where it makes sense to put a QObject-inherited class in the _p.h as an
  internally used class. See for example, qplaintextedit.cpp:
  
  #include moc_qplaintextedit.cpp
  #include moc_qplaintextedit_p.cpp
  
  This should be supported by the automoc feature.
 
 Yes, it should work.
 I'm adding a test.

Test added, works.
What is not working right now is including someotherfile.moc. I could add 
special handling for including thisfile_p.moc (as opposed to 
moc_thisfile_p.cpp, which works).


  I have also seen places (I think in QtDeclarative) where a foo.cpp file
  included the file moc_bar.cpp, though that is very uncommon. The logic
  that I would use would be something like:
  
  find #include moc_(.*).cpp - generate moc for \\1.h
 
 This should work right now.
 I thought there is a test for this. Checking.

Test added, works.
 
Can you please update from this branch and see what testcases are missing in 
QtAutomoc/Tests/ ?

Thanks
Alex
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Stephen Kelly

On 11/22/2011 07:37 PM, David Faure wrote:

On Tuesday 22 November 2011 14:33:25 Stephen Kelly wrote:

  I think in many cases,
fixing KDE will just be removing the explicit include foo.moc which is
intended to run moc on foo.h, and let the automatic moc'ing do the work.

No, to include moc_foo.cpp instead, if that's what cmake automoc would
generate.

If you don't include any moc, then the moc is compiled separately, which leads
to slower compilation.



Are you sure? I think all moc files of a target which are not included 
elsewhere are included in a _automoc.cpp file, which is then built as 
the automoc target. See ${kdeui_BUILD_DIR}/kdeui_automoc.cpp for example.


There should be no slowdown AFAICT.
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] slow regex implementation in RegularExpression

2011-11-22 Thread Alexandru Ciobanu

On 2011-11-17, at 3:59 PM, Brad King wrote:

 On 11/17/2011 3:19 PM, Alexandru Ciobanu wrote:
  I was able to make CMake use TRE, by changing the
  RegularExpression.{cxx,hxx.in} files.
 
 Those are down in Source/kwsys which is a directory shared by
 projects other than just CMake.  We cannot touch the files there.
 Instead you will need to re-factor things to go through a wrapper.
 The first stage will just wrap up the KWSys regular expression API.
 The second stage will replace the implementation with TRE.
 
 - Does anyone see a problem if we add TRE in CMake the same
  way as ZLIB, CURL, etc? (i.e. in ./Utilities/)
 
 That should be fine.
 
 -Brad


Hi,

As Brad King suggested, instead of changing the files in Source/kwsys/, I 
created a wrapper class and made all the calls go through it.

I also added the TRE library to Utilities/cmtre, and added CMAKE_USE_SYSTEM_TRE.

I added the patch to the bug tracker:
 http://public.kitware.com/Bug/view.php?id=12381

Needless to say, the patch fixes the performance problem.

To keep things simple I omitted several things:
   - TRE library bootstrapping (so now the Bootstrap test will fail)
   - the suggested policy to enable/disable approximate matching in TRE 
   - proper checks when building TRE with CMake as done in its ./configure.ac 

Before I spend more time on that I would like to get some feedback, and namely:
   - Is the approach correct?
   - What next?

sincerely,
Alex Ciobanu--

Powered by www.kitware.com

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

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

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

Re: [cmake-developers] Multiple dependent install(EXPORT) sets

2011-11-22 Thread Alexander Neundorf
On Tuesday 22 November 2011, Stephen Kelly wrote:
 Alexander Neundorf wrote:
  On Tuesday 22 November 2011, Brad King wrote:
  On 11/22/2011 10:03 AM, Stephen Kelly wrote:
   Brad King wrote:
   We will have to require that the install(EXPORT)
   commands be invoked in dependency order (ex. A before B).  That way
   when the command installing ExportB is writing library B's dependency
   on A, it can transform the name using the options that had been given
   to the install command for ExportA, such as its NAMESPACE.
  
  This is required because ExportB will create an imported target for
  library B and that imported target will list its dependency on an
  imported target
  for library A.  What is that imported target called?  Where is it
  defined?
  
   Only ExportA knows, and then only after its install(EXPORT) has been
  
  called.
  
  Yes.
  
  Where/why is it actually necessary to split libraries installed from one
  package into multiple Config.cmake files ?
  This is now to install separate libraries from a big kdelibs, right ?
  Maybe we (KDE) simply shouldn't do this, and just start with it once the
  big modules are broken into separate parts.
 
 Maybe. Should nobody install multiple 'modular pieces' from one top level
 CMakeLists.txt? It's sort of superbuild without superbuild, but with the
 advantage that the sources are in the source directory.

Yes, maybe, but this was not initially the goal, so that doesn't work right 
now.
The motivation for exporting multiple sets of targets from one project was (at 
least among others) to be able to export libraries and executables separately.
This way when crosscompiling, the crosscompiled project can import the 
executable targets from a native build, and do e.g. 
get_target_property(LOCATION ) on the imported executable target the same way 
it can do that in the native build where it has really built the executable. 
Also executable targets are recognized as commands in add_custom_command() and 
add_custom_executable(), so you can simply use the target name there and don't 
have to care whether it is an imported executable target from a native build 
or whether you are natively building.

For that purpose splitting the libraries into multiple dependend sets was not 
necessary (which doesn't mean it would be a bad thing).


  Then each of the smaller parts can install a Config.cmake file for all
  its libraries. If e.g. libkgui depends on libkcore, currently those two
  targets would exist in one project, but installed as two export sets.
  Once they are separated into two projects, then libkgui depends already
  on the imported target KDE::kcore (or how it is named), and referencing
  this in its Targets.cmake file works fine.
 
 Does a target know its imported target name or is it really just the export
 mechanism? 

It's only in the export sets. You can also put a target into multiple export 
sets, with different namespaces etc. if you want to.
With that, one exported target doesn't know which of the potentially multiple 
names of the exported target it depends on it should use.

 Would it be possible for the export mechanism to inform the
 targets of their imported target name and location so that that information
 can be retrieved by dependents?
 
 Consider this:
 
 add_library(bar)
 add_library(foo)
 target_link_libraries(foo bar)
 
 install(TARGETS bar EXPORT barTargets ...)
 install(TARGETS foo EXPORT fooTargets ...)
 
 install(EXPORTS barTargets NAMESPACE myNS) # sets a property on bar that its 
# imported name is myNS::bar

install(EXPORTS barTargets NAMESPACE myNS2)  #didn't test but I think it works

 install(EXPORTS fooTargets NAMESPACE otherNS) # Maps from the LINK_LIBRARIES
   # information 'bar' to
   # 'myNS::bar' to populate the
   # dependency information
  # or myNS2 ?

...
 This also removes the need for explicit dependencies between
 install(EXPORTS) invocations, which is already implicitly specified by the
 (public) link interface of targets build in the same build system.
 
  We do this already with Qt4.
 
 You mean in FindQt4.cmake? I'm not sure it's the same situation.

I was talking about the following:

FindQt4.cmake creates imported targets. In kdelibs we link against them. The 
names of the imported targets from Qt4 appear again in the Targets.cmake file 
for kdelibs:

# Import target KDE4__kdecore for configuration RelWithDebInfo
...
SET_TARGET_PROPERTIES(KDE4__kdecore PROPERTIES
  IMPORTED_LINK_INTERFACE_LIBRARIES_RELWITHDEBINFO Qt4::QtDBus;Qt4::QtCore;-
lpthread
  IMPORTED_LOCATION_RELWITHDEBINFO 
/home/alex/Dashboards/installs/2.8.1/kdelibs/lib/libkdecore.so.5.5.0
  IMPORTED_SONAME_RELWITHDEBINFO libkdecore.so.5
  )


In FindKDE4Internal.cmake we do find_package(Qt4), which creates the imported 

Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Alexander Neundorf
On Tuesday 22 November 2011, Stephen Kelly wrote:
 On 11/10/2011 10:16 PM, Alexander Neundorf wrote:
...
  Please give the RestoreAutmocKDECompatibility branch on cmake stage a
  try. It should work again, but print a warning if a file includes a
  moc_foo.cpp, but no foo.moc, and contains a Q_OBJECT macro.
  
  For Qt5 I'd prefer to not support that anymore.
  I.e. moc_foo.cpp -  header, foo.moc -  source file.
  
  Alex
 
 I tried that branch. It doesn't build the frameworks branch for me. 


I found the mistake !

When I wrote that mail two weeks ago it was the RestoreAutmocKDECompatibility 
branch. This got merged into master in the meantime.

Once your Qt5 branch was merged, I created a new branch named 
AutomocIncludedDotMocFileHandling.

This is the branch I'm talking about.

Alex
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] [PATCH 3/3] Add the Ninja generator

2011-11-22 Thread Peter Collingbourne
On Mon, Nov 14, 2011 at 08:18:16AM +0100, Rolf Eike Beer wrote:
  diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake
  index 8d6f5df..bdcaf9d 100644
  --- a/Modules/Compiler/GNU.cmake
  +++ b/Modules/Compiler/GNU.cmake
  @@ -24,6 +24,15 @@ macro(__compiler_gnu lang)
 set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS -fPIC)
 set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS -shared)
  
  +  # Older versions of gcc ( 4.5) contain a bug causing them to report a
  missing +  # header file as a warning if depfiles are enabled, causing
  check_header_file +  # tests to always succeed.  Work around this by
  disabling dependency tracking +  # in try_compile mode.
  +  GET_PROPERTY(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE)
  +  if(NOT _IN_TC OR CMAKE_FORCE_DEPFILES)
  +set(CMAKE_DEPFILE_FLAGS_${lang} -MMD -MF DEPFILE)
  +  endif()
  +
 # Initial configuration flags.
 set(CMAKE_${lang}_FLAGS_INIT )
 set(CMAKE_${lang}_FLAGS_DEBUG_INIT -g)
 
 This may only affect Ninja, but it looks like a general bug. Shouldn't this 
 be 
 it's own commit then?

The Ninja generator is the only user of CMAKE_DEPFILE_FLAGS_${lang}
variables.  I will add this in its own commit to make it clear that
these variables can also be used by other generators.

Thanks,
-- 
Peter
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] [PATCH 0/3] The CMake Ninja generator.

2011-11-22 Thread Alexander Neundorf
On Tuesday 22 November 2011, Peter Collingbourne wrote:
 On Tue, Nov 15, 2011 at 06:54:01PM +0100, Nicolas Desprès wrote:
  On Tue, Nov 15, 2011 at 5:29 PM, Bill Hoffman 
bill.hoff...@kitware.comwrote:
   On 11/11/2011 9:36 PM, Peter Collingbourne wrote:
Note that this generator is *nix only (it relies on POSIX shell

   functionality), and will only be built on *nix platforms.  I am not
   interested in Windows support, but I understand that others have
   expressed an interest in adding support.
   
How much of the POSIX shell stuff can be done with cmake -E stuff? 
It
   
   would be good to use as little POSIX stuff as possible as someday when
   someone does the inevitable windows port it is easier...
  
  Too much in my opinion. Specially the  operator of the shell. Using
  cmake -E is the first step. I am planning to suggest an evolution of
  Ninja to fix this issue. Actually, it is the main issue which stop me
  while writing the beginning of this generator.
 
 Other than  we also have:
 
 rm -f $file -- used to delete static library archives before rebuilding

cmake -E remove -f $file
 
 :   -- used as a no-op command

maybe
cmake -E echo

Alex
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Stephen Kelly
Alexander Neundorf wrote:

 Test added, works.
 What is not working right now is including someotherfile.moc. I could add
 special handling for including thisfile_p.moc (as opposed to
 moc_thisfile_p.cpp, which works).

Yes, this is the issue that makes the build break in the frameworks branch. 
It is mostly all breakage due to the thisfile_p.moc issue and expecting 
thisfile.moc to run moc on the .h file. 

All can be considered incorrect in frameworks IMO and I can fix them there. 
I'll just have to make sure that they also work with cmake 2.8.6.

Thanks,

Steve.



--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Stephen Kelly

On 11/22/2011 08:43 PM, Alexander Neundorf wrote:

On Tuesday 22 November 2011, Stephen Kelly wrote:

On 11/10/2011 10:16 PM, Alexander Neundorf wrote:

...

Please give the RestoreAutmocKDECompatibility branch on cmake stage a
try. It should work again, but print a warning if a file includes a
moc_foo.cpp, but no foo.moc, and contains a Q_OBJECT macro.

For Qt5 I'd prefer to not support that anymore.
I.e. moc_foo.cpp -   header, foo.moc -   source file.

Alex

I tried that branch. It doesn't build the frameworks branch for me.


I found the mistake !

When I wrote that mail two weeks ago it was the RestoreAutmocKDECompatibility
branch. This got merged into master in the meantime.

Once your Qt5 branch was merged, I created a new branch named
AutomocIncludedDotMocFileHandling.

This is the branch I'm talking about.

Alex


Actually I've been using that branch all along.

Now when I try to build the frameworks branch using the cmake next 
branch, I get:


AUTOMOC: error: 
/home/stephen/dev/src/kf5/tier1/libkcoreaddons/src/io/kdirwatch.cpp: The 
file includes the moc file kdirwatch_p.moc, which seems to be the moc 
file from a different source file. This is not supported. Include 
kdirwatch.moc to run moc on this source file.


I then get a good deal of

/home/stephen/dev/src/kf5/tier1/libkauth/HelperProxy.cpp:0: Note: No 
relevant classes found. No output generated.

Generating FakeHelperProxy.moc
/home/stephen/dev/src/kf5/tier1/itemmodels/src/kcheckableproxymodel.cpp:0: 
Note: No relevant classes found. No output generated.

Generating moc_kdescendantsproxymodel.cpp
/home/stephen/dev/src/kf5/tier1/libkauth/backends/fakehelper/FakeHelperProxy.cpp:0: 
Note: No relevant classes found. No output generated.


The warnings are good because they indicate doing it the wrong way.

As I noted in the other mail, I'll fix these issues in the frameworks 
branch.


Do you want testcases for them in cmake to workaround it there?

--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Alexander Neundorf
On Tuesday 22 November 2011, Stephen Kelly wrote:
 On 11/22/2011 08:43 PM, Alexander Neundorf wrote:
  On Tuesday 22 November 2011, Stephen Kelly wrote:
  On 11/10/2011 10:16 PM, Alexander Neundorf wrote:
  ...
  
  Please give the RestoreAutmocKDECompatibility branch on cmake stage a
  try. It should work again, but print a warning if a file includes a
  moc_foo.cpp, but no foo.moc, and contains a Q_OBJECT macro.
  
  For Qt5 I'd prefer to not support that anymore.
  I.e. moc_foo.cpp -   header, foo.moc -   source file.
  
  Alex
  
  I tried that branch. It doesn't build the frameworks branch for me.
  
  I found the mistake !
  
  When I wrote that mail two weeks ago it was the
  RestoreAutmocKDECompatibility branch. This got merged into master in the
  meantime.
  
  Once your Qt5 branch was merged, I created a new branch named
  AutomocIncludedDotMocFileHandling.
  
  This is the branch I'm talking about.
  
  Alex
 
 Actually I've been using that branch all along.

I noticed I slightly got confused by all the branches, sorry.
 
 Now when I try to build the frameworks branch using the cmake next
 branch, I get:
 
 AUTOMOC: error:
 /home/stephen/dev/src/kf5/tier1/libkcoreaddons/src/io/kdirwatch.cpp: The
 file includes the moc file kdirwatch_p.moc, which seems to be the moc
 file from a different source file. This is not supported. Include
 kdirwatch.moc to run moc on this source file.

I added special handling now for the case that basename_p.moc is included with 
Qt4.
 
 I then get a good deal of
 
 /home/stephen/dev/src/kf5/tier1/libkauth/HelperProxy.cpp:0: Note: No
 relevant classes found. No output generated.
 Generating FakeHelperProxy.moc
 /home/stephen/dev/src/kf5/tier1/itemmodels/src/kcheckableproxymodel.cpp:0:
 Note: No relevant classes found. No output generated.
 Generating moc_kdescendantsproxymodel.cpp
 /home/stephen/dev/src/kf5/tier1/libkauth/backends/fakehelper/FakeHelperProx
 y.cpp:0: Note: No relevant classes found. No output generated.
 
 The warnings are good because they indicate doing it the wrong way.
 
 As I noted in the other mail, I'll fix these issues in the frameworks
 branch.
 
 Do you want testcases for them in cmake to workaround it there?

Please have a look at the current AutomocIncludedDotMocFileHandling branch and 
see if there are still things missing.

Alex
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] slow regex implementation in RegularExpression

2011-11-22 Thread Brad King

On 11/22/2011 1:50 PM, Alexandru Ciobanu wrote:

As Brad King suggested, instead of changing the files in Source/kwsys/,

 I created a wrapper class and made all the calls go through it.

Thanks.


I also added the TRE library to Utilities/cmtre, and added CMAKE_USE_SYSTEM_TRE.

I added the patch to the bug tracker:
http://public.kitware.com/Bug/view.php?id=12381


Please add a note there indicating the CMake version (git commit sha1)
on which the patch was based.  Otherwise I cannot apply it cleanly.


Needless to say, the patch fixes the performance problem.


Great!


To keep things simple I omitted several things:
- TRE library bootstrapping (so now the Bootstrap test will fail)


The KWSys implementation will not be going away, so we can fall back to
that one during bootstrapping.


- the suggested policy to enable/disable approximate matching in TRE


Please read up on policies to make sure you understand them:

  http://www.cmake.org/Wiki/CMake/Policies
  http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:cmake_policy
  http://www.cmake.org/cmake/help/cmake-2-8-docs.html#section_Policies

We will need a policy to know how to treat a regex containing one of
the characters that behaves differently in TRE.  The OLD behavior of the
policy will escape them to get the old matching behavior.  The NEW behavior
of the policy will use the new matching features.

We also need to identify the contexts that offer regex matching but have
no way to set the policy.  For those we need to decide if we can simply
use the new behavior outright or provide another way to switch it.

It is tempting to always require explicit requests for new TRE behavior,
such as using TRE instead of REGEX in keyword locations, but one
advantage of using a policy is that over time the old behavior will
disappear completely from usage.


- proper checks when building TRE with CMake as done in its ./configure.ac


IOW, porting TRE to build properly with CMake, right?


- Is the approach correct?


Yes.  I will review the patch in more detail next week and after I know
where to apply it.


- What next?


We need to establish a transition plan, which mostly consists of the above
policy discussion.

-Brad
--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] cmake automoc breaks kde

2011-11-22 Thread Stephen Kelly

On 11/22/2011 10:03 PM, Alexander Neundorf wrote:

Now when I try to build the frameworks branch using the cmake next
branch, I get:

AUTOMOC: error:
/home/stephen/dev/src/kf5/tier1/libkcoreaddons/src/io/kdirwatch.cpp: The
file includes the moc file kdirwatch_p.moc, which seems to be the moc
file from a different source file. This is not supported. Include
kdirwatch.moc to run moc on this source file.

I added special handling now for the case that basename_p.moc is included with
Qt4.


Your new commits work with the parts of the frameworks branch affected 
by this, yes.


However, there are still many places where the foo.moc file is expected 
to be the result of moc'ing the header, which causes errors like this:



In file included from 
/home/stephen/dev/build/qt48/kf5/tier1/libkdbus/kdbus_automoc.cpp:2:0:
/home/stephen/dev/build/qt48/kf5/tier1/libkdbus/moc_kdbusinterprocesslock.cpp: 
In static member function 'static void 
KDBusInterProcessLock::qt_static_metacall(QObject*, QMetaObject::Call, 
int, void**)':
/home/stephen/dev/build/qt48/kf5/tier1/libkdbus/moc_kdbusinterprocesslock.cpp:55:22: 
error: invalid use of incomplete type 'struct KDBusInterProcessLockPrivate'
/home/stephen/dev/build/qt48/kf5/tier1/libkdbus/../../../../../src/kf5/tier1/libkdbus/kdbusinterprocesslock.h:30:7: 
error: forward declaration of 'struct KDBusInterProcessLockPrivate'


Fixed by changing the include from foo.moc to moc_foo.cpp of course.

This is due to the use of Q_PRIVATE_SLOT. I've just added a testcase to 
the branch.





I then get a good deal of

/home/stephen/dev/src/kf5/tier1/libkauth/HelperProxy.cpp:0: Note: No
relevant classes found. No output generated.
Generating FakeHelperProxy.moc
/home/stephen/dev/src/kf5/tier1/itemmodels/src/kcheckableproxymodel.cpp:0:
Note: No relevant classes found. No output generated.
Generating moc_kdescendantsproxymodel.cpp
/home/stephen/dev/src/kf5/tier1/libkauth/backends/fakehelper/FakeHelperProx
y.cpp:0: Note: No relevant classes found. No output generated.

The warnings are good because they indicate doing it the wrong way.

As I noted in the other mail, I'll fix these issues in the frameworks
branch.

Do you want testcases for them in cmake to workaround it there?

Please have a look at the current AutomocIncludedDotMocFileHandling branch and
see if there are still things missing.


I'll try building frameworks and see what still fails. I do get an error 
in solid which again is due to including the foo.moc file and expecting 
that to be the result of moc'ing the header. It only works currently due 
to a quirk in the include order in that file, so I don't think it's 
worth working around or testing.


Thanks,

Steve.



--

Powered by www.kitware.com

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

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

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


Re: [cmake-developers] slow regex implementation in RegularExpression

2011-11-22 Thread Alexandru Ciobanu
 
 I also added the TRE library to Utilities/cmtre, and added 
 CMAKE_USE_SYSTEM_TRE.
 
 I added the patch to the bug tracker:
 http://public.kitware.com/Bug/view.php?id=12381
 
 Please add a note there indicating the CMake version (git commit sha1)
 on which the patch was based.  Otherwise I cannot apply it cleanly.
 

The commit that the patch is based on is:
5675ec5e493e01e10d9ad8d8b60eac62033f31c2

I added a note to the bug tracker.


 To keep things simple I omitted several things:
 - TRE library bootstrapping (so now the Bootstrap test will fail)
 
 The KWSys implementation will not be going away, so we can fall back to
 that one during bootstrapping.

This is a good idea.


 - proper checks when building TRE with CMake as done in its ./configure.ac
 
 IOW, porting TRE to build properly with CMake, right?

Yes, there are some checks, find headers, find types, etc. But all these 
operations have equivalents in CMake. So it should be straightforward.


sincerely,
Alex Ciobanu--

Powered by www.kitware.com

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

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

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

Re: [CMake] VC2010 Express crashing

2011-11-22 Thread Andreas Pakulat
On 21.11.11 17:37:14, Robert Dailey wrote:
 On Mon, Nov 21, 2011 at 5:32 PM, John Drescher dresche...@gmail.com wrote:
 
   Yes it is 100% reproducible.
   I don't know if telling someone to send reports to Microsoft and have
  them
   fix the problem is the most reasonable solution.
  
 
  Isn't it a Microsoft bug? I mean even if the sln file was somehow
  wrong Visual Studio should not crash when using it.
 
 
 I agree but if there is a workaround that can be used, I prefer that in the
 meantime since obviously whatever is causing the problem probably won't be
 fixed in the next 6 months, if at all.
 
 For example, if CMake is generating something that doesn't mix well with VC
 2010 Express, it would be nice to know what that is so maybe I can work
 around the issue.
 
 I can't think of any way to debug this problem though.

You could try disabling some of your 120 projects if they don't have too
many interdependencies and see wether the resulting solution file still
crashes VS. This would maybe allow you to find out which cmake commands
lead to the solution that crashes VS.

Andreas

--

Powered by www.kitware.com

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

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

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


Re: [CMake] ccmake was not created

2011-11-22 Thread Michael Wild
On 11/22/2011 09:28 AM, Mikhail Artemiev wrote:
 I don't see a BUILD_CursesDialog entry in my CMakeCache.txt file.But a
 CURSES_NCURSES_LIBRARY entry exists, and it point to
 /usr/lib/libncurses.so (which exists too).When I try to add a string
 BUILD_CursesDialog:BOOL=ON intoCMakeCache.txt by hand and then remake
 the project,CMakeCache.txt reloads, deleting my string.Mikhail


In your bootstrap log, do you see something like the following?


Curses libraries were not found. Curses GUI for CMake will not be built.


Michael
--

Powered by www.kitware.com

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

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

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


Re: [CMake] ccmake was not created

2011-11-22 Thread Mikhail Artemiev

In your bootstrap log, do you see something like the following?
Curses libraries were not found. Curses GUI for CMake will not be built.


Yes. But I don't understand. The curses library was installed.
My LD_LIBRARY_PATH is
$echo $LD_LIBRARY_PATH
/usr/lib

What's wrong?

Mikhail
--

Powered by www.kitware.com

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

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

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


Re: [CMake] ccmake was not created

2011-11-22 Thread Michael Wild
On 11/22/2011 10:58 AM, Mikhail Artemiev wrote:
 In your bootstrap log, do you see something like the following?
 Curses libraries were not found. Curses GUI for CMake will not be built.
 
 Yes. But I don't understand. The curses library was installed.
 My LD_LIBRARY_PATH is
 $echo $LD_LIBRARY_PATH
 /usr/lib
 
 What's wrong?
 
 Mikhail

Try removing the QUIET option from the FIND_PACKAGE(Curses QUIET) call
in the CMakeLists.txt file and then run bootstrap again. This should
tell you more what's going on.

Other things to check for in the cache:

CURSES_LIBRARY
CURSES_INCLUDE_PATH

Michael
--

Powered by www.kitware.com

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

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

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


[CMake] Components in DMG but outside OSX Application Bundle

2011-11-22 Thread Florian Wobbe
Hi,

I'm trying to create an OSX Application Bundle but like to include the 
documentation in a separate directory outside the app bundle but still in the 
dmg. Currently cpack installs all components into the app 
(CPACK_BUNDLE_COMPONENT_INSTALL ignored). Now for this to work I guess I would 
have to

1) enable component based install for the bundle generator
2) make sure only the runtime component is installed into the app
3) inject a cmake install script that installs the documentation component in a 
separate directory along with the app (before the dmg is created).

I don't know how to solve (1) but from reading the documentation and looking at 
previous posts in this list I guess (3) can be achieved with 
CPACK_INSTALL_COMMANDS or CPACK_INSTALL_SCRIPT.

Thanks,
Florian

--

Powered by www.kitware.com

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

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

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


[CMake] Clen-up pre-built software

2011-11-22 Thread t m
Hi Community,

In the large project we a having periodic taks which build a couple of
projects and store the result of the build in one specific place.
Once it's build the rest of the team can use this artifacts becouse
those are exported by using of export(TARGETS ...)

Since the others refer only to the targets I would like to clean-up
the common builds from optional artifacts in order to save some disk
space.
I guess the objects could be removed. The problem is that make clean
will clean also executables and libraries, so it's not an option for
me.

1) Is there any way to get all  objects files as a list, so I can
remove them in the loop ?
2) Is there any other way to cope with this clean-up ?

Looking for hints.

Best regards, T Majchrowski.
--

Powered by www.kitware.com

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

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

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


[CMake] global variable vs cache variable

2011-11-22 Thread t m
Hi Community,

I could not found any other possibilites to set some global variable
than using a cache variable. Even if this is not nice sometimes you
need to have a global variable.
So I would like to ask about advice in this area:

1) Is this the real use case for cache, so  to use it as a global
variables container. In my understanding this is something that is
intended to use if you would like to save
some values between separate calls of the cmake.

2) Is there any performance issue with using of cache, I/O, etc? What
is better way use PARENT_SCOPE in the loop to forward the variable to
the upper level scope or just CMakeCache.

Looking for advise,
Best regards, T. Majchrowski
--

Powered by www.kitware.com

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

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

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


Re: [CMake] Clen-up pre-built software

2011-11-22 Thread Hendrik Sattler

Am 22.11.2011 11:42, schrieb t m:

Hi Community,

In the large project we a having periodic taks which build a couple 
of

projects and store the result of the build in one specific place.
Once it's build the rest of the team can use this artifacts becouse
those are exported by using of export(TARGETS ...)

Since the others refer only to the targets I would like to clean-up
the common builds from optional artifacts in order to save some disk
space.
I guess the objects could be removed. The problem is that make 
clean

will clean also executables and libraries, so it's not an option for
me.

1) Is there any way to get all  objects files as a list, so I can
remove them in the loop ?
2) Is there any other way to cope with this clean-up ?

Looking for hints.


Make different trees for build and export (aka installation to a 
specific location to be used by others). Then you can easily delete the 
build tree.


HS

--

Powered by www.kitware.com

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

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

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


Re: [CMake] global variable vs cache variable

2011-11-22 Thread Michael Wild
On 11/22/2011 11:51 AM, t m wrote:
 Hi Community,
 
 I could not found any other possibilites to set some global variable
 than using a cache variable. Even if this is not nice sometimes you
 need to have a global variable.
 So I would like to ask about advice in this area:
 
 1) Is this the real use case for cache, so  to use it as a global
 variables container. In my understanding this is something that is
 intended to use if you would like to save
 some values between separate calls of the cmake.
 
 2) Is there any performance issue with using of cache, I/O, etc? What
 is better way use PARENT_SCOPE in the loop to forward the variable to
 the upper level scope or just CMakeCache.
 
 Looking for advise,
 Best regards, T. Majchrowski

Use the cache only if the values need to be persistent. Otherwise I
recommend using a GLOBAL property. See set_property() and get_property().

Michael

--

Powered by www.kitware.com

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

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

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


[CMake] Xcode: Nested Xcode Projects

2011-11-22 Thread Matthias Dörfelt
Hi,

I am currently generating sub projects with cmake using the add_subdirectory 
command together with the Xcode generator. It works, but the top level Xcode 
project includes the sources and targets of all the sub projects. Is it 
possible to make it reference the actual Xcode sub projects instead(to get 
closer to a normal Xcode workflow)? 
If it's not possible with current CMake it would certainly be a very neat 
addition!

Thanks 
--

Powered by www.kitware.com

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

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

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


Re: [CMake] Xcode: Nested Xcode Projects

2011-11-22 Thread Daniel Dekkers
Hi,

CMake doesn't support Xcode workspaces like it does Visual Studio solutions.
But you can still define multiple PROJECT()'s that will all be visible and 
buildable (via the scheme selector)  in the IDE.
In our setup, we have a bunch of apps and a library, in the top level 
CMakeLists.txt we do...

PROJECT(Suite)
ADD_SUBDIRECTORY(Lib)
ADD_SUBDIRECTORY(App0)
...
ADD_SUBDIRECTORY(Appn)

And every CMakeLists.txt in the leaves of the source tree contains exactly one 
PROJECT() call: 
Lib: PROJECT(Lib) ... ADD_LIBRARY(Lib ...)
App0: PROJECT(App0) ... ADD_EXECUTABLE(App0 ...)
...
App1: PROJECT(Appn) ... ADD_EXECUTABLE(Appn ...)

But yes... workspaces would be great.

Daniel

On Nov 22, 2011, at 1:28 PM, Matthias Dörfelt wrote:

 Hi,
 
 I am currently generating sub projects with cmake using the add_subdirectory 
 command together with the Xcode generator. It works, but the top level Xcode 
 project includes the sources and targets of all the sub projects. Is it 
 possible to make it reference the actual Xcode sub projects instead(to get 
 closer to a normal Xcode workflow)? 
 If it's not possible with current CMake it would certainly be a very neat 
 addition!
 
 Thanks 
 --
 
 Powered by www.kitware.com
 
 Visit other Kitware open-source projects at 
 http://www.kitware.com/opensource/opensource.html
 
 Please keep messages on-topic and check the CMake FAQ at: 
 http://www.cmake.org/Wiki/CMake_FAQ
 
 Follow this link to subscribe/unsubscribe:
 http://www.cmake.org/mailman/listinfo/cmake

--

Powered by www.kitware.com

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

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

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


Re: [CMake] VC2010 Express crashing

2011-11-22 Thread David Cole
I'm sorry if that sounded flippant... but I'm 100% serious. I used to
work there, and they take the crash reports very seriously, and they
actually do get the majority of them fixed eventually. But if you
don't send them in, then they don't know about them.

Also: I've simply never heard this complaint before, so I'd be
surprised if it was CMake's fault.

Having said all of this, though, please do send us steps so that we
can reproduce the problem, or possibly, figure out if there's
something wrong with the generated files that can be changed. If we
can incorporate a work-around into CMake, then we are happy to do so.
We have work-arounds in there for far less serious bugs than
complete/100% reproducible crashing bugs...


Thanks,
David


On Mon, Nov 21, 2011 at 6:24 PM, Robert Dailey rcdai...@gmail.com wrote:
 Yes it is 100% reproducible.
 I don't know if telling someone to send reports to Microsoft and have them
 fix the problem is the most reasonable solution.

 -
 Robert Dailey


 On Mon, Nov 21, 2011 at 5:18 PM, David Cole david.c...@kitware.com wrote:

 Submit/send your crash reports to Microsoft so they can fix it...

 I haven't heard of a problem like this. Is it 100% reproducible? (i.e.
 does it happen every time you do this?)


 On Mon, Nov 21, 2011 at 4:30 PM, Robert Dailey rcdai...@gmail.com wrote:
  Unfortunately I don't have a whole lot of details to share here, so I'm
  hoping someone can tell me what steps I can take to debug this issue.
  I generated about 120 projects in a VC2010 Express solution and opened
  it.
  Everything opened fine. I pick any project in the solution, right-click
  it,
  and select Build... Visual Studio crashes.
  I'm running Windows 7 x64 Ultimate and CMake 2.8.6.
  If I generate for VS7.1 and VS9 using the same scripts, visual studio
  does
  not crash in those versions and builds just fine. Note however that I am
  not
  using the express versions in those cases.
 
  -
  Robert Dailey
 
  --
 
  Powered by www.kitware.com
 
  Visit other Kitware open-source projects at
  http://www.kitware.com/opensource/opensource.html
 
  Please keep messages on-topic and check the CMake FAQ at:
  http://www.cmake.org/Wiki/CMake_FAQ
 
  Follow this link to subscribe/unsubscribe:
  http://www.cmake.org/mailman/listinfo/cmake
 


--

Powered by www.kitware.com

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

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

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


Re: [CMake] global variable vs cache variable

2011-11-22 Thread t m
 Use the cache only if the values need to be persistent. Otherwise I
 recommend using a GLOBAL property. See set_property() and get_property().

 Michael

Thank you Michael. Looks good. So let me summarize. The workflow
should looks like follow:

1. Top Level  CMakeLists.txt:
add_subdirectory( foo )

2. Level 2 foo/CMakeLists.txt
set_property ( GLOBAL P_A PROPERTY some value)

3. Level 1 CMakeLists.txt
get_property ( VAR_A GLOBAL PROPERY P_A)
message (STATUS VAR_A=${VAR_A})

is that's right?
--

Powered by www.kitware.com

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

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

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


Re: [CMake] VC2010 Express crashing

2011-11-22 Thread Robert Dailey
No problem. I'll send a crash report to MS and see what I can figure out. I
assume I need to report the crash on the MSDN forums? Never reported a MS
bug before so not sure.

Thanks for the help everyone.

-
Robert Dailey


On Tue, Nov 22, 2011 at 6:52 AM, David Cole david.c...@kitware.com wrote:

 I'm sorry if that sounded flippant... but I'm 100% serious. I used to
 work there, and they take the crash reports very seriously, and they
 actually do get the majority of them fixed eventually. But if you
 don't send them in, then they don't know about them.

 Also: I've simply never heard this complaint before, so I'd be
 surprised if it was CMake's fault.

 Having said all of this, though, please do send us steps so that we
 can reproduce the problem, or possibly, figure out if there's
 something wrong with the generated files that can be changed. If we
 can incorporate a work-around into CMake, then we are happy to do so.
 We have work-arounds in there for far less serious bugs than
 complete/100% reproducible crashing bugs...


 Thanks,
 David


 On Mon, Nov 21, 2011 at 6:24 PM, Robert Dailey rcdai...@gmail.com wrote:
  Yes it is 100% reproducible.
  I don't know if telling someone to send reports to Microsoft and have
 them
  fix the problem is the most reasonable solution.
 
  -
  Robert Dailey
 
 
  On Mon, Nov 21, 2011 at 5:18 PM, David Cole david.c...@kitware.com
 wrote:
 
  Submit/send your crash reports to Microsoft so they can fix it...
 
  I haven't heard of a problem like this. Is it 100% reproducible? (i.e.
  does it happen every time you do this?)
 
 
  On Mon, Nov 21, 2011 at 4:30 PM, Robert Dailey rcdai...@gmail.com
 wrote:
   Unfortunately I don't have a whole lot of details to share here, so
 I'm
   hoping someone can tell me what steps I can take to debug this issue.
   I generated about 120 projects in a VC2010 Express solution and opened
   it.
   Everything opened fine. I pick any project in the solution,
 right-click
   it,
   and select Build... Visual Studio crashes.
   I'm running Windows 7 x64 Ultimate and CMake 2.8.6.
   If I generate for VS7.1 and VS9 using the same scripts, visual studio
   does
   not crash in those versions and builds just fine. Note however that I
 am
   not
   using the express versions in those cases.
  
   -
   Robert Dailey
  
   --
  
   Powered by www.kitware.com
  
   Visit other Kitware open-source projects at
   http://www.kitware.com/opensource/opensource.html
  
   Please keep messages on-topic and check the CMake FAQ at:
   http://www.cmake.org/Wiki/CMake_FAQ
  
   Follow this link to subscribe/unsubscribe:
   http://www.cmake.org/mailman/listinfo/cmake
  
 
 

--

Powered by www.kitware.com

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

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

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

[CMake] cmake / xcode / c++ header files

2011-11-22 Thread g...@novadsp.com
How can I get the cmake xcode generator to add a /include folder to 
generated projects? The cmakelists contain these directives:


SET(${this_target}_HEADER_FILES ./a.h ./b.h)
SET_SOURCE_FILES_PROPERTIES(${this_target}_HEADER_FILES PROPERTIES 
HEADER_FILE_ONLY TRUE)

LIST(APPEND ${this_target}_SOURCE_FILES ${${this_target}_HEADER_FILES})

Thx++


--

Powered by www.kitware.com

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

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

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


Re: [CMake] VC2010 Express crashing

2011-11-22 Thread Vladislav Vaintroub
 
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of
Robert Dailey
Sent: Dienstag, 22. November 2011 14:33
To: David Cole
Cc: CMake ML
Subject: Re: [CMake] VC2010 Express crashing
 
No problem. I'll send a crash report to MS and see what I can figure out. I
assume I need to report the crash on the MSDN forums? Never reported a MS
bug before so not sure.
 
You can report bugs here
https://connect.microsoft.com/VisualStudio/feedback/CreateFeedback.aspx
https://connect.microsoft.com/VisualStudio/feedback/CreateFeedback.aspx 
You may need to register/login to submit the bug. Currently there are 2
different forms where you can submit it , use Visual Studio, .NET and
Silverlight form, not Roslyn CTP one. 
 
Vladislav
--

Powered by www.kitware.com

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

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

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

Re: [CMake] cmake / xcode / c++ header files

2011-11-22 Thread Michael Jackson
I have my own macro that I use for this:


MACRO (cmp_IDE_SOURCE_PROPERTIES SOURCE_PATH HEADERS SOURCES INSTALL_FILES)
if (${INSTALL_FILES} EQUAL 1)
INSTALL (FILES ${HEADERS}
 DESTINATION include/${SOURCE_PATH}
 COMPONENT Headers   
)
endif()
STRING(REPLACE /  source_group_path ${SOURCE_PATH}  )
source_group(${source_group_path} FILES ${HEADERS} ${SOURCES})

  #-- The following is needed if we ever start to use OS X Frameworks but only
  #--  works on CMake 2.6 and greater
  #set_property(SOURCE ${HEADERS}
  # PROPERTY MACOSX_PACKAGE_LOCATION Headers/${NAME}
  #)

ENDMACRO (cmp_IDE_SOURCE_PROPERTIES NAME HEADERS SOURCES INSTALL_FILES)

And I use it like this:

cmp_IDE_SOURCE_PROPERTIES( include ${${this_target}_HEADER_FILES} 
${this_target}_SOURCE_FILES TRUE)

This seems to need CMake 2.8.6 to really work well.

--
Mike Jackson www.bluequartz.net

On Nov 22, 2011, at 8:42 AM, g...@novadsp.com wrote:

 How can I get the cmake xcode generator to add a /include folder to generated 
 projects? The cmakelists contain these directives:
 
 SET(${this_target}_HEADER_FILES ./a.h ./b.h)
 SET_SOURCE_FILES_PROPERTIES(${this_target}_HEADER_FILES PROPERTIES 
 HEADER_FILE_ONLY TRUE)
 LIST(APPEND ${this_target}_SOURCE_FILES ${${this_target}_HEADER_FILES})
 
 Thx++
 
 
 --
 
 Powered by www.kitware.com
 
 Visit other Kitware open-source projects at 
 http://www.kitware.com/opensource/opensource.html
 
 Please keep messages on-topic and check the CMake FAQ at: 
 http://www.cmake.org/Wiki/CMake_FAQ
 
 Follow this link to subscribe/unsubscribe:
 http://www.cmake.org/mailman/listinfo/cmake

--

Powered by www.kitware.com

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

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

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


Re: [CMake] global variable vs cache variable

2011-11-22 Thread Michael Wild
On 11/22/2011 02:14 PM, t m wrote:
 Use the cache only if the values need to be persistent. Otherwise I
 recommend using a GLOBAL property. See set_property() and get_property().

 Michael
 
 Thank you Michael. Looks good. So let me summarize. The workflow
 should looks like follow:
 
 1. Top Level  CMakeLists.txt:
 add_subdirectory( foo )
 
 2. Level 2 foo/CMakeLists.txt
 set_property ( GLOBAL P_A PROPERTY some value)

that should read:

set_property(GLOBAL PROPERTY P_A some value)

 
 3. Level 1 CMakeLists.txt
 get_property ( VAR_A GLOBAL PROPERY P_A)
 message (STATUS VAR_A=${VAR_A})
 
 is that's right?


Yes, that's about right.

Michael
--

Powered by www.kitware.com

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

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

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


[CMake] CMake and Sandboxed Mac OS X app

2011-11-22 Thread NoRulez
Hello @everyone,

 

I want to use cmake and „make“ from the command line (without Xcode) to
build an Mac OS X app which make use of the “new” sandboxing feature.

 

I added the following lines, but in the activity monitor the app is still
not sandboxed:

IF(APPLE)

SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)

SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
PROPERTIES GENERATED TRUE)

SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
PROPERTIES OBJECT_DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.entitlements)

 
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.enti
tlements PROPERTIES GENERATED TRUE)

.

.

.

ENDIF(APPLE)

 

Did I miss something?

 

Any help would be great.

 

Thanks in advance

 

Best Regards

NoRulez

--

Powered by www.kitware.com

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

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

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

Re: [CMake] cmake / xcode / c++ header files [solved]

2011-11-22 Thread g...@novadsp.com

excellent suggestion, i will try it out. thank!

On 22/11/2011 14:29, Michael Jackson wrote:

I have my own macro that I use for this:


MACRO (cmp_IDE_SOURCE_PROPERTIES SOURCE_PATH HEADERS SOURCES INSTALL_FILES)
 if (${INSTALL_FILES} EQUAL 1)
 INSTALL (FILES ${HEADERS}
  DESTINATION include/${SOURCE_PATH}
  COMPONENT Headers
 )
 endif()
 STRING(REPLACE /  source_group_path ${SOURCE_PATH}  )
 source_group(${source_group_path} FILES ${HEADERS} ${SOURCES})

   #-- The following is needed if we ever start to use OS X Frameworks but only
   #--  works on CMake 2.6 and greater
   #set_property(SOURCE ${HEADERS}
   # PROPERTY MACOSX_PACKAGE_LOCATION Headers/${NAME}
   #)

ENDMACRO (cmp_IDE_SOURCE_PROPERTIES NAME HEADERS SOURCES INSTALL_FILES)

And I use it like this:

cmp_IDE_SOURCE_PROPERTIES( include ${${this_target}_HEADER_FILES} 
${this_target}_SOURCE_FILES TRUE)

This seems to need CMake 2.8.6 to really work well.

--
Mike Jacksonwww.bluequartz.net

On Nov 22, 2011, at 8:42 AM, g...@novadsp.com wrote:


How can I get the cmake xcode generator to add a /include folder to generated 
projects? The cmakelists contain these directives:

SET(${this_target}_HEADER_FILES ./a.h ./b.h)
SET_SOURCE_FILES_PROPERTIES(${this_target}_HEADER_FILES PROPERTIES 
HEADER_FILE_ONLY TRUE)
LIST(APPEND ${this_target}_SOURCE_FILES ${${this_target}_HEADER_FILES})

Thx++


--

Powered by www.kitware.com

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

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

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






--

Powered by www.kitware.com

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

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

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


Re: [CMake] CMake and Sandboxed Mac OS X app

2011-11-22 Thread David Cole
I have not heard of anybody building a Sandboxed app using CMake yet.

What are the requirements for a Sandboxed app? Is there a
documentation page from Apple that describes what needs to be in the
Info.plist to support Sandboxing?


Thx,
David


On Tue, Nov 22, 2011 at 10:44 AM, NoRulez noru...@me.com wrote:
 Hello @everyone,



 I want to use cmake and „make“ from the command line (without Xcode) to
 build an Mac OS X app which make use of the “new” sandboxing feature.



 I added the following lines, but in the activity monitor the app is still
 not sandboxed:

 IF(APPLE)

     SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
 PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)

     SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
 PROPERTIES GENERATED TRUE)

     SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
 PROPERTIES OBJECT_DEPENDS
 ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.entitlements)


 SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.entitlements
 PROPERTIES GENERATED TRUE)

     .

     .

     .

 ENDIF(APPLE)



 Did I miss something?



 Any help would be great.



 Thanks in advance



 Best Regards

 NoRulez

 --

 Powered by www.kitware.com

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

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

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

--

Powered by www.kitware.com

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

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

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


Re: [CMake] CMake and Sandboxed Mac OS X app

2011-11-22 Thread Sean McBride
On Tue, 22 Nov 2011 11:45:29 -0500, David Cole said:

What are the requirements for a Sandboxed app? Is there a
documentation page from Apple that describes what needs to be in the
Info.plist to support Sandboxing?

The main doc is here:
http://developer.apple.com/library/mac/#documentation/Security/Conceptual/AppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html

It's more than just adding keys in Info.plist, the app also needs to be 
codesigned, which is typically done by invoking the 'codesign' tool (see man 
codesign).

-- 

Sean McBride, B. Eng s...@rogue-research.com
Rogue Researchwww.rogue-research.com 
Mac Software Developer  Montréal, Québec, Canada


--

Powered by www.kitware.com

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

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

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


Re: [CMake] CMake and Sandboxed Mac OS X app

2011-11-22 Thread NoRulez
Hi Sean,

did you know if I also need special compiler and/or linker flags?

Best Regards

-Ursprüngliche Nachricht-
Von: Sean McBride [mailto:s...@rogue-research.com] 
Gesendet: Dienstag, 22. November 2011 17:56
An: David Cole; NoRulez
Cc: CMake MailingList
Betreff: Re: [CMake] CMake and Sandboxed Mac OS X app

On Tue, 22 Nov 2011 11:45:29 -0500, David Cole said:

What are the requirements for a Sandboxed app? Is there a documentation 
page from Apple that describes what needs to be in the Info.plist to 
support Sandboxing?

The main doc is here:
http://developer.apple.com/library/mac/#documentation/Security/Conceptual/A
ppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html

It's more than just adding keys in Info.plist, the app also needs to be
codesigned, which is typically done by invoking the 'codesign' tool (see man
codesign).

--

Sean McBride, B. Eng s...@rogue-research.com
Rogue Researchwww.rogue-research.com 
Mac Software Developer  Montréal, Québec, Canada



--

Powered by www.kitware.com

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

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

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


Re: [CMake] CMake and Sandboxed Mac OS X app

2011-11-22 Thread Sean McBride
On Tue, 22 Nov 2011 18:35:42 +0100, NoRulez said:

did you know if I also need special compiler and/or linker flags?

That's more of an Xcode question than a CMake question... IIRC, no you don't.  
You just need to add your entitlements file and codesign.  But it's been a few 
months since I played with App Sandbox.  It's still half-baked and I gave up on 
it.

-- 

Sean McBride, B. Eng s...@rogue-research.com
Rogue Researchwww.rogue-research.com 
Mac Software Developer  Montréal, Québec, Canada


--

Powered by www.kitware.com

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

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

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


Re: [CMake] CMake and Sandboxed Mac OS X app

2011-11-22 Thread NoRulez
 IIRC, no you don't

Thanks

 

This means that I only have to add the following parameters to my codesign
call: --entitlements MyEntitlements.plist

Is this correct? Because I already tried this but then if I launch my app
the application crashes.

 

The file MyEntitlements.plist contains:

?xml version=1.0 encoding=UTF-8?

!DOCTYPE plist PUBLIC -//Apple//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd;

plist version=1.0

dict

keycom.apple.security.app-sandbox/key

true/

/dict

/plist

 

-Ursprüngliche Nachricht-
Von: Sean McBride [mailto:s...@rogue-research.com] 
Gesendet: Dienstag, 22. November 2011 18:38
An: NoRulez; 'David Cole'
Cc: 'CMake MailingList'
Betreff: Re: AW: [CMake] CMake and Sandboxed Mac OS X app

 

On Tue, 22 Nov 2011 18:35:42 +0100, NoRulez said:

 

did you know if I also need special compiler and/or linker flags?

 

That's more of an Xcode question than a CMake question... IIRC, no you
don't.  You just need to add your entitlements file and codesign.  But it's
been a few months since I played with App Sandbox.  It's still half-baked
and I gave up on it.

 

-- 



Sean McBride, B. Eng  mailto:s...@rogue-research.com
s...@rogue-research.com

Rogue Research http://www.rogue-research.com
www.rogue-research.com 

Mac Software Developer  Montréal, Québec, Canada

 

 

--

Powered by www.kitware.com

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

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

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

[CMake] what softwares need to be installed to run ITK/C++ under linux?

2011-11-22 Thread WangPing

Hi everyong:
 
I wanted to learn C++ programming with ITK under linux, does any tell me what 
softwares/packages that I need to install?
I am running a Centos 64-bit linux system.
 
Thanks,
ping wang --

Powered by www.kitware.com

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

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

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

[CMake] (no subject)

2011-11-22 Thread YangXi
http://nobiofuel.com/affiliate/plugins/SignupActionCommissions/smmfkro.htm
  --

Powered by www.kitware.com

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

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

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

Re: [CMake] CMake, Qt4, Ubuntu and Phonon

2011-11-22 Thread Félix C . Morency
As we pointed out in the bug thread located at

https://bugs.launchpad.net/ubuntu/+source/phonon/+bug/893170

the FindPhonon script is not portable to Windows. I agree with André's
comment: the source of the problem is the Ubuntu way of distributing
Qt4 and Phonon.

We also have to keep in mind that the official CMake module FindQt4
doesn't actually find Qt4 correctly on Ubuntu. I think this is a
problem for both Ubuntu and CMake. The two solutions to this problem I
can think of are 1) Patch the FindQt4 script so it can find Phonon
correctly when not distributed with Qt4 and 2) Make pressure on the
Ubuntu community so it distribute Phonon as a Qt4 (optional) package
(like Debian does).

I would like to have your feedback on this issue so we can discuss
alternative solutions. Feel free to comment on the bug report to make
pressure on the Ubuntu community.

I would be happy to patch the FindQt4 module if the community agrees
on this solution.

Regards,
-- 
Félix C. Morency, M.Sc.
Plateforme d’analyse et de visualisation d’images
Centre Hospitalier Universitaire de Sherbrooke
Centre de recherche clinique Étienne-Le Bel
Local Z5-3031 | 819.346.1110 ext 16634
--

Powered by www.kitware.com

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

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

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

Re: [CMake] CMake, Qt4, Ubuntu and Phonon

2011-11-22 Thread Clinton Stimpson
On Tuesday, November 22, 2011 02:34:55 pm Félix C. Morency wrote:
 As we pointed out in the bug thread located at
 
 https://bugs.launchpad.net/ubuntu/+source/phonon/+bug/893170
 
 the FindPhonon script is not portable to Windows. I agree with André's
 comment: the source of the problem is the Ubuntu way of distributing
 Qt4 and Phonon.
 
 We also have to keep in mind that the official CMake module FindQt4
 doesn't actually find Qt4 correctly on Ubuntu. I think this is a
 problem for both Ubuntu and CMake. The two solutions to this problem I
 can think of are 1) Patch the FindQt4 script so it can find Phonon
 correctly when not distributed with Qt4 and 2) Make pressure on the
 Ubuntu community so it distribute Phonon as a Qt4 (optional) package
 (like Debian does).
 
 I would like to have your feedback on this issue so we can discuss
 alternative solutions. Feel free to comment on the bug report to make
 pressure on the Ubuntu community.
 
 I would be happy to patch the FindQt4 module if the community agrees
 on this solution.

Does it work if one is using qmake simply because phonon is in the linker's 
standard search paths?
Or does qmake on Ubuntu know how to find phonon?

phonon is treated as a Qt module as far as qmake and FindQt4.cmake are 
concerned, and not as a 3rd party library, like zlib and others.

But, I'm not opposed to modifying FindQt4.cmake, but I have a concern if one 
builds their own Qt (different version) without phonon, is it OK to find 
/usr/lib/libphonon.so?

-- 
Clinton Stimpson
Elemental Technologies, Inc
Computational Simulation Software, LLC
www.csimsoft.com
--

Powered by www.kitware.com

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

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

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

[CMake] CMake and Python

2011-11-22 Thread Tim Gallagher
Hi all,

I don't know if anybody would find this useful or not, but I thought I'd let 
everybody know about it and if somebody would like to use it, I can figure out 
the best way to get it out there. 

We have a fairly extensive python library that we use to setup our code and 
manipulate our data. Part of this process is generating/manipulating CMake 
cache files. To that end, I wrote a module that can do the following:

- Given a CMakeLists.txt, build a dictionary of available options (possibly 
including advanced) including the type and default values (and take in some 
options to turn on before checking for options, to activate if's for example; 
also allow the caller to specify a prefix they want to include, for instance 
'CMAKE' would result in a dictionary only containing CMAKE_* variables).
- Given a CMakeCache.txt file, build the above dictionary
- Given a dictionary of options (built from above or by hand), write out a 
script to generate the initial cache (to be used with cmake -C)
- Given a dictionary of options, take in another dictionary of options to 
modify original dictionary with possible include/exclude lists (an example use 
is to take a dictionary from the user to modify default values, combined with 
the include/exclude list to say Only let the user change options X, Y, Z 
regardless of what they tried to change)

The final thing it currently does may get left in or stripped out if I release 
it to people -- it writes a simple python script to execute a code using MPI 
based on the values for the MPI variables found by CMake. This is because we 
use it to setup test cases and needed an easy way to determine the MPIEXEC and 
MAX_PROCS variables. 

So, if people are interested in using it or expanding it, let me know and I can 
throw it up on GitHub or something. If it's something useful for inclusion in 
CMake now or down the road, that can be figured out too.

Tim
--

Powered by www.kitware.com

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

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

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


Re: [CMake] ccmake was not created

2011-11-22 Thread Mikhail Artemiev

Hello!
Thank you for the help.

Here is a part of my CMakeCashe.txt:

// ---

//Path to a file.
CURSES_CURSES_H_PATH:PATH=/usr/include

//Path to a library.
CURSES_CURSES_LIBRARY:FILEPATH=/usr/lib/libcurses.so

//Path to a library.
CURSES_EXTRA_LIBRARY:FILEPATH=CURSES_EXTRA_LIBRARY-NOTFOUND

//Path to a library.
CURSES_FORM_LIBRARY:FILEPATH=/usr/lib/libform.so

//Path to a file.
CURSES_HAVE_CURSES_H:FILEPATH=/usr/include/curses.h

//The curses include path
CURSES_INCLUDE_PATH:FILEPATH=CURSES_CURSES_H_PATH-NOTFOUND

//The curses library
CURSES_LIBRARY:FILEPATH=CURSES_CURSES_LIBRARY-NOTFOUND

//Path to a library.
CURSES_NCURSES_LIBRARY:FILEPATH=/usr/lib/libncurses.so

// ---

But these files exist in my system:

artemiev@artemiev-desktop:~$ find /usr/lib -name 
libcurse*

/usr/lib/libcurses.so
/usr/lib/libcurses.a
artemiev@artemiev-desktop:~$ find /usr/lib -name 
libncurse*

/usr/lib/libncurses++.a
/usr/lib/libncurses.so
/usr/lib/libncurses.a
artemiev@artemiev-desktop:~$ find /usr/include -name 
curse*

/usr/include/cursesf.h
/usr/include/cursesm.h
/usr/include/curses.h
/usr/include/cursesw.h
/usr/include/cursesp.h
/usr/include/cursesapp.h

I don't understand why these files cannot be found.
Maybe I need to check for some system variables?

Mikhail
--

Powered by www.kitware.com

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

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

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


[Cmake-commits] CMake branch, master, updated. v2.8.6-218-g3bbe46d

2011-11-22 Thread KWSys 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  3bbe46daa27a2f405bf97622ad30fd6090e2958e (commit)
  from  ad9bffdc3c1b43e0a3c3f47e9ee8d3bff487324e (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=3bbe46daa27a2f405bf97622ad30fd6090e2958e
commit 3bbe46daa27a2f405bf97622ad30fd6090e2958e
Author: KWSys Robot kwro...@kitware.com
AuthorDate: Tue Nov 22 00:05:06 2011 -0500
Commit: KWSys Robot kwro...@kitware.com
CommitDate: Tue Nov 22 00:05:06 2011 -0500

KWSys Nightly Date Stamp

diff --git a/Source/kwsys/kwsysDateStamp.cmake 
b/Source/kwsys/kwsysDateStamp.cmake
index 30a0b06..1df5ca9 100644
--- a/Source/kwsys/kwsysDateStamp.cmake
+++ b/Source/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR  2011)
 SET(KWSYS_DATE_STAMP_MONTH 11)
 
 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   21)
+SET(KWSYS_DATE_STAMP_DAY   22)

---

Summary of changes:
 Source/kwsys/kwsysDateStamp.cmake |2 +-
 1 files changed, 1 insertions(+), 1 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. v2.8.6-1977-ga4d3147

2011-11-22 Thread Alexander Neundorf
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  a4d31477cfb1cc371e5d7387d742dbe6df838005 (commit)
   via  e8b5b222b6827e8db490bcc78ea9f967b5c4b247 (commit)
   via  69ac7cab9dad260a9feee00caea1813b5b76ebf5 (commit)
   via  a364dfbc83979d556848b1e54b2c637cfbdabb46 (commit)
  from  ddf16039f8f093f4d5aa43405ae1c22668b5246a (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=a4d31477cfb1cc371e5d7387d742dbe6df838005
commit a4d31477cfb1cc371e5d7387d742dbe6df838005
Merge: ddf1603 e8b5b22
Author: Alexander Neundorf neund...@kde.org
AuthorDate: Tue Nov 22 13:27:19 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 13:27:19 2011 -0500

Merge topic 'RestoreAutmocKDECompatibility' into next

e8b5b22 automoc: add test for including a moc_abc_p.cpp file
69ac7ca automoc: add test for including the moc file from another header
a364dfb automoc: add a test for including both abc.moc and moc_abc.cpp


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e8b5b222b6827e8db490bcc78ea9f967b5c4b247
commit e8b5b222b6827e8db490bcc78ea9f967b5c4b247
Author: Alex Neundorf neund...@kde.org
AuthorDate: Tue Nov 22 19:24:39 2011 +0100
Commit: Alex Neundorf neund...@kde.org
CommitDate: Tue Nov 22 19:24:39 2011 +0100

automoc: add test for including a moc_abc_p.cpp file

Alex

diff --git a/Tests/QtAutomoc/abc.cpp b/Tests/QtAutomoc/abc.cpp
index 25071cd..4bbc769 100644
--- a/Tests/QtAutomoc/abc.cpp
+++ b/Tests/QtAutomoc/abc.cpp
@@ -13,6 +13,7 @@
 
 
 #include abc.h
+#include abc_p.h
 
 #include stdio.h
 
@@ -35,11 +36,14 @@ void Abc::doAbc()
 {
   PrintAbc pa;
   pa.print();
+  AbcP abcP;
+  abcP.doAbcP();
 }
 
 // check that including the moc file for the cpp file and the header works:
 #include abc.moc
 #include moc_abc.cpp
+#include moc_abc_p.cpp
 
 // check that including a moc file from another header works:
 #include moc_xyz.cpp
diff --git a/Tests/QtAutomoc/abc.cpp b/Tests/QtAutomoc/abc_p.h
similarity index 62%
copy from Tests/QtAutomoc/abc.cpp
copy to Tests/QtAutomoc/abc_p.h
index 25071cd..952fff3 100644
--- a/Tests/QtAutomoc/abc.cpp
+++ b/Tests/QtAutomoc/abc_p.h
@@ -11,35 +11,20 @@
   See the License for more information.
 */
 
+#ifndef ABC_P_H
+#define ABC_P_H
 
-#include abc.h
+#include QObject
 
 #include stdio.h
 
-class PrintAbc : public QObject
+class AbcP : public QObject
 {
   Q_OBJECT
   public:
-PrintAbc():QObject() {}
+AbcP() {}
   public slots:
-void print() const { printf(abc\n); }
+void doAbcP() { printf(I am private abc !\n); }
 };
 
-Abc::Abc()
-:QObject()
-{
-}
-
-
-void Abc::doAbc()
-{
-  PrintAbc pa;
-  pa.print();
-}
-
-// check that including the moc file for the cpp file and the header works:
-#include abc.moc
-#include moc_abc.cpp
-
-// check that including a moc file from another header works:
-#include moc_xyz.cpp
+#endif

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=69ac7cab9dad260a9feee00caea1813b5b76ebf5
commit 69ac7cab9dad260a9feee00caea1813b5b76ebf5
Author: Alex Neundorf neund...@kde.org
AuthorDate: Tue Nov 22 19:19:31 2011 +0100
Commit: Alex Neundorf neund...@kde.org
CommitDate: Tue Nov 22 19:19:31 2011 +0100

automoc: add test for including the moc file from another header

including moc_xyz.cpp in abc.cpp should run moc on xyz.h (and
include the file in abc.cpp)

Alex

diff --git a/Tests/QtAutomoc/CMakeLists.txt b/Tests/QtAutomoc/CMakeLists.txt
index c81ac11..9f02618 100644
--- a/Tests/QtAutomoc/CMakeLists.txt
+++ b/Tests/QtAutomoc/CMakeLists.txt
@@ -13,7 +13,7 @@ add_definitions(-DFOO)
 # create an executable and a library target, both requiring automoc:
 add_library(codeeditorLib STATIC codeeditor.cpp)
 
-add_executable(foo main.cpp calwidget.cpp foo.cpp blub.cpp bar.cpp abc.cpp)
+add_executable(foo main.cpp calwidget.cpp foo.cpp blub.cpp bar.cpp abc.cpp 
xyz.cpp)
 
 set_target_properties(foo codeeditorLib PROPERTIES AUTOMOC TRUE)
 
diff --git a/Tests/QtAutomoc/abc.cpp b/Tests/QtAutomoc/abc.cpp
index f922615..25071cd 100644
--- a/Tests/QtAutomoc/abc.cpp
+++ b/Tests/QtAutomoc/abc.cpp
@@ -37,5 +37,9 @@ void Abc::doAbc()
   pa.print();
 }
 
+// check that including the moc file for the cpp file and the header works:
 #include abc.moc
 #include moc_abc.cpp
+
+// check that including a moc file from another header works:
+#include moc_xyz.cpp
diff --git a/Tests/QtAutomoc/main.cpp b/Tests/QtAutomoc/main.cpp
index 5414daf..7eb29a3 100644
--- a/Tests/QtAutomoc/main.cpp
+++ 

[Cmake-commits] CMake branch, next, updated. v2.8.6-1981-g31a9140

2011-11-22 Thread Alexander Neundorf
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  31a9140041a1dd89a02f5aeef9e1ca8785f7 (commit)
   via  bc7560e6e56d1f6fa65745cf5c1206192fb77b04 (commit)
   via  30fd8e603a52b7230e0b716d8120fc01551c8a4f (commit)
   via  80dfbc99f4b04b5eaea9111fa014f07603a8db16 (commit)
  from  a4d31477cfb1cc371e5d7387d742dbe6df838005 (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=31a9140041a1dd89a02f5aeef9e1ca8785f7
commit 31a9140041a1dd89a02f5aeef9e1ca8785f7
Merge: a4d3147 bc7560e
Author: Alexander Neundorf neund...@kde.org
AuthorDate: Tue Nov 22 14:57:04 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 14:57:04 2011 -0500

Merge topic 'AutomocIncludedDotMocFileHandling' into next

bc7560e automoc: add test for including a moc_abc_p.cpp file
30fd8e6 automoc: add test for including the moc file from another header
80dfbc9 automoc: add a test for including both abc.moc and moc_abc.cpp


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bc7560e6e56d1f6fa65745cf5c1206192fb77b04
commit bc7560e6e56d1f6fa65745cf5c1206192fb77b04
Author: Alex Neundorf neund...@kde.org
AuthorDate: Tue Nov 22 19:24:39 2011 +0100
Commit: Alex Neundorf neund...@kde.org
CommitDate: Tue Nov 22 20:52:21 2011 +0100

automoc: add test for including a moc_abc_p.cpp file

Alex

diff --git a/Tests/QtAutomoc/abc.cpp b/Tests/QtAutomoc/abc.cpp
index 25071cd..4bbc769 100644
--- a/Tests/QtAutomoc/abc.cpp
+++ b/Tests/QtAutomoc/abc.cpp
@@ -13,6 +13,7 @@
 
 
 #include abc.h
+#include abc_p.h
 
 #include stdio.h
 
@@ -35,11 +36,14 @@ void Abc::doAbc()
 {
   PrintAbc pa;
   pa.print();
+  AbcP abcP;
+  abcP.doAbcP();
 }
 
 // check that including the moc file for the cpp file and the header works:
 #include abc.moc
 #include moc_abc.cpp
+#include moc_abc_p.cpp
 
 // check that including a moc file from another header works:
 #include moc_xyz.cpp
diff --git a/Tests/QtAutomoc/abc.cpp b/Tests/QtAutomoc/abc_p.h
similarity index 62%
copy from Tests/QtAutomoc/abc.cpp
copy to Tests/QtAutomoc/abc_p.h
index 25071cd..952fff3 100644
--- a/Tests/QtAutomoc/abc.cpp
+++ b/Tests/QtAutomoc/abc_p.h
@@ -11,35 +11,20 @@
   See the License for more information.
 */
 
+#ifndef ABC_P_H
+#define ABC_P_H
 
-#include abc.h
+#include QObject
 
 #include stdio.h
 
-class PrintAbc : public QObject
+class AbcP : public QObject
 {
   Q_OBJECT
   public:
-PrintAbc():QObject() {}
+AbcP() {}
   public slots:
-void print() const { printf(abc\n); }
+void doAbcP() { printf(I am private abc !\n); }
 };
 
-Abc::Abc()
-:QObject()
-{
-}
-
-
-void Abc::doAbc()
-{
-  PrintAbc pa;
-  pa.print();
-}
-
-// check that including the moc file for the cpp file and the header works:
-#include abc.moc
-#include moc_abc.cpp
-
-// check that including a moc file from another header works:
-#include moc_xyz.cpp
+#endif

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=30fd8e603a52b7230e0b716d8120fc01551c8a4f
commit 30fd8e603a52b7230e0b716d8120fc01551c8a4f
Author: Alex Neundorf neund...@kde.org
AuthorDate: Tue Nov 22 19:19:31 2011 +0100
Commit: Alex Neundorf neund...@kde.org
CommitDate: Tue Nov 22 20:52:13 2011 +0100

automoc: add test for including the moc file from another header

including moc_xyz.cpp in abc.cpp should run moc on xyz.h (and
include the file in abc.cpp)

Alex

diff --git a/Tests/QtAutomoc/CMakeLists.txt b/Tests/QtAutomoc/CMakeLists.txt
index c81ac11..9f02618 100644
--- a/Tests/QtAutomoc/CMakeLists.txt
+++ b/Tests/QtAutomoc/CMakeLists.txt
@@ -13,7 +13,7 @@ add_definitions(-DFOO)
 # create an executable and a library target, both requiring automoc:
 add_library(codeeditorLib STATIC codeeditor.cpp)
 
-add_executable(foo main.cpp calwidget.cpp foo.cpp blub.cpp bar.cpp abc.cpp)
+add_executable(foo main.cpp calwidget.cpp foo.cpp blub.cpp bar.cpp abc.cpp 
xyz.cpp)
 
 set_target_properties(foo codeeditorLib PROPERTIES AUTOMOC TRUE)
 
diff --git a/Tests/QtAutomoc/abc.cpp b/Tests/QtAutomoc/abc.cpp
index f922615..25071cd 100644
--- a/Tests/QtAutomoc/abc.cpp
+++ b/Tests/QtAutomoc/abc.cpp
@@ -37,5 +37,9 @@ void Abc::doAbc()
   pa.print();
 }
 
+// check that including the moc file for the cpp file and the header works:
 #include abc.moc
 #include moc_abc.cpp
+
+// check that including a moc file from another header works:
+#include moc_xyz.cpp
diff --git a/Tests/QtAutomoc/main.cpp b/Tests/QtAutomoc/main.cpp
index 5414daf..7eb29a3 100644
--- a/Tests/QtAutomoc/main.cpp
+++ 

[Cmake-commits] CMake branch, next, updated. v2.8.6-1996-g2e84d8e

2011-11-22 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  2e84d8e613c22677e30414c236dd4f106fdc9a97 (commit)
   via  0599c5f546c8b3e04c0dd9fcdc19a6b3825849a7 (commit)
   via  0a6705cbda8171667c4b37872136cd102ccc328c (commit)
   via  24b1feb5ca9dbc3461d373e4de30a33157f81375 (commit)
   via  1ec3fa00c920ca0d13ef30965ce2560ecd006e0c (commit)
   via  6495b595c4953ce29e66ff4919d69a74300c3532 (commit)
   via  8302608a744c3a4df3495f8db88784fb3f04660f (commit)
   via  9fb1a9cf1dc45672b38350f2c4ae560359521566 (commit)
   via  b0853b5fae2681f31f023a37d04cea1209b34dbd (commit)
   via  9da8340a6d68ec1dce9248d0d83f59ba6f41003e (commit)
   via  23b3df76a069ab314a4828ad651f1a14319ff660 (commit)
   via  2e9c26cf9616fead92ec65eefc696bcf9761b996 (commit)
   via  293a7f4e2ae9b458d3efefcfe133d0ad5320a1b2 (commit)
   via  46ab0561fc29446a736985816b005200aad9489c (commit)
   via  38771d3bdf51b81d46578e0c81ebddbdea0ce3b2 (commit)
  from  31a9140041a1dd89a02f5aeef9e1ca8785f7 (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=2e84d8e613c22677e30414c236dd4f106fdc9a97
commit 2e84d8e613c22677e30414c236dd4f106fdc9a97
Merge: 31a9140 0599c5f
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Nov 22 15:04:35 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 15:04:35 2011 -0500

Merge topic 'crypto-hash' into next

0599c5f sha2: Zero entire SHA_CTX structure during cleanup
0a6705c sha2: Suppress -Wcast-align warning from Clang
24b1feb sha2: Cast safe conversions to smaller integer types
1ec3fa0 Merge branch 'update-KWIML' into crypto-hash
6495b59 cmCryptoHash: Add virtual destructor
8302608 Fix CMake.File hash test for CRLF checkouts
9fb1a9c sha2: Wrap long lines in third-party declarations
b0853b5 Disable file() and string() hash commands during bootstrap
9da8340 sha2: Suppress Borland warnings in third-party code
23b3df7 sha2: Use KWIML fixed-size integer constant macros
2e9c26c Add string(MD5) and string(SHA*) commands to compute hashes
293a7f4 cmCryptoHash: Provide factory New method
46ab056 sha2: Use static const instead of const static declarations
38771d3 Add file(SHA*) commands to compute cryptographic hashes


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0599c5f546c8b3e04c0dd9fcdc19a6b3825849a7
commit 0599c5f546c8b3e04c0dd9fcdc19a6b3825849a7
Author: Brad King brad.k...@kitware.com
AuthorDate: Thu Nov 17 11:18:08 2011 -0500
Commit: Brad King brad.k...@kitware.com
CommitDate: Thu Nov 17 11:18:08 2011 -0500

sha2: Zero entire SHA_CTX structure during cleanup

Convert lines of the form

  MEMSET_BZERO(context, sizeof(context));

to the correct form

  MEMSET_BZERO(context, sizeof(*context));

as suggested by Clang.

diff --git a/Source/cm_sha2.c b/Source/cm_sha2.c
index b1798a8..12c39ed 100644
--- a/Source/cm_sha2.c
+++ b/Source/cm_sha2.c
@@ -704,7 +704,7 @@ void SHA1_Final(sha_byte digest[], SHA_CTX* context) {
 * No digest buffer, so we can do nothing
 * except clean up and go home
 */
-   MEMSET_BZERO(context, sizeof(context));
+   MEMSET_BZERO(context, sizeof(*context));
return;
}
 
@@ -760,7 +760,7 @@ void SHA1_Final(sha_byte digest[], SHA_CTX* context) {
 #endif
 
/* Clean up: */
-   MEMSET_BZERO(context, sizeof(context));
+   MEMSET_BZERO(context, sizeof(*context));
 }
 
 char *SHA1_End(SHA_CTX* context, char buffer[]) {
@@ -780,7 +780,7 @@ char *SHA1_End(SHA_CTX* context, char buffer[]) {
}
*buffer = (char)0;
} else {
-   MEMSET_BZERO(context, sizeof(context));
+   MEMSET_BZERO(context, sizeof(*context));
}
MEMSET_BZERO(digest, SHA1_DIGEST_LENGTH);
return buffer;
@@ -1099,7 +1099,7 @@ void SHA256_Final(sha_byte digest[], SHA_CTX* context) {
}
 
/* Clean up state data: */
-   MEMSET_BZERO(context, sizeof(context));
+   MEMSET_BZERO(context, sizeof(*context));
 }
 
 char *SHA256_End(SHA_CTX* context, char buffer[]) {
@@ -1119,7 +1119,7 @@ char *SHA256_End(SHA_CTX* context, char buffer[]) {
}
*buffer = (char)0;
} else {
-   MEMSET_BZERO(context, sizeof(context));
+   MEMSET_BZERO(context, sizeof(*context));
}
MEMSET_BZERO(digest, SHA256_DIGEST_LENGTH);
return buffer;
@@ -1173,7 +1173,7 @@ void SHA224_Final(sha_byte 

[Cmake-commits] CMake branch, next, updated. v2.8.6-1998-gd7cb90e

2011-11-22 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  d7cb90e1bb3747876c53f2f006d6b5ce5399c22f (commit)
   via  614595f2074c57069812b5bb6c3ccb0f067945ce (commit)
  from  2e84d8e613c22677e30414c236dd4f106fdc9a97 (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=d7cb90e1bb3747876c53f2f006d6b5ce5399c22f
commit d7cb90e1bb3747876c53f2f006d6b5ce5399c22f
Merge: 2e84d8e 614595f
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Nov 22 16:02:00 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 16:02:00 2011 -0500

Merge topic 'CheckImportedFileExistenceInConfigDotCMakeFiles' into next

614595f install(EXPORT): Remove leftover export() command changes


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=614595f2074c57069812b5bb6c3ccb0f067945ce
commit 614595f2074c57069812b5bb6c3ccb0f067945ce
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Nov 22 16:00:09 2011 -0500
Commit: Brad King brad.k...@kitware.com
CommitDate: Tue Nov 22 16:00:09 2011 -0500

install(EXPORT): Remove leftover export() command changes

The implementation of imported file existence verification was
originally done for both install(EXPORT) and export() but the latter was
removed since not all configurations may be available in a build tree.
Remove remnants of the export() implementation.

diff --git a/Source/cmExportBuildFileGenerator.cxx 
b/Source/cmExportBuildFileGenerator.cxx
index 1f8a2e2..7e73e36 100644
--- a/Source/cmExportBuildFileGenerator.cxx
+++ b/Source/cmExportBuildFileGenerator.cxx
@@ -68,9 +68,7 @@ cmExportBuildFileGenerator
 // Collect import properties for this target.
 cmTarget* target = *tei;
 ImportPropertyMap properties;
-std::setstd::string importedLocations;
-this-SetImportLocationProperty(config, suffix, target, properties,
-importedLocations);
+this-SetImportLocationProperty(config, suffix, target, properties);
 if(!properties.empty())
   {
   // Get the rest of the target details.
@@ -87,15 +85,13 @@ cmExportBuildFileGenerator
   this-GenerateImportPropertyCode(os, config, target, properties);
   }
 }
-
 }
 
 //
 void
 cmExportBuildFileGenerator
 ::SetImportLocationProperty(const char* config, std::string const suffix,
-cmTarget* target, ImportPropertyMap properties,
-std::setstd::string importedLocations)
+cmTarget* target, ImportPropertyMap properties)
 {
   // Get the makefile in which to lookup target information.
   cmMakefile* mf = target-GetMakefile();
@@ -114,7 +110,6 @@ cmExportBuildFileGenerator
 value = target-GetFullPath(config, false, true);
 }
   properties[prop] = value;
-  importedLocations.insert(prop);
   }
 
   // Check whether this is a DLL platform.
@@ -131,7 +126,6 @@ cmExportBuildFileGenerator
 prop += suffix;
 std::string value = target-GetFullPath(config, true);
 properties[prop] = value;
-importedLocations.insert(prop);
 }
 }
 
diff --git a/Source/cmExportBuildFileGenerator.h 
b/Source/cmExportBuildFileGenerator.h
index 18be68e..0f37626 100644
--- a/Source/cmExportBuildFileGenerator.h
+++ b/Source/cmExportBuildFileGenerator.h
@@ -52,8 +52,7 @@ protected:
   void SetImportLocationProperty(const char* config,
  std::string const suffix,
  cmTarget* target,
- ImportPropertyMap properties,
- std::setstd::string importedLocations);
+ ImportPropertyMap properties);
 
   std::vectorcmTarget* const* Exports;
   cmExportCommand* ExportCommand;

---

Summary of changes:
 Source/cmExportBuildFileGenerator.cxx |   10 ++
 Source/cmExportBuildFileGenerator.h   |3 +--
 2 files changed, 3 insertions(+), 10 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. v2.8.6-2001-gfe18977

2011-11-22 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  fe18977b5f4e12e07dd4693a038b5b407ee0a0c2 (commit)
   via  5c03438661c285a7cc5f1e691198ac4e8a68a8f6 (commit)
   via  a2be068c75890a9b6723c0bbb2d32a108cb84eed (commit)
  from  d7cb90e1bb3747876c53f2f006d6b5ce5399c22f (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=fe18977b5f4e12e07dd4693a038b5b407ee0a0c2
commit fe18977b5f4e12e07dd4693a038b5b407ee0a0c2
Merge: d7cb90e 5c03438
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Nov 22 16:02:58 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 16:02:58 2011 -0500

Merge topic 'CheckImportedFileExistenceInConfigDotCMakeFiles' into next

5c03438 install(EXPORT): Improve target import failure message format
a2be068 install(EXPORT): Enforce existence of imported target files


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5c03438661c285a7cc5f1e691198ac4e8a68a8f6
commit 5c03438661c285a7cc5f1e691198ac4e8a68a8f6
Author: Brad King brad.k...@kitware.com
AuthorDate: Thu Nov 17 16:39:24 2011 -0500
Commit: Brad King brad.k...@kitware.com
CommitDate: Tue Nov 22 15:55:04 2011 -0500

install(EXPORT): Improve target import failure message format

diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx
index 373..c4f5dfb 100644
--- a/Source/cmExportFileGenerator.cxx
+++ b/Source/cmExportFileGenerator.cxx
@@ -385,19 +385,16 @@ 
cmExportFileGenerator::GenerateImportedFileCheckLoop(std::ostream os)
 FOREACH(target ${_IMPORT_CHECK_TARGETS} )\n
   FOREACH(file ${_IMPORT_CHECK_FILES_FOR_${target}} )\n
 IF(NOT EXISTS \${file}\ )\n
-  MESSAGE(FATAL_ERROR \The imported target \\\${target}\\\ 
-references the file \\\${file}\\\, but this file does not exist. 
-There are multiple possible reasons:\n
- * The file \\\${file}\\\ has been manually 
-deleted, renamed or moved to another location.\n
- * A previous install or uninstall procedure did not complete 
- successfully.\n
- * The installation package was faulty, and contained\n
-\\\${CMAKE_CURRENT_LIST_FILE}n
-but not\n
-\\\${file}n
-which must always be installed together.\\n\\n
- )\n
+  MESSAGE(FATAL_ERROR \The imported target \\\${target}\\\
+ references the file\n
+   \\\${file}n
+but this file does not exist.  Possible reasons include:\n
+* The file was deleted, renamed, or moved to another location.\n
+* An install or uninstall procedure did not complete successfully.\n
+* The installation package was faulty and contained\n
+   \\\${CMAKE_CURRENT_LIST_FILE}n
+but not all the files it references.\n
+\)\n
 ENDIF()\n
   ENDFOREACH()\n
   UNSET(_IMPORT_CHECK_FILES_FOR_${target})\n

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a2be068c75890a9b6723c0bbb2d32a108cb84eed
commit a2be068c75890a9b6723c0bbb2d32a108cb84eed
Author: Alex Neundorf neund...@kde.org
AuthorDate: Sat Nov 12 18:12:07 2011 +0100
Commit: Brad King brad.k...@kitware.com
CommitDate: Tue Nov 22 15:55:00 2011 -0500

install(EXPORT): Enforce existence of imported target files

Typical packageConfig.cmake files for find_package() rely only on the
files generated by install(EXPORT).  They might be wrong, for whatever
reasons, like people manually deleted files, projects were packaged
wrong by distributions, whatever.  To protect against this, add checks
that the file locations we are importing actually exist on disk.

Alex

diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx
index 9e5c91e..373 100644
--- a/Source/cmExportFileGenerator.cxx
+++ b/Source/cmExportFileGenerator.cxx
@@ -368,3 +368,69 @@ cmExportFileGenerator
   os)\n
   \n;
 }
+
+
+//
+void
+cmExportFileGenerator::GenerateImportedFileCheckLoop(std::ostream os)
+{
+  // Add code which verifies at cmake time that the file which is being
+  // imported actually exists on disk. This should in theory always be theory
+  // case, but still when packages are split into normal and development
+  // packages this might get broken (e.g. the Config.cmake could be part of
+  // the non-development package, something similar happened to me without
+  // on SUSE with a mysql pkg-config file, which claimed everything is fine,
+  // but the 

[Cmake-commits] CMake branch, master, updated. v2.8.6-222-ge8fc3bc

2011-11-22 Thread David Cole
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  e8fc3bc8d04c8cf64f4c7ed3816126777925660b (commit)
   via  65dde30dddbe495877a3ecfef5a2d0015449b69c (commit)
   via  e48fcfffa36ca34703a4c366cb96593373234faa (commit)
   via  ecb4459e31a0defec084ca0a02e0450da718afdb (commit)
  from  3bbe46daa27a2f405bf97622ad30fd6090e2958e (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=e8fc3bc8d04c8cf64f4c7ed3816126777925660b
commit e8fc3bc8d04c8cf64f4c7ed3816126777925660b
Merge: 3bbe46d 65dde30
Author: David Cole david.c...@kitware.com
AuthorDate: Tue Nov 22 16:23:14 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 16:23:14 2011 -0500

Merge topic 'FixGettextPoProcessingWithMultipleDots'

65dde30 FindGettext: two more fixes for files with multiple dots
e48fcff -make GETTEXT_PROCESS_PO_FILES() work with files with multiple dots
ecb4459 Strip trailing whitespace


---

Summary of changes:
 Modules/FindGettext.cmake |   15 +--
 1 files changed, 9 insertions(+), 6 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, master, updated. v2.8.6-224-g636740c

2011-11-22 Thread David Cole
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  636740c478068685727ffe03f6e469418ca42282 (commit)
   via  46c70540ede37c5f2ebeeeba4178340abf92fadb (commit)
  from  e8fc3bc8d04c8cf64f4c7ed3816126777925660b (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=636740c478068685727ffe03f6e469418ca42282
commit 636740c478068685727ffe03f6e469418ca42282
Merge: e8fc3bc 46c7054
Author: David Cole david.c...@kitware.com
AuthorDate: Tue Nov 22 16:23:23 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 16:23:23 2011 -0500

Merge topic 'fix-12445-add-call-for-batch-files-vs10'

46c7054 VS: Use call  keyword with .cmd and .bat file custom commands 
(#12445)


---

Summary of changes:
 Source/cmLocalVisualStudioGenerator.cxx |   14 ++
 1 files changed, 14 insertions(+), 0 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, master, updated. v2.8.6-227-ge9547ef

2011-11-22 Thread David Cole
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  e9547efa96ab8f1b28914749fd80dfa7d43ca998 (commit)
   via  20cb5edbcaaf89c35638911c27e6aec1c7fc022f (commit)
   via  f30f9a500c5e5aeb053c41307dab9987735570dd (commit)
  from  636740c478068685727ffe03f6e469418ca42282 (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=e9547efa96ab8f1b28914749fd80dfa7d43ca998
commit e9547efa96ab8f1b28914749fd80dfa7d43ca998
Merge: 636740c 20cb5ed
Author: David Cole david.c...@kitware.com
AuthorDate: Tue Nov 22 16:23:31 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 16:23:31 2011 -0500

Merge topic 'FindBISON-version-regex'

20cb5ed FindBISON: Fix matching output of bison --version
f30f9a5 FindBISON: Fix bison++ version parsing to avoid Offending entry


---

Summary of changes:
 Modules/FindBISON.cmake |   13 +++--
 1 files changed, 11 insertions(+), 2 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, master, updated. v2.8.6-229-gf4e266f

2011-11-22 Thread David Cole
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  f4e266f41fd0bf390f9e344dd14f870116f6b772 (commit)
   via  df0f302485c6f93a473e1958830b69b9c165b01a (commit)
  from  e9547efa96ab8f1b28914749fd80dfa7d43ca998 (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=f4e266f41fd0bf390f9e344dd14f870116f6b772
commit f4e266f41fd0bf390f9e344dd14f870116f6b772
Merge: e9547ef df0f302
Author: David Cole david.c...@kitware.com
AuthorDate: Tue Nov 22 16:23:36 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 16:23:36 2011 -0500

Merge topic 'FindPNG_Provide_PNG_INCLUDE_DIRS_Variable'

df0f302 FindPNG: provide PNG_INCLUDE_DIRS, as the readme.txt says (#11312)


---

Summary of changes:
 Modules/FindPNG.cmake |   17 +++--
 1 files changed, 11 insertions(+), 6 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, master, updated. v2.8.6-231-gf0419b4

2011-11-22 Thread David Cole
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  f0419b439a0ae8945cc39fbae22ea83ad7f0af74 (commit)
   via  92af1dad0652951e8f7adc1a4a59527bd98435fa (commit)
  from  f4e266f41fd0bf390f9e344dd14f870116f6b772 (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=f0419b439a0ae8945cc39fbae22ea83ad7f0af74
commit f0419b439a0ae8945cc39fbae22ea83ad7f0af74
Merge: f4e266f 92af1da
Author: David Cole david.c...@kitware.com
AuthorDate: Tue Nov 22 16:23:48 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 16:23:48 2011 -0500

Merge topic 'fix-11792-improve-ctest-site-handling'

92af1da CTest: Disallow problem chars in build and site names (#11792)


---

Summary of changes:
 Source/cmCTest.cxx |   57 ++-
 Source/cmCTest.h   |4 +++
 2 files changed, 55 insertions(+), 6 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, master, updated. v2.8.6-242-g7db42fc

2011-11-22 Thread David Cole
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  7db42fc2559ec2692c36cf25f781f50dd48b7f44 (commit)
   via  ec358d17a77635a59aa09c5dbd7a6cd3b0cf000d (commit)
   via  b421c2477c4c4f9d4c93997661f1698812cdae36 (commit)
   via  5796f88d92832739889cc613d911d4d581b29365 (commit)
   via  ae7cf91b1376cc313dc39e41c7d3e2026ac79b6b (commit)
   via  aaf376594cf4ae1d541189a2789382db47aa5d7b (commit)
   via  9ccd639ad70c65b844f6610c5ae08a63e25f6806 (commit)
   via  8be93fc487064c5b417ab9b0ebd4e027a5e6b9ea (commit)
  from  7b1b13c8f005362914796e97551800c63bca393a (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=7db42fc2559ec2692c36cf25f781f50dd48b7f44
commit 7db42fc2559ec2692c36cf25f781f50dd48b7f44
Merge: 7b1b13c ec358d1
Author: David Cole david.c...@kitware.com
AuthorDate: Tue Nov 22 16:24:04 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 16:24:04 2011 -0500

Merge topic 'update-KWIML'

ec358d1 Merge branch 'upstream-kwiml' into update-KWIML
b421c24 KWIML: Avoid MSVC linker warning about not using C++ runtime
5796f88 Merge branch 'upstream-kwiml' into update-KWIML
ae7cf91 KWIML: Teach ABI.h about PGI compiler
aaf3765 Merge branch 'upstream-kwiml' into update-KWIML
9ccd639 KWIML: Ignore _LONGLONG on MS compiler
8be93fc KWIML: Test header inclusion after system headers


---

Summary of changes:
 Utilities/KWIML/ABI.h.in   |7 ++-
 Utilities/KWIML/test/CMakeLists.txt|2 ++
 Utilities/KWIML/test/test.c|4 
 .../test/{test_INT_CXX.cxx = test_include_C.c}|   12 ++--
 .../{test_ABI_CXX.cxx = test_include_CXX.cxx} |   18 --
 5 files changed, 30 insertions(+), 13 deletions(-)
 copy Utilities/KWIML/test/{test_INT_CXX.cxx = test_include_C.c} (81%)
 copy Utilities/KWIML/test/{test_ABI_CXX.cxx = test_include_CXX.cxx} (62%)


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.6-2011-g4d5ece3

2011-11-22 Thread David Cole
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  4d5ece3c047ec2a5d56e03888116a430ecf2a4cc (commit)
   via  d9df0cca66543610472f5979cfce73765b7e281a (commit)
   via  7db42fc2559ec2692c36cf25f781f50dd48b7f44 (commit)
   via  7b1b13c8f005362914796e97551800c63bca393a (commit)
   via  f0419b439a0ae8945cc39fbae22ea83ad7f0af74 (commit)
   via  f4e266f41fd0bf390f9e344dd14f870116f6b772 (commit)
   via  e9547efa96ab8f1b28914749fd80dfa7d43ca998 (commit)
   via  636740c478068685727ffe03f6e469418ca42282 (commit)
   via  e8fc3bc8d04c8cf64f4c7ed3816126777925660b (commit)
   via  3bbe46daa27a2f405bf97622ad30fd6090e2958e (commit)
  from  fe18977b5f4e12e07dd4693a038b5b407ee0a0c2 (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=4d5ece3c047ec2a5d56e03888116a430ecf2a4cc
commit 4d5ece3c047ec2a5d56e03888116a430ecf2a4cc
Merge: fe18977 d9df0cc
Author: David Cole david.c...@kitware.com
AuthorDate: Tue Nov 22 16:25:03 2011 -0500
Commit: David Cole david.c...@kitware.com
CommitDate: Tue Nov 22 16:25:03 2011 -0500

Merge branch 'master' into next


---

Summary of changes:
 Source/kwsys/kwsysDateStamp.cmake |2 +-
 1 files changed, 1 insertions(+), 1 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. v2.8.6-2015-g99966be

2011-11-22 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  99966be1f7e2497bfca909db9232e64351687865 (commit)
   via  ff35ae79e208a705575f8c1aadd4666a00a352db (commit)
   via  914382224d34cfb86a67c8191b6e7b3a3e918f88 (commit)
   via  cf64218eeb7dbe8a0d71292c42df63c4cb982fed (commit)
  from  4d5ece3c047ec2a5d56e03888116a430ecf2a4cc (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=99966be1f7e2497bfca909db9232e64351687865
commit 99966be1f7e2497bfca909db9232e64351687865
Merge: 4d5ece3 ff35ae7
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Nov 22 17:04:45 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 17:04:45 2011 -0500

Merge topic 'test-target_link_libraries' into next

ff35ae7 Merge branch 'target-link-libraries-interfaces' into 
test-target_link_libraries
9143822 target_link_libraries: Add LINK_(PUBLIC|PRIVATE) options
cf64218 target_link_libraries: Trim trailing whitespace


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ff35ae79e208a705575f8c1aadd4666a00a352db
commit ff35ae79e208a705575f8c1aadd4666a00a352db
Merge: 1e55661 9143822
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Nov 22 16:54:53 2011 -0500
Commit: Brad King brad.k...@kitware.com
CommitDate: Tue Nov 22 16:55:30 2011 -0500

Merge branch 'target-link-libraries-interfaces' into 
test-target_link_libraries

Conflicts:
Tests/CMakeCommands/target_link_libraries/CMakeLists.txt

diff --cc Tests/CMakeCommands/target_link_libraries/CMakeLists.txt
index fdd53eb,1faa888..6df1b4c
--- a/Tests/CMakeCommands/target_link_libraries/CMakeLists.txt
+++ b/Tests/CMakeCommands/target_link_libraries/CMakeLists.txt
@@@ -13,271 -13,46 +13,315 @@@ add_executable
${CMAKE_CURRENT_BINARY_DIR}/main.cxx
  )
  
+ macro(ASSERT_PROPERTY _target _property _value)
+   get_target_property(_out ${_target} ${_property})
+   if (NOT _out)
+ set(_out )
+   endif()
+   if (NOT ${_out} STREQUAL ${_value})
+ message(SEND_ERROR Target ${_target} does not have property ${_property} 
with value ${_value}. Actual value: ${_out})
+   endif()
+ endmacro()
+ 
+ include(GenerateExportHeader)
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ 
+ add_library(depA SHARED depA.cpp)
+ generate_export_header(depA)
+ 
+ add_library(depB SHARED depB.cpp)
+ generate_export_header(depB)
+ 
+ target_link_libraries(depB LINK_PRIVATE depA)
+ 
+ add_library(depC SHARED depC.cpp)
+ generate_export_header(depC)
+ 
+ target_link_libraries(depC LINK_PUBLIC depA)
+ 
+ assert_property(depA LINK_INTERFACE_LIBRARIES )
+ assert_property(depB LINK_INTERFACE_LIBRARIES )
+ assert_property(depC LINK_INTERFACE_LIBRARIES depA)
+ 
+ add_executable(targetA targetA.cpp)
+ 
+ target_link_libraries(targetA LINK_INTERFACE_LIBRARIES depA depB)
+ 
+ assert_property(targetA LINK_INTERFACE_LIBRARIES depA;depB)
+ 
+ set_target_properties(targetA PROPERTIES LINK_INTERFACE_LIBRARIES )
+ 
+ assert_property(targetA LINK_INTERFACE_LIBRARIES )
+ 
+ target_link_libraries(targetA depB depC)
+ 
+ assert_property(targetA LINK_INTERFACE_LIBRARIES )
++
 +try_compile(LINK_INTERFACE_LIBRARIES_FAILS
 +  ${CMAKE_CURRENT_BINARY_DIR}/control_point
 +  ${CMAKE_CURRENT_SOURCE_DIR}/control_point
 +  control_point
 +)
 +
 +if (LINK_INTERFACE_LIBRARIES_FAILS)
 +  message(\n\n###\nTHIS PLATFORM DOES NOT SUPPORT 
LINK_INTERFACE_LIBRARIES\n\n)
 +  return()
 +endif()
 +
 +set(Bools True False)
 +
 +foreach(B1 ${Bools})
 +  foreach(B2 ${Bools})
 +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory
 +  ${CMAKE_CURRENT_SOURCE_DIR}/libs
 +  ${CMAKE_CURRENT_BINARY_DIR}/libs_${B1}_${B2}
 +)
 +  endforeach()
 +endforeach()
 +
 +foreach(B1 ${Bools})
 +  file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libs_True_${B1}/CMakeLists.txt
 +set(CMAKE_LINK_INTERFACE_LIBRARIES \\)\n
 +  )
 +endforeach()
 +
 +foreach(B1 ${Bools})
 +  foreach(B2 ${Bools})
 +file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libs_${B1}_${B2}/CMakeLists.txt
 +
 +  add_library(libA SHARED classA.cpp)\n
 +  add_library(libB SHARED classB.cpp)\n
 +  add_library(libC SHARED classC.cpp)\n
 +
 +  generate_export_header(libA)\n
 +  generate_export_header(libB)\n
 +  generate_export_header(libC)\n
 +
 +  target_link_libraries(libB libA)\n
 +  target_link_libraries(libC libA libB)\n
 +)
 +  endforeach()
 +endforeach()
 +
 +foreach(B1 ${Bools})
 +  file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libs_${B1}_True/CMakeLists.txt
 +  target_link_libraries(libB LINK_INTERFACE_LIBRARIES libA)\n
 +  target_link_libraries(libC 

[Cmake-commits] CMake branch, next, updated. v2.8.6-2018-g0799223

2011-11-22 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  07992233965dc71ab03bfccc79179176996454b3 (commit)
   via  b1f12f8042ef0d7b190c04644905d3b3a325d4ae (commit)
   via  5fc95dff464b08c83df2c904a281bb4c45278a35 (commit)
  from  99966be1f7e2497bfca909db9232e64351687865 (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=07992233965dc71ab03bfccc79179176996454b3
commit 07992233965dc71ab03bfccc79179176996454b3
Merge: 99966be b1f12f8
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Nov 22 17:26:35 2011 -0500
Commit: CMake Topic Stage kwro...@kitware.com
CommitDate: Tue Nov 22 17:26:35 2011 -0500

Merge topic 'target-link-libraries-interfaces' into next

b1f12f8 target_link_libraries: Simplify argument processing state tests
5fc95df target_link_libraries: Add missing space in documentation


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b1f12f8042ef0d7b190c04644905d3b3a325d4ae
commit b1f12f8042ef0d7b190c04644905d3b3a325d4ae
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Nov 22 17:20:23 2011 -0500
Commit: Brad King brad.k...@kitware.com
CommitDate: Tue Nov 22 17:21:36 2011 -0500

target_link_libraries: Simplify argument processing state tests

Remove extra parens in test for not handling LINK_INTERFACE_LIBRARIES.
Remove redundant test for equality with ProcessingPrivateInterface
subsumed by test for inequality with ProcessingPublicInterface.

diff --git a/Source/cmTargetLinkLibrariesCommand.cxx 
b/Source/cmTargetLinkLibrariesCommand.cxx
index 0db5943..36c4ca8 100644
--- a/Source/cmTargetLinkLibrariesCommand.cxx
+++ b/Source/cmTargetLinkLibrariesCommand.cxx
@@ -217,8 +217,8 @@ bool cmTargetLinkLibrariesCommand
   // Use of any of the new keywords implies awareness of
   // this property. And if no libraries are named, it should
   // result in an empty link interface.
-  if((this-CurrentProcessingState != ProcessingLinkLibraries)
- !this-Target-GetProperty(LINK_INTERFACE_LIBRARIES))
+  if(this-CurrentProcessingState != ProcessingLinkLibraries 
+ !this-Target-GetProperty(LINK_INTERFACE_LIBRARIES))
 {
 this-Target-SetProperty(LINK_INTERFACE_LIBRARIES, );
 }
@@ -249,9 +249,9 @@ cmTargetLinkLibrariesCommand::HandleLibrary(const char* lib,
 {
 this-Makefile
   -AddLinkLibraryForTarget(this-Target-GetName(), lib, llt);
-if (this-CurrentProcessingState != ProcessingPublicInterface
-|| this-CurrentProcessingState == ProcessingPrivateInterface)
+if (this-CurrentProcessingState != ProcessingPublicInterface)
   {
+  // Not LINK_INTERFACE_LIBRARIES or LINK_PUBLIC, do not add to interface.
   return;
   }
 }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5fc95dff464b08c83df2c904a281bb4c45278a35
commit 5fc95dff464b08c83df2c904a281bb4c45278a35
Author: Brad King brad.k...@kitware.com
AuthorDate: Tue Nov 22 17:19:04 2011 -0500
Commit: Brad King brad.k...@kitware.com
CommitDate: Tue Nov 22 17:19:04 2011 -0500

target_link_libraries: Add missing space in documentation

Change thelink to the link.

diff --git a/Source/cmTargetLinkLibrariesCommand.h 
b/Source/cmTargetLinkLibrariesCommand.h
index e91c46d..8df4ac0 100644
--- a/Source/cmTargetLinkLibrariesCommand.h
+++ b/Source/cmTargetLinkLibrariesCommand.h
@@ -112,8 +112,8 @@ public:
 [[debug|optimized|general] lib] ...\n
   [LINK_PRIVATE|LINK_PUBLIC\n
 [[debug|optimized|general] lib] ...])\n
-  The LINK_PUBLIC and LINK_PRIVATE modes can be used to specify both the
-  link dependencies and the link interface in one command.  
+  The LINK_PUBLIC and LINK_PRIVATE modes can be used to specify both 
+  the link dependencies and the link interface in one command.  
   Libraries and targets following LINK_PUBLIC are linked to, and are 
   made part of the LINK_INTERFACE_LIBRARIES. Libraries and targets 
   following LINK_PRIVATE are linked to, but are not made part of the 

---

Summary of changes:
 Source/cmTargetLinkLibrariesCommand.cxx |8 
 Source/cmTargetLinkLibrariesCommand.h   |4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)


hooks/post-receive
-- 
CMake
___
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits