Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

CMake and Meson build definitions are Out Of Sync

Đang mở
#894 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@Adarsh-Me đang làm issue này rồi.

Từ ngày 2/9/2026.

  • #896 của @Sakshamm-Goyal — đã đóng, không merge

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
38/100
Loại issue
Tái cấu trúc
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
cmake, cpp
Lĩnh vực
build-system, tooling

Hướng nghiên cứu

So sánh các định nghĩa build của CMake và Meson trong commit main e0399c6, bắt đầu với việc cài đặt các public header, các source của table_test và các dependency pin được liệt kê. Kiểm tra snapshot_summary_builder_test.cc và issue #256 để biết phạm vi đã nêu. Công việc được xem là hoàn tất khi các khác biệt ngoài ý muốn được căn chỉnh, còn các khác biệt có chủ đích về dependency và feature được ghi lại và kiểm thử.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement question

Description

The CMake and Meson build definitions are maintained separately and have drifted. On current main (e0399c6945326dd5281da07de8ed14a61c9f2cac), equivalent configurations do not install the same public headers or run the same core tests.

Examples:

  • CMake installs public headers by globbing each directory, while Meson lists them manually. As a result:

    • CMake installs iceberg/puffin_dv_io.h and iceberg/catalog/rest/auth/token_refresh_scheduler.h, but Meson does not.
    • Meson installs iceberg/catalog/catalog_util.h, iceberg/catalog/session_catalog.h, and iceberg/catalog/session_context.h, but CMake does not install headers from src/iceberg/catalog/.
  • CMake includes snapshot_summary_builder_test.cc in table_test, but Meson does not include that test source, so the Meson CI path does not exercise it.

  • Vendored/fallback dependency versions differ between the two build systems:

    Dependency CMake Meson
    CRoaring 4.4.3 4.3.11
    nlohmann/json 3.11.3 3.12.0
    GoogleTest 1.15.2 1.17.0

    Other shared dependencies, such as nanoarrow 0.9.0, utf8proc 2.10.0, spdlog 1.15.3, cpr 1.14.1, and Google Benchmark 1.8.4, are currently aligned but can drift because their pins are also declared independently.

  • Dependency resolution policy also differs: CMake requires system Zlib and Curl, while Meson can fall back to pinned wraps (Zlib 1.3.1 and Curl 8.10.1). Any intentional difference here should be documented and tested explicitly.

The Meson bundle gap is already tracked by #256 and is outside the scope of this issue. Other intentional feature differences should likewise remain explicit rather than appearing as accidental drift.


This to track current status and initiated a discussion on how we can maintain and sync the build tools in the long term.

Ngôn ngữ chính
C++
Star
226
Fork
132
Merge trung bình
1 ngày 11 giờ
Pull request đã merge (30 ngày)
27

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/iceberg-cpp

Tất cả issue của apache/iceberg-cpp

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.