Skip to content

changed collate a bit #14

changed collate a bit

changed collate a bit #14

Workflow file for this run

name: CI
on:
push:
branches: [dev, master]
paths-ignore:
- '.git*'
- '_config.yml'
- 'LICENSE'
- '**/*.md'
- '*.png'
- '*.sh'
pull_request:
paths-ignore:
- '.git*'
- '_config.yml'
- 'LICENSE'
- '**/*.md'
- '*.png'
- '*.sh'
env:
VCPKG_COMMIT: 4334d8b4c8916018600212ab4dd4bbdc343065d1 # 2025.09.17
jobs:
# ===================
# Windows builds
# ===================
windows:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: "VS 2022, x64, C++23"
os: windows-2022
platform: x64
arch: x64
cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_23=ON"
triplet: x64-windows
- name: "VS 2022, x64, C++20"
os: windows-2022
platform: x64
arch: x64
cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_20=ON"
triplet: x64-windows
- name: "VS 2022, x86, C++20"
os: windows-2022
platform: x86
arch: Win32
cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_20=ON"
triplet: x86-windows
- name: "VS 2019, x64, C++17"
os: windows-2019
platform: x64
arch: x64
cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_17=ON"
triplet: x64-windows
name: Windows - ${{ matrix.name }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
vcpkgDirectory: ${{ runner.temp }}/vcpkg
- name: Install dependencies
run: |
vcpkg install sqlite3[core,dbstat,math,json1,fts5,rtree,soundex] catch2 --triplet ${{ matrix.triplet }}
- name: Configure CMake
run: |
cmake -S . -B build -A ${{ matrix.arch }} ${{ matrix.cxx_standard }} -DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake
- name: Build
run: cmake --build build --config Release --parallel
- name: Test
run: ctest --test-dir build --verbose --output-on-failure --build-config Release
# ===================
# Linux builds
# ===================
linux:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: "clang-12, C++17"
os: ubuntu-22.04
cc: clang-12
cxx: clang++-12
cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_17=ON"
install_compiler: true
compiler_package: clang-12
- name: "gcc-10, C++17"
os: ubuntu-22.04
cc: gcc-10
cxx: g++-10
cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_17=ON"
install_compiler: true
compiler_package: g++-10
name: Linux - ${{ matrix.name }}
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install compiler
if: matrix.install_compiler
run: |
sudo apt-get update
sudo apt-get install -y ${{ matrix.compiler_package }}
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
vcpkgDirectory: ${{ runner.temp }}/vcpkg
- name: Install dependencies
run: |
vcpkg install sqlite3[core,dbstat,math,json1,fts5,rtree,soundex] catch2 --overlay-triplets=${{ github.workspace }}/vcpkg/triplets
- name: Configure CMake
run: |
cmake -S . -B build ${{ matrix.cxx_standard }} ${{ matrix.build_examples }} --toolchain ${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake
- name: Build
run: cmake --build build
- name: Test
run: ctest --test-dir build --verbose --output-on-failure
# ===================
# macOS builds
# ===================
macos:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: "Apple Clang, C++17"
os: macos-14
cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_17=ON"
name: macOS - ${{ matrix.name }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
vcpkgDirectory: ${{ runner.temp }}/vcpkg
- name: Install dependencies
run: |
vcpkg install sqlite3[core,dbstat,math,json1,fts5,rtree,soundex] catch2 --overlay-triplets=${{ github.workspace }}/vcpkg/triplets
- name: Configure CMake
run: |
cmake -S . -B build ${{ matrix.cxx_standard }} --toolchain ${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake
- name: Build
run: cmake --build build
- name: Test
run: ctest --test-dir build --verbose --output-on-failure
# ===================
# iOS builds (compile only)
# ===================
ios:
runs-on: macos-14
name: iOS - Clang, C++17
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure CMake for iOS
run: |
cmake -S . -B build \
-DCMAKE_SYSTEM_NAME=iOS \
-DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DSQLITE_ORM_ENABLE_CXX_17=ON \
-DBUILD_TESTING=OFF \
-DBUILD_EXAMPLES=ON
- name: Build
run: cmake --build build --config Release
# ===================
# Android builds (compile only)
# ===================
android:
runs-on: ubuntu-24.04
name: Android - NDK, C++17
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download and build SQLite3 for Android
run: |
curl -sL https://www.sqlite.org/2024/sqlite-amalgamation-3450000.zip -o sqlite.zip
unzip -q sqlite.zip
mkdir -p sqlite3-android/lib sqlite3-android/include
cp sqlite-amalgamation-3450000/sqlite3.h sqlite-amalgamation-3450000/sqlite3ext.h sqlite3-android/include/
$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang \
-c sqlite-amalgamation-3450000/sqlite3.c -o sqlite3.o -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_JSON1
$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar rcs sqlite3-android/lib/libsqlite3.a sqlite3.o
- name: Configure CMake for Android
run: |
cmake -S . -B build \
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a \
-DANDROID_PLATFORM=android-24 \
-DSQLITE_ORM_ENABLE_CXX_17=ON \
-DBUILD_TESTING=OFF \
-DBUILD_EXAMPLES=ON \
-DSQLite3_INCLUDE_DIR=${{ github.workspace }}/sqlite3-android/include \
-DSQLite3_LIBRARY=${{ github.workspace }}/sqlite3-android/lib/libsqlite3.a
- name: Build
run: cmake --build build --config Release