Link the module against the installed MEOS archive - #14
Merged
estebanzimanyi merged 1 commit intoAug 31, 2026
Merged
Conversation
The emcc line takes MEOS from the install prefix, so the prefix is the only thing it names and the build-tree layout stays MEOS's own business. MEOS installs one self-contained archive: it folds pgtypes, liblwgeom and ryu into libmeos.a — and libpc with POINTCLOUD on — so a consumer embedding MEOS in a single relocatable module links one library. The build-tree paths the link line used instead are intermediates that the install does not publish, and `meos/CMakeLists.txt` places the archive at the binary root rather than under `build/meos`, so `build/meos/libmeos.a` names a file that is not written and emcc stops at the missing input. The sidecar libpgtypes.a and libpostgis.a go with it, their objects already being inside the archive. The source-tree include paths go too: the installed umbrella headers resolve among themselves and reach outside the prefix only for json-c and h3, which carry their own. Keeping the MobilityDB source on the include path let its tracked pg_config_manual.h and postgres_ext.h answer ahead of the installed copies, which is the shape that compiles against one set of definitions and links against another. The embedded spatial_ref_sys.csv comes from the prefix for the same reason.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The emcc line takes MEOS from the install prefix, so the prefix is the only
thing it names and the build-tree layout stays MEOS's own business.
MEOS installs one self-contained archive: it folds pgtypes, liblwgeom and ryu
into libmeos.a — and libpc with POINTCLOUD on — so a consumer embedding MEOS in
a single relocatable module links one library. The build-tree paths the link
line used instead are intermediates that the install does not publish, and
meos/CMakeLists.txtplaces the archive at the binary root rather than underbuild/meos, sobuild/meos/libmeos.anames a file that is not written andemcc stops at the missing input. The sidecar libpgtypes.a and libpostgis.a go
with it, their objects already being inside the archive.
The source-tree include paths go too: the installed umbrella headers resolve
among themselves and reach outside the prefix only for json-c and h3, which
carry their own. Keeping the MobilityDB source on the include path let its
tracked pg_config_manual.h and postgres_ext.h answer ahead of the installed
copies, which is the shape that compiles against one set of definitions and
links against another.
The embedded spatial_ref_sys.csv comes from the prefix for the same reason.