Re: [CMake] include_directories(...) versus set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)

2014-02-19 Thread David Cole
That's just the quick brain dump version. If necessary, I can 

actually

look at old commits, or the current code to try to refresh my memory.



I think that's needed. Can you do that research into the commits and
discussion?



Please see the results of my research (aka, old commits detective 
work) in the newly added note to the mantis bug report here:


   http://public.kitware.com/Bug/view.php?id=14758#c35153

Sorry I don't have more time to spend on this for a while, but the 
links are in the bug note if anybody wants to investigate ways to 
reverse the effects of postponing de-duplication.



Cheers,
David C.

--

Powered by www.kitware.com

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

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

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

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

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


Re: [CMake] include_directories(...) versus set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)

2014-02-12 Thread David Cole
That's just the quick brain dump version. If necessary, I can 

actually

look at old commits, or the current code to try to refresh my memory.



I think that's needed. Can you do that research into the commits and
discussion?



I know it's been a week now I'm still getting to this. Will re-open 
the discussion as soon as I've gotten through the review/research.


--

Powered by www.kitware.com

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

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

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

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

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


Re: [CMake] include_directories(...) versus set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)

2014-02-12 Thread David Cole
 Should I file this as a bug in the issue tracker then?


 Sure. Especially if you have an easy way to reproduce. (Either
 reference an external, publicly available project we can just
 build and get it to happen, or attach a CMakeLists that
 demonstrates the issue if possible.)

 That way, we can reproduce it ourselves, and verify that any fix
 we propose actually improves the situation for the reproduce case.


 For what it's worth. This problem is related to another issue I
 reported: http://public.kitware.com/Bug/view.php?id=14094. Here I also
 got a quite long, but still manageable list of include directories.


Thanks for the link.

-- 

Powered by www.kitware.com

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

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

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

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

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


Re: [CMake] include_directories(...) versus set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)

2014-02-11 Thread Marcel Loose
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

op 10-02-14 13:38, David Cole schreef:
 Should I file this as a bug in the issue tracker then?
 
 
 Sure. Especially if you have an easy way to reproduce. (Either
 reference an external, publicly available project we can just
 build and get it to happen, or attach a CMakeLists that
 demonstrates the issue if possible.)
 
 That way, we can reproduce it ourselves, and verify that any fix
 we propose actually improves the situation for the reproduce case.
 
 
 Thanks, David C.
 
Hi David,

For what it's worth. This problem is related to another issue I
reported: http://public.kitware.com/Bug/view.php?id=14094. Here I also
got a quite long, but still manageable list of include directories.

Regards,
Marcel Loose.

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.14 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJS+q1tAAoJEEpMyb1AIWdYF4IH/39GG3zfrq9wn3SWpDG2Vu1v
Ce1EGrEIP4r7K10S0rhhEqXaYw7u/WWkp9NztaL/hilhJFP4MsdmJHkG+5TP3F+z
FbiK8mGfZ3llrZT2MHDuQXWI50hBaZlyof1Xiabrww37zEtaOhMvBKRnVfn7oI2b
KBF1k/jOOVM2/Z/RBJzdf1oHKHDgbk/ue7MVpSTTuwNndpryDkAYFy+9ettG1hLv
pLWVP3zzV/xwxOUf44f6Fu6KQ9UhD8Qf1HmDSbaR4fBr+ARxhdU5cckrnjY0Wiyk
dALtDFi24N3BPp7ZMHwlB1h0ujMrfJxdb7YDHADK8KM9HIGqpLlMkQbaegjuAY8=
=8JWY
-END PGP SIGNATURE-
-- 

Powered by www.kitware.com

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

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

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

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

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


Re: [CMake] include_directories(...) versus set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)

2014-02-10 Thread David Cole

Should I file this as a bug in the issue tracker then?



Sure. Especially if you have an easy way to reproduce. (Either 
reference an external, publicly available project we can just build 
and get it to happen, or attach a CMakeLists that demonstrates the 
issue if possible.)


That way, we can reproduce it ourselves, and verify that any fix we 
propose actually improves the situation for the reproduce case.



Thanks,
David C.

--

Powered by www.kitware.com

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

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

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

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

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


Re: [CMake] include_directories(...) versus set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)

2014-02-04 Thread Stephen Kelly
David Cole wrote:

 That's just the quick brain dump version. If necessary, I can actually
 look at old commits, or the current code to try to refresh my memory.
 

I think that's needed. Can you do that research into the commits and 
discussion?

Thanks,

Steve.


-- 

Powered by www.kitware.com

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

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

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

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

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


Re: [CMake] include_directories(...) versus set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)

2014-02-03 Thread Brad King
On 01/30/2014 03:08 AM, Marcel Loose wrote:
 cmake was consuming a whopping 14GB(!) of RAM memory.
[snip]
 include_directories() is used inside a macro that is called
 quite a lot in order to resolve cross-dependencies. This never was a
 problem, because CMake automatically performed de-duplication of include
 paths; until version 2.8.8.

IIUC it still does de-duplication but delays doing so until the
generation step.  Therefore in this use case the configuration
step buffers the duplicates.

Steve, David, having worked on these changes, what do you think
about teaching include_directories and target_include_directories
to skip appending a path that already exists in each dir/target
property?

-Brad

-- 

Powered by www.kitware.com

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

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

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

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

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


Re: [CMake] include_directories(...) versus set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)

2014-02-03 Thread David Cole
I think it's mostly just a speed/space trade-off. If you don't want to 
consume the RAM temporarily (and in this case, I think it's a given, 
that we really don't want to consume 14G of RAM.) then we'll have 
to spend the time doing the de-duplication on the way in.


Although, the data structures may not be in the right places already, 
they could easily be added.


I can't remember, though: is there a reason why we wouldn't want or be 
able to expand an input to an absolute path at the time it's given 
(current directory issue, or something else?) -- because a prerequisite 
to de-duplicating is referring to the directories in their full path 
canonical fashion.


That's just the quick brain dump version. If necessary, I can actually 
look at old commits, or the current code to try to refresh my memory.



D



-Original Message-
From: Brad King brad.k...@kitware.com
To: Marcel Loose lo...@astron.nl
Cc: cmake cmake@cmake.org; David Cole dlrd...@aol.com; Stephen 
Kelly steve...@gmail.com

Sent: Mon, Feb 3, 2014 11:51 am
Subject: Re: [CMake] include_directories(...) versus 
set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)



On 01/30/2014 03:08 AM, Marcel Loose wrote:

cmake was consuming a whopping 14GB(!) of RAM memory.

[snip]

include_directories() is used inside a macro that is called
quite a lot in order to resolve cross-dependencies. This never was a
problem, because CMake automatically performed de-duplication of 

include

paths; until version 2.8.8.


IIUC it still does de-duplication but delays doing so until the
generation step.  Therefore in this use case the configuration
step buffers the duplicates.

Steve, David, having worked on these changes, what do you think
about teaching include_directories and target_include_directories
to skip appending a path that already exists in each dir/target
property?

-Brad


 
--


Powered by www.kitware.com

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

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

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

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

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


[CMake] include_directories(...) versus set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)

2014-01-30 Thread Marcel Loose
Hi all,

Recently I ran into a problem with a medium-large sized project with
newer CMakes. At first I didn't know what was going on: a cmake run
started to crawl, until it almost came to a standstill and then the OS
killed my login session. It turned out that, just before being logged
out forcibly by the OS, cmake was consuming a whopping 14GB(!) of RAM
memory.

Time for some digging. Luckily I have a number of different version of
CMake lying around on my system, so it was quite easy to figure out that
CMake  2.8.8 behaved normally, wheras CMake = 2.8.8 would just blow
up. When I started to print some variables and properties I understood
why: my list of include paths had grown ridiculously large. I won't go
into detail about the setup of this specific project, but suffice it to
say that include_directories() is used inside a macro that is called
quite a lot in order to resolve cross-dependencies. This never was a
problem, because CMake automatically performed de-duplication of include
paths; until version 2.8.8.

Now my question. What is the proper (or best) way to handle this. I've
been thinking along the following line: replace the call to
include_directories() in the offending macro with:

-include_directories(${_dirs})
+list(APPEND _inc_dirs ${_dep_inc_dirs})
+list(REMOVE_DUPLICATES _inc_dirs)
+set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ${_inc_dirs})


Any suggestions or comments?

Best regards,
Marcel Loose.

attachment: loose.vcf-- 

Powered by www.kitware.com

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

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

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

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

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