diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml deleted file mode 100644 index 21a8e5c..0000000 --- a/.github/workflows/build-test.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: 'Build test' - -on: - push: - pull_request: - types: - - reopened - - ready_for_review - branches: - - main - - develop - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Install dependencies - run: | - sudo apt update - sudo apt install -y cmake graphviz - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt install -y g++-13 gcc-13 - - - uses: actions/checkout@v4 - - - name: Configure - env: - CC: gcc-13 - CXX: g++-13 - run: cmake -S . -B build - - - name: Build - run: cd build && cmake --build . - - - name: Unit tests - run: cd build && ctest diff --git a/.github/workflows/unit-testing.yml b/.github/workflows/unit-testing.yml new file mode 100644 index 0000000..fac590c --- /dev/null +++ b/.github/workflows/unit-testing.yml @@ -0,0 +1,74 @@ +name: 'unit-testing' + +on: + push: + pull_request: + types: + - reopened + - ready_for_review + branches: + - main + - develop + workflow_dispatch: + +jobs: + build-test-ubuntu: + runs-on: ubuntu-latest + steps: + - name: Install dependencies + run: | + sudo apt update + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + sudo apt install -y cmake graphviz g++-13 gcc-13 + + - uses: actions/checkout@v4 + + - name: Configure + env: + CC: gcc-13 + CXX: g++-13 + run: cmake -S . -B build + + - name: Build + run: cd build && cmake --build . + + - name: Unit testing + run: cd build && ctest + + build-test-macos: + runs-on: macos-latest + steps: + - name: Install dependencies + run: | + brew install cmake graphviz + softwareupdate --install -a + /usr/bin/xcodebuild -version + + - uses: actions/checkout@v4 + + - name: Configure + run: cmake -S . -B build -DEXPERIMENTAL=1 + + - name: Build + run: cd build && cmake --build . + + - name: Unit testing + run: cd build && ctest + + build-test-windows: + runs-on: windows-latest + steps: + - name: Install dependencies + run: | + choco install -y graphviz cmake + + - uses: actions/checkout@v4 + + - name: Configure + run: cmake -S . -B build + + - name: Build + run: cd build && cmake --build . + + - name: Unit testing + run: cd build && ctest diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b0c161..2c963c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,14 +40,20 @@ if (PACKAGE) set(MACROS_PACKAGE_FLAGS "-DCREATE_PACKAGE ${PACKAGE_TYPE_FLAG}") endif () -set(MACROS_FLAGS "-DSCC_VERSION=\"\\\"${PRJ_VERSION}\\\"\" \ --DSCC_MAINTAINERS=\"\\\"${PRJ_MAINTAINERS}\\\"\" ${MACROS_PACKAGE_FLAGS}") -set(COMPILATION_FLAGS "-Wall -Wextra -g ${MACROS_FLAGS}") -if (COVERAGE) - set(COMPILATION_FLAGS "${COMPILATION_FLAGS} --coverage") +if (NOT WIN32) + set(MACROS_FLAGS "-DSCC_VERSION=\"\\\"${PRJ_VERSION}\\\"\" \ + -DSCC_MAINTAINERS=\"\\\"${PRJ_MAINTAINERS}\\\"\" ${MACROS_PACKAGE_FLAGS}") + set(COMPILATION_FLAGS "-Wall -Wextra -g ${MACROS_FLAGS}") + if (COVERAGE) + set(COMPILATION_FLAGS "${COMPILATION_FLAGS} --coverage") + endif() + set(CMAKE_C_FLAGS ${COMPILATION_FLAGS}) + if (EXPERIMENTAL) + message("Adding -fexperimental-library flag to C++ compilation") + set(COMPILATION_FLAGS "${COMPILATION_FLAGS} -fexperimental-library") + endif() + set(CMAKE_CXX_FLAGS ${COMPILATION_FLAGS}) endif() -set(CMAKE_C_FLAGS ${COMPILATION_FLAGS}) -set(CMAKE_CXX_FLAGS ${COMPILATION_FLAGS}) ## Download dependencies