Re: [cmake-developers] conditionals in generator expressions

2012-09-17 Thread Stephen Kelly
Stephen Kelly wrote:

>> The destructor of cmCompiledGeneratorExpression is deleting
>> the evaluators before they get used again in later evals.
>> Commenting out the "delete" line fixes the crash but probably
>> leaks.  You need to work out the ownership semantics.
>>
> 
> Thanks. I'm too used to everything being implicitly shared :). Valgrind
> didn't show the problem, interestingly enough.

A colleague tells me that gcc generates code that doesn't actually 'guard' 
memory immediately when the dtor is called, but Windows does, which could 
explain everything.

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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Brad King
On 09/15/2012 04:45 PM, Alexander Neundorf wrote:
> There is now a branch export-sets-2 on cmake stage.
> It cherry-picks a lot of the patches from 
> http://gitorious.org/~urkud1/cmake/urkud-cmake/commits/w/export-set, mostly 
> those from May, and then proceeds a bit differently.
> 
> In the end, cmake now checks whether a target which is missing in the current 
> export set has been exported and installed exactly once, gets the correct 
> name 
> from that one installation (i.e. the used namespace), and uses that.

That simple approach will allow us to move forward with this.  If anyone
wants multiple exports of the same targets then they can add the explicit
export set DEPENDS options later.

The topic looks good except for the details below.

> Additionally it puts the following check in the generated target file:
> 
> IF(NOT TARGET "Foo::foo" )
>   MESSAGE(FATAL_ERROR "Required imported target \"Foo::foo\" not found ! ")
> ENDIF()
> 
> Please review the branch.
> Exotic cases are not supported, but it should be possible now to export 
> libraries in separate export sets and still have it work.
> 
> I guess I have to handle the error case better than simply erroring out.

Not IMO.  Remember my message here:

 
http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/4374/focus=4386

The user has the option to specify a known-working _DIR value or
disable use of the package completely.  Your commit message sentence
"I guess instead of completely erroring out it would be better to only
make the find_package() fail." is not needed.

Also, one of Yury's commit messages says:

 TODO: remove another clear() because it doesn't delete TargetExports.

What is that about?

Thanks,
-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] conditionals in generator expressions

2012-09-17 Thread Stephen Kelly
Stephen Kelly wrote:

> Good idea. Pushed to next with this modification.
> 

I've fixed all errors and warnings that can be fixed. Some remain due to 
compiler bugs which claim some code in a template is unreachable (but that's 
only due to the template parameters).

I think it would make sense to rewrite the branch to squash the whitespace 
fixes before merging to master though.

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] conditionals in generator expressions

2012-09-17 Thread Stephen Kelly
Stephen Kelly wrote:

>>> The next thing I want to do is to see if I can make full use of
>>> cmGeneratorTarget and use const proactively while doing so, to make the
>>> code more clear. I'm not 100% certain that's possible, but it's the next
>>> goal I have. Any comments on that?
>>
>> That would be a really great example of splitting configure-time
>> constructs from generate-time constructs.
> 
> Right. I investigated a little bit already and it seems there's at least
> some low-hanging fruit.

I've put my work on the use-generator-target branch in my clone. 

Using const as proactively as I wanted is not really possible/worth it 
because of all the memoizing cmake does, but I've ported it to use 
cmGeneratorTarget enough to be able to add a

 cmGeneratorTarget::GetCompileDefinitions(const char *config) 

and use generator expressions in the implementation, and to use generator 
expressions in 

 cmGeneratorTarget::GetIncludeDirectories(const char *config) 

too. That should be three trivial patches, but I haven't written them yet. 
That's all I'm aiming for of the target_use_targets feature for the next 
release, so I think that's still on track.

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] conditionals in generator expressions

2012-09-17 Thread Stephen Kelly
Stephen Kelly wrote:

> too. That should be three trivial patches, but I haven't written them yet.
> That's all I'm aiming for of the target_use_targets feature for the next
> release, so I think that's still on track.

