Skip to content
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

Reorganize CMake to increase build and configuration time #69

Closed
dpasukhi opened this issue Sep 19, 2024 · 2 comments · Fixed by #90, #89 or #102
Closed

Reorganize CMake to increase build and configuration time #69

dpasukhi opened this issue Sep 19, 2024 · 2 comments · Fixed by #90, #89 or #102
Assignees
Labels

Comments

@dpasukhi
Copy link
Member

CMake Configuration procedure generated a configurated include (.hxx) files into build/inc folder.
It increase the configuration time.
It increase the build time. Based on VS Build insight the parsing build/inc takes about 20% of the whole build time.
It is impact on not determinate dependencies leading to using headers from not related libraries.

The solution is:
Use the include directory in the occt/src folder natively, assignee header folders by target.
Make checking the folder parsing and checking the includes existed and putting into FILES list optional and disabled by default. It is rely on GLOB parsing of the folder, that is not optimal for daily configuration.

@dpasukhi dpasukhi added 2. Enhancement New feature or request 1. Configuration labels Sep 19, 2024
@dpasukhi dpasukhi self-assigned this Sep 19, 2024
@dpasukhi dpasukhi changed the title Configuration - Reorganize CMake include directory handling Reorganize CMake include directory handling Sep 19, 2024
@dpasukhi
Copy link
Member Author

Resolved

@dpasukhi dpasukhi changed the title Reorganize CMake include directory handling Reorganize CMake to increase build and configuration time Oct 13, 2024
@dpasukhi
Copy link
Member Author

Removed cotire PCH
Integrated native PCH by CMake with the same BUILD_USE_PCH flag
Added new option to avoid extra files in 'build/include' folder and replace it by symlink
Symlink creates link to the origin file, it has some benefits from debug and build side.
The CMake parameter for symlink is 'BUILD_INCLUDE_SYMLINK'
_
The Build time is improved from 7m to 2.5 min with 22 cores on windows.
And on Linux with 8 cores and clang++ from 16 to 7 min.

The configure time from 15 to 5s

@dpasukhi dpasukhi pinned this issue Oct 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment