Skip to content

Commit f78c879

Browse files
committed
Merge branch 'main' of github.com:apache/iceberg-cpp into fd-add-rat-check
2 parents e6d1ea7 + f00f063 commit f78c879

File tree

4 files changed

+169
-1
lines changed

4 files changed

+169
-1
lines changed

.github/workflows/test.yml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
name: Test
19+
20+
on:
21+
push:
22+
branches:
23+
- '**'
24+
- '!dependabot/**'
25+
tags:
26+
- '**'
27+
pull_request:
28+
29+
concurrency:
30+
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
31+
cancel-in-progress: true
32+
33+
permissions:
34+
contents: read
35+
36+
env:
37+
ICEBERG_HOME: /tmp/iceberg
38+
39+
jobs:
40+
ubuntu:
41+
name: AMD64 Ubuntu 24.04
42+
runs-on: ubuntu-24.04
43+
timeout-minutes: 30
44+
strategy:
45+
fail-fast: false
46+
steps:
47+
- name: Checkout iceberg-cpp
48+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
49+
with:
50+
fetch-depth: 0
51+
- name: Build Iceberg
52+
shell: bash
53+
run: ci/scripts/build_iceberg.sh $(pwd)
54+
- name: Build Example
55+
shell: bash
56+
run: ci/scripts/build_example.sh $(pwd)/example
57+
macos:
58+
name: AArch64 macOS 14
59+
runs-on: macos-14
60+
timeout-minutes: 30
61+
strategy:
62+
fail-fast: false
63+
steps:
64+
- name: Checkout iceberg-cpp
65+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
66+
with:
67+
fetch-depth: 0
68+
- name: Build Iceberg
69+
shell: bash
70+
run: ci/scripts/build_iceberg.sh $(pwd)
71+
- name: Build Example
72+
shell: bash
73+
run: ci/scripts/build_example.sh $(pwd)/example
74+
windows:
75+
name: AMD64 Windows 2019
76+
runs-on: windows-2019
77+
timeout-minutes: 30
78+
steps:
79+
- name: Checkout iceberg-cpp
80+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
81+
with:
82+
fetch-depth: 0
83+
- name: Build Iceberg
84+
shell: cmd
85+
run: |
86+
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
87+
bash -c "ci/scripts/build_iceberg.sh $(pwd)
88+
- name: Build Example
89+
shell: cmd
90+
run: |
91+
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
92+
bash -c "ci/scripts/build_example.sh $(pwd)/example

ci/scripts/build_example.sh

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Licensed to the Apache Software Foundation (ASF) under one
4+
# or more contributor license agreements. See the NOTICE file
5+
# distributed with this work for additional information
6+
# regarding copyright ownership. The ASF licenses this file
7+
# to you under the Apache License, Version 2.0 (the
8+
# "License"); you may not use this file except in compliance
9+
# with the License. You may obtain a copy of the License at
10+
#
11+
# http://www.apache.org/licenses/LICENSE-2.0
12+
#
13+
# Unless required by applicable law or agreed to in writing,
14+
# software distributed under the License is distributed on an
15+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
# KIND, either express or implied. See the License for the
17+
# specific language governing permissions and limitations
18+
# under the License.
19+
20+
set -eux
21+
22+
source_dir=${1}
23+
build_dir=${1}/build
24+
25+
mkdir ${build_dir}
26+
pushd ${build_dir}
27+
28+
cmake \
29+
-DCMAKE_PREFIX_PATH=${CMAKE_INSTALL_PREFIX:-${ICEBERG_HOME}} \
30+
${source_dir}
31+
cmake --build .
32+
33+
popd
34+
35+
# clean up between builds
36+
rm -rf ${build_dir}

ci/scripts/build_iceberg.sh

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Licensed to the Apache Software Foundation (ASF) under one
4+
# or more contributor license agreements. See the NOTICE file
5+
# distributed with this work for additional information
6+
# regarding copyright ownership. The ASF licenses this file
7+
# to you under the Apache License, Version 2.0 (the
8+
# "License"); you may not use this file except in compliance
9+
# with the License. You may obtain a copy of the License at
10+
#
11+
# http://www.apache.org/licenses/LICENSE-2.0
12+
#
13+
# Unless required by applicable law or agreed to in writing,
14+
# software distributed under the License is distributed on an
15+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
# KIND, either express or implied. See the License for the
17+
# specific language governing permissions and limitations
18+
# under the License.
19+
20+
set -eux
21+
22+
source_dir=${1}
23+
build_dir=${1}/build
24+
25+
mkdir ${build_dir}
26+
pushd ${build_dir}
27+
28+
cmake \
29+
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ICEBERG_HOME}} \
30+
-DICEBERG_BUILD_STATIC=ON \
31+
-DICEBERG_BUILD_SHARED=ON \
32+
${source_dir}
33+
cmake --build . --target install
34+
35+
popd
36+
37+
# clean up between builds
38+
rm -rf ${build_dir}

example/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ cmake_minimum_required(VERSION 3.25)
2020

2121
project(example)
2222

23+
set(CMAKE_CXX_STANDARD 20)
24+
2325
find_package(iceberg CONFIG REQUIRED)
2426
find_package(puffin CONFIG REQUIRED)
2527

2628
add_executable(demo_example demo_example.cc)
2729

28-
target_link_libraries(demo_example iceberg::iceberg_core_static puffin::iceberg_puffin_static)
30+
target_link_libraries(demo_example PRIVATE iceberg::iceberg_core_static puffin::iceberg_puffin_static)

0 commit comments

Comments
 (0)