I spoke too soon. It's 3 trivial patches and one DAG-checker. :)

http://community.kde.org/Frameworks/Epics/CMake_target_usage_requirements#TODO

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


[cmake-developers] [CMake 0013544]: Visual Studio 2012 Express not supported

2012-09-17 Thread Mantis Bug Tracker

The following issue has been SUBMITTED. 
== 
http://public.kitware.com/Bug/view.php?id=13544 
== 
Reported By:Filip Konvicka (LOGIS)
Assigned To:
== 
Project:CMake
Issue ID:   13544
Category:   CMake
Reproducibility:always
Severity:   major
Priority:   normal
Status: new
== 
Date Submitted: 2012-09-17 09:32 EDT
Last Modified:  2012-09-17 09:32 EDT
== 
Summary:Visual Studio 2012 Express not supported
Description: 
Visual C++ 2012 Express is not detected properly.  The registry paths (and
possibly other things) in the Express version differ from the paid MSVS
versions.

Additional Information: 
The new registry path is

HKEY_CURRENT_USER\\Software\\Microsoft\\WDExpress\\11.0_Config

Also, the IDE exe name is no longer VCExpress.exe, but rather WDExpress.exe.

== 

Issue History 
Date ModifiedUsername   FieldChange   
== 
2012-09-17 09:32 Filip Konvicka (LOGIS)New Issue
   
==

--

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] conditionals in generator expressions

2012-09-17 Thread Brad King
On 09/17/2012 08:50 AM, Stephen Kelly wrote:
> I've fixed all errors and warnings that can be fixed. Some remain due to 
> compiler bugs which claim some code in a template is unreachable (but that's 
> only due to the template parameters).

The HP warnings are not a compiler bug.  It looks like other compilers
picked up on it too but you suppressed the warnings in the topic.
In this code:

  template
  ...
  // TODO: static_assert(!(name && dir))
  if(nameQual)
{
return cmSystemTools::GetFilenameName(result);
}
  else if (dirQual)
{
return cmSystemTools::GetFilenamePath(result);
}
  return result;

when either nameQual or dirQual is true that is a compile-time constant
so the "return result" line is truly unreachable in that instantiation.
You need to use compile-time conditional code rather than "runtime"
tests of compile-time constants.  This is true for the other template
parameters too.

> I think it would make sense to rewrite the branch to squash the whitespace 
> fixes before merging to master though.

Yes, I can do this when the topic is done.

-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] Specifying VS target platform

2012-09-17 Thread Brad King
On 09/14/2012 05:59 PM, Patrick Gansterer wrote:
> Maybe you can merge the first patch already.

Yes, done.

