diff --git a/.github/workflows/meson.yaml b/.github/workflows/meson.yaml new file mode 100644 index 0000000..98b79ac --- /dev/null +++ b/.github/workflows/meson.yaml @@ -0,0 +1,73 @@ +name: meson + +on: [push, pull_request] + +jobs: + build: + name: (Meson) ${{ matrix.config.name }} + runs-on: ${{ matrix.config.os }} + strategy: + fail-fast: false + matrix: + config: + - { + name: "Windows Latest MSVC", + os: windows-latest, + generator: "Visual Studio 17 2022", + build_type: "Debug", + cc: "cl", cxx: "cl", + extra_path: "", + } + - { + name: "Windows Latest MinGW", + os: windows-latest, + generator: "MinGW Makefiles", + build_type: "Debug", + cc: "gcc", cxx: "g++", + extra_path: "C:\\ProgramData\\chocolatey\\lib\\mingw\\tools\\install\\mingw64\\bin", + } + - { + name: "Ubuntu Latest GCC", + os: ubuntu-latest, + generator: "Unix Makefiles", + build_type: "Debug", + cc: "gcc", cxx: "g++", + extra_path: "" + } + - { + name: "macOS Latest Clang", + os: macos-latest, + generator: "Unix Makefiles", + build_type: "Debug", + cc: "clang", cxx: "clang++", + extra_path: "" + } + + steps: + - uses: actions/checkout@v2 + - name: submodule + run: git submodule update --init --recursive + - name: extra_path + shell: bash + run: echo "${{matrix.config.extra_path}}" >> $GITHUB_PATH + - name: configure + shell: cmake -P {0} + run: | + set(ENV{CC} ${{matrix.config.cc}}) + set(ENV{CXX} ${{matrix.config.cxx}}) + - name: install prerequisites + run: | + # asuming that python and pip are already installed + pip3 install meson + - name: setup meson project + run: | + # setup the build directory with tests and examples enabled + meson setup builddir -DSQLITECPP_BUILD_TESTS=true -DSQLITECPP_BUILD_EXAMPLES=true + - name: build meson project + run: | + # build the project + meson compile -C builddir + - name: test + run: | + # run the tests + meson test -C builddir