[CMake] Making CMake *not* use -isystem at all
Attila Krasznahorkay
attila.krasznahorkay at gmail.com
Mon Dec 7 09:39:40 EST 2015
Dear All,
I'm still debugging the performance problems of our build. But now I bumped into another surprising thing.
Our "highest level" packages can depend on a *lot* of low level packages. The one I'm testing now depends on more than 180 of them.
This generates >180 -isystem flags for the compilation lines. But I found a very surprising thing. If I replace all of these -isystem flags with -I ones by simply modifying the flags.cmake files that CMake generated for me, the build time of my code is cut to less than half of what it is when using -isystem.
So... How do I tell CMake to forget about using -isystem all together, and take all my include directories with -I?
Not using SYSTEM in target_include_directories and include_directories doesn't seem to make a difference. I still get all my out-of-source directories with -isystem. I even tried setting CMAKE_INCLUDE_SYSTEM_FLAG_CXX and CMAKE_INCLUDE_SYSTEM_FLAG_C to "-I " forcefully. But this didn't help either. Neither did explicitly unsetting these variables.
How could it be done then? How could I force CMake to always use -I for the directories that I give to either include_directories or target_include_directories?
Cheers,
Attila
More information about the CMake
mailing list