diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..2b15512 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,58 @@ +name: Release + +on: + push: + branches: + - master + - main + pull_request: + branches: + - master + - main + +env: + CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ ubuntu-latest, windows-latest, macos-latest ] + + steps: + - uses: actions/checkout@v2 + + - uses: actions/cache@v2 + with: + path: "**/cpm_modules" + key: ${{ matrix.os }}-${{ github.workflow }}-cpm-modules-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }} + + - name: configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release + + - name: build + run: cmake --build build -j4 --config Release + + - name: zip + uses: thedoctor0/zip-release@main + with: + type: zip + filename: ${{ matrix.os }}.zip + directory: build/out/ + + - name: ls + run: ls + + - name: ls + run: ls build + + - name: ls + run: ls build/out + + - uses: ncipollo/release-action@v1 + with: + allowUpdates: true + artifacts: build/out/${{ matrix.os }}.zip + tag: latest diff --git a/CMakeLists.txt b/CMakeLists.txt index c206ed6..ec06553 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,11 @@ if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) ) endif() +# ---- Set output directories ---- +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/out) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/out) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/out) + # ---- Add dependencies via CPM ---- # see https://github.com/TheLartians/CPM.cmake for more info