[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cmake
Subject:    Re: [CMake] CMake Project Generation Speedup
From:       "J. Caleb Wherry" <calebwherry () gmail ! com>
Date:       2019-03-20 20:53:24
Message-ID: CAJxY6XoSpOR6zgnhLz0aqodDK0YRfmTqtMFwh0GTNHxP-aOvHA () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Did anything ever come of this?

I am in a similar boat: we have >800 targets on our full build (native C++,
Managed C++, C#, Java, CUDA, etc) and the majority of the time for the
configure/generate steps takes place in the generate step (>70%).

I understand there is a lot of IO since the generate step has to write the
project files and filters for each C++ project (the majority of our
projects) for VS generators (what we use). I'm just looking to see if there
is anything to look at or potentially speedup up the generate step besides
"get a faster drive".

Thanks!
-Caleb

On Thu, Nov 17, 2016 at 11:15 AM Damian <damian.campeanu@gmail.com> wrote:

> Hi all,
>
> We are still in the process of switching our large Make-based build to
> CMake. One of the issues we're running into is the time it takes to reparse
> and regenerate the CMake project (whether ninja, VS, or make) after
> touching any CMake file. To give you an idea, we have about 1000 targets
> and that takes a good 2 min for CMake to rerun.
>
> Are there any plans to speed this up? Maybe parallelize it in some way or
> do a better job regenerating only what needs regenerating? Is there
> anything we can do on our side to reduce our regeneration times?
>
> For example, if using a VS generator, each directory in the source that
> has a CMakeLists.txt gets a .vcproj and .sln generated. Ideally, if I touch
> one of those CMakeLists.txt, only that .sln/.vcproj would get regenerated.
>
> Thanks for any help.
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake



-- 
J. Caleb Wherry
*Scientific Software Engineer*

<http://www.calebwherry.com>
http://www.calebwherry.com
+1 (615) 708-5651
calebwherry@gmail.com

[Attachment #5 (text/html)]

<div dir="ltr">Did anything ever come of this?<div><br></div><div>I am in a similar \
boat: we have &gt;800 targets on our full build (native C++, Managed C++, C#, Java, \
CUDA, etc) and the majority of the time for the configure/generate steps takes place \
in the generate step (&gt;70%).</div><div><br></div><div>I understand there is a lot \
of IO since the generate step has to write the project files and filters for each C++ \
project (the majority of our projects) for VS generators (what we use). I&#39;m just \
looking to see if there is anything to look at or potentially speedup up the generate \
step besides &quot;get a faster \
drive&quot;.</div><div><br></div><div>Thanks!</div><div>-Caleb</div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 17, 2016 at 11:15 \
AM Damian &lt;<a href="mailto:damian.campeanu@gmail.com">damian.campeanu@gmail.com</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div \
dir="ltr"><div><div><div>Hi all,<br><br></div>We are still in the process of  \
switching our large Make-based build to CMake. One of the issues we&#39;re  running \
into is the time it takes to reparse and regenerate the CMake  project (whether \
ninja, VS, or make) after touching any CMake file. To  give you an idea, we have \
about 1000 targets and that takes a good 2 min  for CMake to rerun.<br><br></div>Are \
there any plans to speed this up?  Maybe parallelize it in some way or do a better \
job regenerating only  what needs regenerating? Is there anything we can do on our \
side to  reduce our regeneration times?<br><br>For example, if using a VS 
generator, each directory in the source that has a CMakeLists.txt gets a
 .vcproj and .sln generated. Ideally, if I touch one of those 
CMakeLists.txt, only that .sln/.vcproj would get regenerated.<br><br></div>Thanks for \
                any help.</div>
-- <br>
<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" \
target="_blank">www.kitware.com</a><br> <br>
Please keep messages on-topic and check the CMake FAQ at: <a \
href="http://www.cmake.org/Wiki/CMake_FAQ" rel="noreferrer" \
target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br> <br>
Kitware offers various services to support the CMake community. For more information \
on each offering, please visit:<br> <br>
CMake Support: <a href="http://cmake.org/cmake/help/support.html" rel="noreferrer" \
target="_blank">http://cmake.org/cmake/help/support.html</a><br> CMake Consulting: <a \
href="http://cmake.org/cmake/help/consulting.html" rel="noreferrer" \
target="_blank">http://cmake.org/cmake/help/consulting.html</a><br> CMake Training \
Courses: <a href="http://cmake.org/cmake/help/training.html" rel="noreferrer" \
target="_blank">http://cmake.org/cmake/help/training.html</a><br> <br>
Visit other Kitware open-source projects at <a \
href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" \
target="_blank">http://www.kitware.com/opensource/opensource.html</a><br> <br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/cmake" rel="noreferrer" \
target="_blank">http://public.kitware.com/mailman/listinfo/cmake</a></blockquote></div><br \
clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div>J. \
Caleb Wherry</div><i>Scientific Software Engineer</i><div><br><a \
href="http://www.calebwherry.com" target="_blank"></a><div><a \
href="http://www.calebwherry.com" \
target="_blank">http://www.calebwherry.com</a><br><span><span title="Call with Google \
Voice"><span title="Call with Google Voice">+1 (615) \
708-5651</span></span></span><div><a href="mailto:calebwherry@gmail.com" \
target="_blank">calebwherry@gmail.com</a></div></div></div></div>



-- 

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:
https://cmake.org/mailman/listinfo/cmake



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic