Build as a statically-linked C-API extension when compiled in-tree - #34
Open
JelteF wants to merge 1 commit into
Open
Build as a statically-linked C-API extension when compiled in-tree#34JelteF wants to merge 1 commit into
JelteF wants to merge 1 commit into
Conversation
When the extension is compiled as part of a DuckDB build (via `duckdb_extension_load(... SOURCE_DIR ...)`), DuckDB exposes its `build_*_extension_capi[_unstable]` helpers. Detect that and build through them, so the extension is compiled with `DUCKDB_BUILD_STATIC_EXTENSION` and tagged `DUCKDB_EXTENSION_KIND=CAPI`. That lets DuckDB's generated loader statically link and auto-register it, so a C-API extension can be linked into a DuckDB binary without a separate wrapper CMakeLists. The standalone extension-ci-tools build path is unchanged. Stable vs unstable follows the existing `DUCKDB_EXTENSION_API_VERSION_UNSTABLE` / `TARGET_DUCKDB_VERSION_*` variables, falling back to the unstable helpers (which target the exact DuckDB being built) when neither is set, as happens for a default in-tree build.
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.
When the extension is compiled as part of a DuckDB build (via
duckdb_extension_load(... SOURCE_DIR ...)), DuckDB exposes itsbuild_*_extension_capi[_unstable]helpers. Detect that and build through them, so the extension is compiled withDUCKDB_BUILD_STATIC_EXTENSIONand taggedDUCKDB_EXTENSION_KIND=CAPI. That lets DuckDB's generated loader statically link and auto-register it, so a C-API extension can be linked into a DuckDB binary without a separate wrapper CMakeLists.The standalone extension-ci-tools build path is unchanged. Stable vs unstable follows the existing
DUCKDB_EXTENSION_API_VERSION_UNSTABLE/TARGET_DUCKDB_VERSION_*variables, falling back to the unstable helpers (which target the exact DuckDB being built) when neither is set, as happens for a default in-tree build.