Skip to content

Require CMake 3.19 and set the version to 0.6.0 - #18

Merged
nalinigans merged 3 commits into
mainfrom
tf_cmake_minimum
Oct 15, 2026
Merged

nalinigans merged 3 commits into
mainfrom
tf_cmake_minimum

Conversation

@tfenne

@tfenne tfenne commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

TileDB declares cmake_minimum_required(VERSION 3.6), but since #10 it builds zstd with FetchContent_MakeAvailable, which needs CMake 3.14, and CMake 4 warns on every configure that compatibility with versions older than 3.10 will be removed. This raises the minimum to 3.19, the version GenomicsDB's prerequisite scripts install for its release builds. GenomicsDB adds TileDB as a subdirectory, so there's little point in TileDB asking for more than GenomicsDB builds with; GenomicsDB itself asks for 3.17, and I'll raise that to 3.19 when I bump its TileDB submodule.

Raising the minimum also turns on the new behaviour of the policies added between 3.6 and 3.19. To see what that changes, I configured TileDB with CMake 4.4 before and after this change, once with prebuilt SDKs and once building them in the tree, and compared the generated build systems. Every compile and link command is identical. The only differences are bookkeeping: CMake no longer writes the legacy <target>_LIB_DEPENDS cache entries (CMP0073), installs subdirectories one include() at a time (CMP0082), quotes test names in the generated CTest files (CMP0110), and lists some makefile dependencies in a different order. I also built and ran the tests with CMake 3.19.8 on macOS arm64 and on Linux aarch64 with GCC 15, building the SDKs from source there, and with CMake 4.4 on macOS.

Two small commits come along with it. One replaces the tabs and trailing whitespace in the CMake files with spaces and indents the if(APPLE) block in core/CMakeLists.txt; it is whitespace only (git diff -w is empty, and the generated build system is unchanged). The other sets TILEDB_VERSION to 0.6.0; it has said 0.5.2 since 2017, 290 commits ago. If you'd like to tag 0.6.0 once this is in, GenomicsDB's submodule bump could point at the tag.

FetchContent_MakeAvailable, used to build zstd in since #10, needs CMake 3.14, and CMake 4 warns that compatibility with versions older than 3.10 will be removed. 3.19 is the version GenomicsDB's prerequisite scripts install for its release builds, which include TileDB as a subdirectory.

@nalinigans nalinigans left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM


/** Version. */
#define TILEDB_VERSION "0.5.2"
#define TILEDB_VERSION "0.6.0"

@nalinigans nalinigans Oct 15, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was not released externally and so not updated... But great to see it getting updated. That said:

If you'd like to tag 0.6.0 once this is in, GenomicsDB's submodule bump could point at the tag

That works!

@nalinigans
nalinigans merged commit c2a6f40 into main Oct 15, 2026
10 checks passed
@nalinigans
nalinigans deleted the tf_cmake_minimum branch October 15, 2026 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants