Difference between revisions of "CMake Performance Tips"

From KitwarePublic
Jump to: navigation, search
(Use LIST(APPEND ...))
(Replace content with link to new CMake community wiki)
 
(14 intermediate revisions by 4 users not shown)
Line 1: Line 1:
While CMake itself is already very fast, there are some things you can do to ensure works
+
{{CMake/Template/Moved}}
as fast as possible.
 
  
==Build it with optimization enabled==
+
This page has moved [https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/Performance-Tips here].
 
 
Ok, this is obvious, but anyway. Let's say you build CMake yourself without any special settings, e.g.
 
<pre>
 
$ cmake ..
 
$ make
 
</pre>
 
 
 
If you do it this way, you will get a CMake with optimizations turned off.
 
There are different ways to get an optimized build. You can select one of the predefined build types:
 
<pre>
 
$ cmake -DCMAKE_BUILD_TYPE=RELEASE ..
 
$ make
 
</pre>
 
Also possible are RELWITHDEBINFO and MINSIZEREL.
 
 
 
or
 
 
 
<pre>
 
$ export CXXFLAGS=-O2
 
$ cmake ..
 
$ make
 
</pre>
 
 
 
or
 
 
 
<pre>
 
$ export CXXFLAGS=-O2
 
$ cmake ..
 
$ make edit_cache (or ccmake ..)
 
... edit CMAKE_CXX_FLAGS in the advanced view
 
$ make
 
</pre>
 
 
 
CMake built with optimizations enabled can give you an almost 50% performance boost (time for running
 
CMake on VTK went down from 25 s to 14 s).
 
 
 
==Use LIST(APPEND ...)==
 
 
 
There are two ways to append values to a variable in CMake:
 
 
 
<pre>
 
  SET(myVar ${myVar} newItem)
 
</pre>
 
 
 
and since CMake 2.4 there is the new LIST() command:
 
 
 
<pre>
 
  LIST(APPEND myVar newItem)
 
</pre
 
 
 
LIST(APPEND ...) is for large lists and many appends much faster than the method using SET().
 

Latest revision as of 10:41, 30 April 2018


The CMake community Wiki has moved to the Kitware GitLab Instance.

This page has moved here.