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

[Backport 9.5] Speed-up dramatically proj.db build time. #4284

Merged
merged 1 commit into from
Oct 27, 2024

Conversation

rouault
Copy link
Member

@rouault rouault commented Oct 22, 2024

Backport #4280
Authored by: @rouault

Current proj.db build time is typically 50 to 60 seconds (and up to 7.5
hours on arm64 cross-compilation with full emulation!). Most of it is
due to running consistency checks. Those checks actually only need to run
once each time when we update the content of the database. When skipping
them, the build time is cut to 3 seconds or so.
So in data/CMakeLists.txt, let keep track of an expected md5sum
resulting from the concatenation of the data/sql/*.sql files. When
building proj.db, we check if the got and expected md5sum match. If they
do build proj.db by inserting the consistency check triggers after
having inserted data record. If there's a mismatch, do a one time build
with the triggers inserted before the data records, check that proj.db
builds fine with that, and if so, emit a CMake error message indicating
to the user that they must update the PROJ_DB_SQL_EXPECTED_MD5 variable
in data/CMakeLists.txt with the provided value. Next runs will go
through the fast build path, until content is updated again.
@rouault rouault added this to the 9.5.1 milestone Oct 22, 2024
@rouault rouault added the funded through GSP Work funded through the GDAL Sponsorship Program label Oct 25, 2024
@rouault rouault merged commit 56ee326 into 9.5 Oct 27, 2024
45 checks passed
@rouault rouault deleted the backport-4280-to-9.5 branch October 27, 2024 09:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
funded through GSP Work funded through the GDAL Sponsorship Program
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant