Re: [CMake] include_directories(...) versus set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ...)
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 ...)
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 ...)
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 ...)
-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 ...)
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 ...)
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 ...)
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 ...)
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 ...)
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