>> The idea of a "generator platform" is not generic among all generators.
>> Rather than the general CMAKE_GENERATOR_PLATFORM infrastructure I'd
>> generator-specific handling.  The value of -GP should be passed to the
>> global generator created from -G.  If the generator does not support
>> platform specification in this way then -GP should be an error (all
>> generators except VS >= 8).  If the generator does support -GP then it
>> should do its own thing to save the value.  For VS save it in a cache
>> entry like "CMAKE_VS_PLATFORM" (we have "CMAKE_VS_PLATFORM_TOOLSET"
>> already for the VS 10 toolchain in some cases).
> 
> I'm not a big fan of your ideas: What about the parts where we
> pass the generator platform to other parts? Do we want to add
> branches for every generator type to get get correct value for
> the -GP parameter (e.g. if (CMAKE_GENERATOR == "Visual Studio
> ...") "-GP ${CMAKE_VS_PLATFORM}")? IMHO that's not a good
> idea. Also handling for making sure that generator platform
> isn't changed by the user (like we do for -G already) in a
> second run of CMake must be duplicated later if we add -GP to
> more than one generator. (and so on...)

Good points, but we still need to reject -GP when using generators
for which it does not make sense.  I think it may be moot anyway;
see below.

>> I realized that existing projects may test ${CMAKE_GENERATOR} to look
>> for things like "Win64".  For compatibility we need to make sure that
>>
>> -G "Visual Studio 10" -GP x64
>>
>> results in CMAKE_GENERATOR being set to
>>
>> -G "Visual Studio 10 Win64"
>>
>> while processing CMake code even if it is not used that way
>> internally.  Of course for future VS versions the generator names
>> will not need to work this way, only the existing ones.
> 
> Since we need to support -G "Visual Studio 10 Win64" anyway, I don't see
> much problem if such cases will work with -G "Visual Studio 10 Win64",
> but not with -G "Visual Studio 10" -GP x64.

We are talking about changing the way the user selects the generator
in the GUI to be equivalent to -G/-GP.  We cannot process existing
projects differently depending on how the generator was selected.

I also know there are projects that pass ${CMAKE_GENERATOR} to
internal invocations of CMake in order to say "build it like I'm
built".  These paths would not work if any information moved over
to CMAKE_GENERATOR_PLATFORM or an equivalent variable.

I think the value of -GP has to be stored in CMAKE_GENERATOR at
the end of the generator name as it is now.  The new option and GUI
updates are really just about simplifying the selection of the
generator and avoiding per-platform global generators in the internal
implementation.  Users can either use -G and specify the full
generator name with platform or use -G/-GP separately but either way
the value of CMAKE_GENERATOR will be the same.

This can probably be improved in the future with a new cmake policy
but I don't want to open that can of worms just for WinCE.  I think
you can implement -G/-GP such that the values are both stored in the
CMAKE_GENERATOR value.  Internally we won't need a separate global
generator for every platform anymore, but that does not change the
public interface.

Thanks,
-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] conditionals in generator expressions

2012-09-17 Thread Stephen Kelly
Brad King wrote:
> when either nameQual or dirQual is true that is a compile-time constant
> so the "return result" line is truly unreachable in that instantiation.

Yes. I was assuming a compiler optimization would exist for that kind of 
thing.

> You need to use compile-time conditional code rather than "runtime"
> tests of compile-time constants.  This is true for the other template
> parameters too.

Done.

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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Yury G. Kudryashov
2012/9/17 Brad King :
> On 09/15/2012 04:45 PM, Alexander Neundorf wrote:
> Also, one of Yury's commit messages says:
>
>  TODO: remove another clear() because it doesn't delete TargetExports.
>
> What is that about?
clear() on a vector of TargetExport* does not call delete on each element.

BTW, do we really support the reinitialization of all cmake
structures? I think that there are quite a few memory leaks in this
case.
-- 
Yours Yury,
mailto: urkud.ur...@gmail.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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Yury G. Kudryashov
2012/9/16 Alexander Neundorf :
> On Tuesday 11 September 2012, Brad King wrote:
>> On 09/11/2012 04:08 PM, Yury G. Kudryashov wrote:
>> > 2012/9/11 Alexander Neundorf :
>> >> Hi Yury,
>> >>
>> >> will you be able to work on this for the 2.8.10 release ?
>> >
>> > What are the deadlines?
>>
>> Features not finished by the end of September may not be included.
>
> I gave it a try today.
Thanks a lot! I had a lot of bureaucratic work last week, and did not
know if it will be finished soon. It seems that each Russian
bureaucrat wants to let citizens do much more paper work than it is
written in the law... The only way to resist is to cite the law or
give them a printed version to read.

It would be nice if you'll give me a couple of days to review your
branch. If I'll become silent again, just go on.
-- 
Yours Yury,
mailto: urkud.ur...@gmail.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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Proposal: An IRC dev meeting to chat about CMake stuff

2012-09-17 Thread David Cole
Please join us in about 15 minutes for a CMake Developers chat via the IRC
#cmake room...
--

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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Alexander Neundorf
On Monday 17 September 2012, Brad King wrote:
> On 09/15/2012 04:45 PM, Alexander Neundorf wrote:
> > There is now a branch export-sets-2 on cmake stage.
> > It cherry-picks a lot of the patches from
> > http://gitorious.org/~urkud1/cmake/urkud-cmake/commits/w/export-set,
> > mostly those from May, and then proceeds a bit differently.
> > 
> > In the end, cmake now checks whether a target which is missing in the
> > current export set has been exported and installed exactly once, gets
> > the correct name from that one installation (i.e. the used namespace),
> > and uses that.
> 
> That simple approach will allow us to move forward with this.  If anyone
> wants multiple exports of the same targets then they can add the explicit
> export set DEPENDS options later.

Cool.
The tests are not yet passing, I'll work on this.
 
> The topic looks good except for the details below.
> 
> > Additionally it puts the following check in the generated target file:
> > 
> > IF(NOT TARGET "Foo::foo" )
> > 
> >   MESSAGE(FATAL_ERROR "Required imported target \"Foo::foo\" not found !
> >   ")
> > 
> > ENDIF()
> > 
> > Please review the branch.
> > Exotic cases are not supported, but it should be possible now to export
> > libraries in separate export sets and still have it work.
> > 
> > I guess I have to handle the error case better than simply erroring out.
> 
> Not IMO.  Remember my message here:
> 
>  http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/4374/focu
> s=4386
> 
> The user has the option to specify a known-working _DIR value or
> disable use of the package completely.  Your commit message sentence
> "I guess instead of completely erroring out it would be better to only
> make the find_package() fail." is not needed.


I think this is different.
Here, in this case, it may fail because the required (missing) package was 
simply not found, because it is not installed.
If the package is optional, this is ok, cmake should not abort, but just 
report that the package was not found.

In the referenced email, if the error occurs, something is broken on the 
system, a broken package has been installed, or something like that. This is 
IMO different than simply a missing package.

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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Brad King
On 09/17/2012 03:14 PM, Alexander Neundorf wrote:
> On Monday 17 September 2012, Brad King wrote:
>>> I guess I have to handle the error case better than simply erroring out.
>>
>> Not IMO.  Remember my message here:
> 
> I think this is different.
> Here, in this case, it may fail because the required (missing) package was 
> simply not found, because it is not installed.

I must not understand the use case.  It looks to me like you're generating
a Targets.cmake file to be loaded by a Config.cmake file.  If
these files are being read then _DIR is set to a copy of the .
The package has been found.  Just as in the previous discussion, the
error in the package occurs because it is misconfigured: one of its
dependencies is not installed or loaded correctly to provide the other
imported 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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Alexander Neundorf
On Monday 17 September 2012, Brad King wrote:
> On 09/17/2012 03:14 PM, Alexander Neundorf wrote:
> > On Monday 17 September 2012, Brad King wrote:
> >>> I guess I have to handle the error case better than simply erroring
> >>> out.
> >> 
> >> Not IMO.  Remember my message here:
> > I think this is different.
> > Here, in this case, it may fail because the required (missing) package
> > was simply not found, because it is not installed.
> 
> I must not understand the use case.  It looks to me like you're generating
> a Targets.cmake file to be loaded by a Config.cmake file.  If
> these files are being read then _DIR is set to a copy of the .
> The package has been found.  Just as in the previous discussion, the
> error in the package occurs because it is misconfigured: one of its
> dependencies is not installed or loaded correctly to provide the other
> imported target.

Let's say FooTargets.cmake provides the target foo.

BarTargets.cmake provides the target bar, and requires FooTargets.cmake.

Now if the user installed the bar-devel package, but not the foo-devel 
package, the target foo will not be available.
This can or should be checked also outside maybe in the BarConfig.cmake cmake, 
which could load BarTargets.cmake only if Foo could be found, but still I 
think it's not necessary to abort in this error case.

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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Brad King
On 09/17/2012 03:35 PM, Alexander Neundorf wrote:
> Let's say FooTargets.cmake provides the target foo.
> 
> BarTargets.cmake provides the target bar, and requires FooTargets.cmake.
> 
> Now if the user installed the bar-devel package, but not the foo-devel 
> package, the target foo will not be available.
> This can or should be checked also outside maybe in the BarConfig.cmake 
> cmake, 
> which could load BarTargets.cmake only if Foo could be found, but still I 
> think it's not necessary to abort in this error case.

What would you do instead of aborting?  Silently pretend the package
Bar was not found at the current Bar_DIR and move on with the search?
That would require the sandboxing I previously elaborated.  It would
also be confusing to users IMO because the package they know is in
their search path would be skipped for a mysterious reason.

-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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Alexander Neundorf
On Monday 17 September 2012, Brad King wrote:
> On 09/17/2012 03:35 PM, Alexander Neundorf wrote:
> > Let's say FooTargets.cmake provides the target foo.
> > 
> > BarTargets.cmake provides the target bar, and requires FooTargets.cmake.
> > 
> > Now if the user installed the bar-devel package, but not the foo-devel
> > package, the target foo will not be available.
> > This can or should be checked also outside maybe in the BarConfig.cmake
> > cmake, which could load BarTargets.cmake only if Foo could be found, but
> > still I think it's not necessary to abort in this error case.
> 
> What would you do instead of aborting?  Silently pretend the package
> Bar was not found at the current Bar_DIR and move on with the search?
> That would require the sandboxing I previously elaborated.  It would
> also be confusing to users IMO because the package they know is in
> their search path would be skipped for a mysterious reason.

Isn't e.g. FindPNG.cmake doing just the same ?
If zlib wasn't found, fail at finding png.

Here we are again at generating error messages...

Instead of simply stating that a required target does not exist, it could also 
state from which installed export this is expected to come, e.g. 
FooTargets.cmake.

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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Brad King
On 09/17/2012 03:52 PM, Alexander Neundorf wrote:
> On Monday 17 September 2012, Brad King wrote:
>> What would you do instead of aborting?  Silently pretend the package
>> Bar was not found at the current Bar_DIR and move on with the search?
>> That would require the sandboxing I previously elaborated.  It would
>> also be confusing to users IMO because the package they know is in
>> their search path would be skipped for a mysterious reason.
> 
> Isn't e.g. FindPNG.cmake doing just the same ?
> If zlib wasn't found, fail at finding png.

Okay, so then BarConfig.cmake would set Bar_FOUND to false to pretend
the package isn't found but not change Bar_DIR?

> Instead of simply stating that a required target does not exist, it could 
> also 
> state from which installed export this is expected to come, e.g. 
> FooTargets.cmake.

That would be useful if the namespace doesn't match.

-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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Alexander Neundorf
On Monday 17 September 2012, Brad King wrote:
> On 09/17/2012 03:52 PM, Alexander Neundorf wrote:
> > On Monday 17 September 2012, Brad King wrote:
> >> What would you do instead of aborting?  Silently pretend the package
> >> Bar was not found at the current Bar_DIR and move on with the search?
> >> That would require the sandboxing I previously elaborated.  It would
> >> also be confusing to users IMO because the package they know is in
> >> their search path would be skipped for a mysterious reason.
> > 
> > Isn't e.g. FindPNG.cmake doing just the same ?
> > If zlib wasn't found, fail at finding png.
> 
> Okay, so then BarConfig.cmake would set Bar_FOUND to false to pretend
> the package isn't found but not change Bar_DIR?

Something like that.

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] Proposal: An IRC dev meeting to chat about CMake stuff

2012-09-17 Thread Rolf Eike Beer
David Cole wrote:
> Please join us in about 15 minutes for a CMake Developers chat via the IRC
> #cmake room...

Here is the log of the meeting.

[19:47:56]  ah, the VIPs are finally arriving ;)
[19:48:36] *** Modus #cmake +o Dakon durch ChanServ
[19:48:47] *** Modus #cmake +v davidcole durch Dakon
[19:58:01]  VIP? Where? (looks around… sees nobody else)
[19:58:13]  ;)
[19:58:26]  aLeSD|: there?
[19:59:38]  Can we tell how many are here? I'm not an IRC expert
yet by any stretch
[20:00:30]  I'm here for the developer discussion.
[20:00:42]  davidcole: 84 people
[20:00:49]  But it's always about that many
[20:00:52]  Excellent, you are in the right place
[20:01:28]  This is going to be sort of free form…
[20:01:37]  I don't have any specific agenda
[20:02:35]  But I would like to talk about CMake 2.8.10, when we
should anticipate having release candidate 1, talk a little about bugs, and
then see if anybody else has any questions or discussion items
[20:04:38]  then let's talk ;)
[20:05:50]  OK - first of all, one of the ideas with scheduling this
on Monday was to talk about anything you all would like to bring to my
attention (and Brad's) before our Tuesday merge sessions.
[20:06:20]  Before we talk about 2.8.10-rc1, does anybody have any
specific items that they want to chat about w.r.t. tomorrow's merging?
[20:06:26]  I have an item: Is the qt5-qtdialog-port branch blocked
on something? Waiting for Qt 5 relase or something like thaT?
[20:06:35]  The dashboard looks good today.
[20:06:51]  qt5 question: hang on, let me take a glance at it...
[20:07:40]  Oops, I just realized I didn't merge it to next...
[20:07:44]  I think I finally fixed the last issue in the document-MSVC-
variables-12567 branch, should be green tomorrow
[20:07:48]  The "qt5-qtdialog-port" is not merged to 'next'
according to 'stage print'
[20:08:11]  One of these times I'll look up to see what others have
typed before I hit "return" :-P
[20:08:21]  hrhr
[20:08:40]  I have a fix in bug 13262 but got no response from the
original reporter so far
[20:08:41]  great on the "fixing last issue" - thanks, Eike
[20:09:16]  I think I'll just push and merge that to next now and let
everyone complain afterwards about the things I broke again ;)
[20:09:16]  well….
[20:09:29]  Merged the qt5 branch to next now.
[20:09:40]  w.r.t. 13262, if you don't hear back, but you think
it's probably the right fix, it's ok with me if you want to merge it to 'next'
[20:10:08]  the patch for it looks simple enough
[20:10:42]  I think I once again will run into problems there is the
list is empty, no?
[20:10:58]  will check and then merge
[20:11:39]  ah, no, the list can't be empty there
[20:12:11]  but I'll change that "set" to "list(APPEND" for sanity
[20:12:31]  sounds reasonable
[20:12:42]  there are other "not yet in next
[20:12:48]  " branches on the stage
[20:13:17]  any claimers? for "export-sets-2"
"generate_export_header-fixes" and "AutomocUseTargetProperties"
[20:13:36]  will they be in 'next' soon? Or is the stage being used
as a communications channel for these topics?
[20:14:01]  the second one sounds like steveire ;)
[20:14:03]  generate_export_header-fixes is mine. I'll try to come
back to it soon
[20:14:24]  The last time I merged it, the dashboard blushed.
[20:14:37]  It was embarrassed for you?
[20:14:38]  '-)
[20:14:40]  ;-)
[20:14:59]  Looks like export-sets-2 is Alex's
[20:15:00]  :)
[20:15:18]  Yes, that's under discussion on the ml atm.
[20:15:22]  someone could have noticed that I messed up the argument
order to list(FIND) in that patch
[20:15:30]  http://public.kitware.com/Bug/view.php?id493#c30781
relates to the third one.
[20:15:31]  And so is the other one (also Alex's)
[20:15:58]  Dang, do I have to look up the --help-command for list
everytime?
[20:16:45]  hehe ;)
[20:17:01]  why should it be simpler for you than for me, hm? ;)
[20:17:08]  All right, so it sounds like things are fairly well in
hand for topics already in 'next' and topics coming soon on the stage
[20:17:53]  I would like if Brad could go and cherry-pick that kwsys
stuff from VTK he talked about
[20:17:58]  Assuming the dashboards look good tomorrow, Brad and I
will review them all and hopefully push most or all of them to master
[20:18:26]  I will mention the kwsys/VTK item to him
[20:20:33]  can someone try to load one of the Windows machines with a
bunch of open source projects?
[20:21:04]  I fear that most Find modules are not tested on windows at
all and will explode once someone will test them
[20:22:00]  What do you mean by "load with a bunch"?
[20:22:30]  It's really a delicate balancing act trying not to mess
up a dashboard machine that's already successfully submitting for multiple
projects.
[20:22:53]  I tend to avoid installing stuff unless it's absolutely
necessary on the stable dashboard machines.
[20:23:04]  I can see your point, though
[20:23:20]  Just not sure how to achieve the goal without becoming
responsible for "other people'
[20:23:24]  s dashb

