-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement CMake performance tips to reduce configure times #18
Comments
Jordan, With the new design of TriBITS as documented here, there is no reason to add these include guards. You just remove all of you duplicate includes of:
Specifically, the commits that removed the need to be constantly including these TriBITS modules are 081f8f9b24a838527523e4d64a322a48f0f69e34 and 00e417945fd444a5ed70d211860d0c23c41d106e. For standard usage of TriBITS, your CMakeLists.txt files should not need to include anything. This is both a performance saving and avoid mistakes. I don't have a problem with merging in the include guards in 3bdee81cf7140221ccfc3a4f2f5b41f36d1624db but after removing all of the necessary includes from the CMakeLists.txt files, I don't think it will improve configure runtimes at all. Also, include guards can change behavior if you are not careful. |
FWIW, include guards could be useful in the export files. Right now, only the target configurations are guarded, but we should do so for the entire file. I'll add this to pull request #11. |
I am going to close this. With newer versions of CMake (such as the patched CMake 3.3.2 installed with install-cmake.py), the configure speed is very fast. If this is not the case, please let me know but CASL VERA now reconfiugres and generates the coupled code package Tiamat in less than 30 seconds (which used to take about 3 minutes). |
A long time ago, TriBITS added all of the necessary includes in TriBITS.cmake to avoid needing to have the project, repostory, and packages *.cmake and CMakeLists.txt files from needing to include many of the TriBITS *.cmake module files (see TriBITSPub/TriBITS#18). This commit was created by running the script: TriBITS/refactoring/remove_std_tribits_includes_r.sh Also, see trilinos/Trilinos#489.
A long time ago, TriBITS added all of the necessary includes in TriBITS.cmake to avoid needing to have the project, repostory, and packages *.cmake and CMakeLists.txt files from needing to include many of the TriBITS *.cmake module files (see TriBITSPub/TriBITS#18). This commit was created by running the script: TriBITS/refactoring/remove_std_tribits_includes_r.sh Also, see trilinos/Trilinos#489.
This issue will address implementation of core cmake performance tips referenced at: http://www.cmake.org/Wiki/CMake_Performance_Tips
I have already implemented the include guards in lefebvre/TriBITS fork and seen a 10 second reduction in a 5 minute configuration of SCALE/Exnihilo/Trilinos(243 SE packages).
The text was updated successfully, but these errors were encountered: