[CMake] Obtaining improved GNU make performance on Makefiles generated by cmake

Bill Hoffman bill.hoffman at kitware.com
Mon Mar 24 10:33:53 EDT 2008


OK, I talked with Brad, and found out the difference from 2.4.8 and CVS. 
  When make runs in a CMake project, the first thing it does is run 
cmake to check the depend information.  It looks for missing header 
files, and other checks to see if CMake should re-run or not.  In 2.4.8, 
CMake would do this globally for the whole project.  These made a delay 
as CMake checked all the depends for the whole project.  CMake now 
checks each targets header files separately.   This means two things. 
First, if you are only building one target, then it should be much 
faster as all the headers for the entire project are not checked. 
Second, the initial delay for the project is much less, but over all 
time may increase some as the check is now done for each target and 
shared headers maybe double checked.

That said, I have checked in a change to get PHONY targets into CMake, 
as it should not break other makes.  This should help some, and it 
should fix the make test problem when you had a directory called test.

-Bill


More information about the CMake mailing list