Re: [cmake-developers] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Alexander Neundorf
On Monday 17 September 2012, Brad King wrote:
> On 09/15/2012 04:45 PM, Alexander Neundorf wrote:
> > There is now a branch export-sets-2 on cmake stage.
> > It cherry-picks a lot of the patches from
> > http://gitorious.org/~urkud1/cmake/urkud-cmake/commits/w/export-set,
> > mostly those from May, and then proceeds a bit differently.
> > 
> > In the end, cmake now checks whether a target which is missing in the
> > current export set has been exported and installed exactly once, gets
> > the correct name from that one installation (i.e. the used namespace),
> > and uses that.
> 
> That simple approach will allow us to move forward with this.  If anyone
> wants multiple exports of the same targets then they can add the explicit
> export set DEPENDS options later.
> 
> The topic looks good except for the details below.

How should the APPEND mode of EXPORT() be handled ?
Could you please have a look at 
cmExportFileGenerator::SetImportLinkProperty(..)
whether this looks ok ?

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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Brad King
On Mon, Sep 17, 2012 at 4:35 PM, Alexander Neundorf  wrote:
> How should the APPEND mode of EXPORT() be handled ?
> Could you please have a look at
> cmExportFileGenerator::SetImportLinkProperty(..)
> whether this looks ok ?

The APPEND mode used to mean the project is on its own to handle
dependencies.  I guess it can get the target from another export if it
is already there but otherwise not produce any error.

-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] Proposal: An IRC dev meeting to chat about CMake stuff

2012-09-17 Thread Alexander Neundorf
Hi,

sorry, I totally forgot about the IRC meeting.

On Monday 17 September 2012, Rolf Eike Beer wrote:
> 20:13:17]  any claimers? for "export-sets-2" 

Working on it right now.

> "generate_export_header-fixes" and "AutomocUseTargetProperties"

Oh, I haven't merged that to next yet ?
Will do so.

> [20:37:59]  We have about 30-something on the roadmap
> [20:38:05]  and I doubt we'll get to them all
> [20:38:18]  we have fixed 24 according to the change log page
> since  Aug. 9th

Yes, I was hoping to be able to fix the remaining open Eclipse-related bugs, 
but except one they are all due to issues inside Eclipse :-/

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] Exporting dependent library targets in multiple export sets

2012-09-17 Thread Alexander Neundorf
On Monday 17 September 2012, Alexander Neundorf wrote:
> On Monday 17 September 2012, Brad King wrote:
> > On 09/15/2012 04:45 PM, Alexander Neundorf wrote:
> > > There is now a branch export-sets-2 on cmake stage.
> > > It cherry-picks a lot of the patches from
> > > http://gitorious.org/~urkud1/cmake/urkud-cmake/commits/w/export-set,
> > > mostly those from May, and then proceeds a bit differently.
> > > 
> > > In the end, cmake now checks whether a target which is missing in the
> > > current export set has been exported and installed exactly once, gets
> > > the correct name from that one installation (i.e. the used namespace),
> > > and uses that.
> > 
> > That simple approach will allow us to move forward with this.  If anyone
> > wants multiple exports of the same targets then they can add the explicit
> > export set DEPENDS options later.
> 
> Cool.
> The tests are not yet passing, I'll work on this.

The tests are passing now.

I had to change the order how the target files are included in the test, so 
that the required targets already exist when the other targets are set up.

I pushed that to stage too.

I think basically we're back to generating useful error messages again...

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] Specifying VS target platform

2012-09-17 Thread Patrick Gansterer

On Mon, 17 Sep 2012 09:57:28 -0400, Brad King wrote:

On 09/14/2012 05:59 PM, Patrick Gansterer wrote:

Maybe you can merge the first patch already.


Yes, done.

The idea of a "generator platform" is not generic among all 
generators.

Rather than the general CMAKE_GENERATOR_PLATFORM infrastructure I'd
generator-specific handling.  The value of -GP should be passed to 
the
global generator created from -G.  If the generator does not 
support

platform specification in this way then -GP should be an error (all
generators except VS >= 8).  If the generator does support -GP then 
it
should do its own thing to save the value.  For VS save it in a 
cache

entry like "CMAKE_VS_PLATFORM" (we have "CMAKE_VS_PLATFORM_TOOLSET"
already for the VS 10 toolchain in some cases).


I'm not a big fan of your ideas: What about the parts where we
pass the generator platform to other parts? Do we want to add
branches for every generator type to get get correct value for
the -GP parameter (e.g. if (CMAKE_GENERATOR == "Visual Studio
...") "-GP ${CMAKE_VS_PLATFORM}")? IMHO that's not a good
idea. Also handling for making sure that generator platform
isn't changed by the user (like we do for -G already) in a
second run of CMake must be duplicated later if we add -GP to
more than one generator. (and so on...)


Good points, but we still need to reject -GP when using generators
for which it does not make sense.  I think it may be moot anyway;
see below.

I realized that existing projects may test ${CMAKE_GENERATOR} to 
look
for things like "Win64".  For compatibility we need to make sure 
that


-G "Visual Studio 10" -GP x64

results in CMAKE_GENERATOR being set to

-G "Visual Studio 10 Win64"

while processing CMake code even if it is not used that way
internally.  Of course for future VS versions the generator names
will not need to work this way, only the existing ones.


Since we need to support -G "Visual Studio 10 Win64" anyway, I don't 
see
much problem if such cases will work with -G "Visual Studio 10 
Win64",

but not with -G "Visual Studio 10" -GP x64.


We are talking about changing the way the user selects the generator
in the GUI to be equivalent to -G/-GP.  We cannot process existing
projects differently depending on how the generator was selected.

I also know there are projects that pass ${CMAKE_GENERATOR} to
internal invocations of CMake in order to say "build it like I'm
built".  These paths would not work if any information moved over
to CMAKE_GENERATOR_PLATFORM or an equivalent variable.

I think the value of -GP has to be stored in CMAKE_GENERATOR at
the end of the generator name as it is now.  The new option and GUI
updates are really just about simplifying the selection of the
generator and avoiding per-platform global generators in the internal
implementation.  Users can either use -G and specify the full
generator name with platform or use -G/-GP separately but either way
the value of CMAKE_GENERATOR will be the same.

This can probably be improved in the future with a new cmake policy
but I don't want to open that can of worms just for WinCE.  I think
you can implement -G/-GP such that the values are both stored in the
CMAKE_GENERATOR value.  Internally we won't need a separate global
generator for every platform anymore, but that does not change the
public interface.


If we store everything in one variable (via string concatenation) I 
don't see much value in an extra -GP switch. We need to split the 
${CMAKE_GENERATOR} variable into generator+platform then all the time 
anyway.
Maybe we can only change to current exact match of the generator name 
to a "startsWith" and let the global generator class decide if the 
generator name is valid?


-- Patrick

--

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