From f5f1e3a20d4e07c6ea083e359dc02acef1e3eca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=BA?= Date: Thu, 25 May 2023 15:01:49 +0800 Subject: [PATCH] Create cmake.yml Update cmake.yml Upload a Build Artifact Create msbuild.yml Update msbuild.yml using build matrix test action-upterm debug debug debug debug debug debug debug debug debug debug debug debug Artifact test for macos-11 find /usr -name "libcrt0*" sudo find /usr -name "libcrt0*" -static -static -static threeal/cmake-action@latest CMAKE_BUILD_TYPE DCMAKE_BUILD_TYPE CMAKE_BUILD_TYPE --- .github/workflows/cmake.yml | 51 +++++++++++++++++++++++++++++++++++++ CMakeLists.txt | 10 +++++--- 2 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/cmake.yml diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml new file mode 100644 index 0000000..f959346 --- /dev/null +++ b/.github/workflows/cmake.yml @@ -0,0 +1,51 @@ +name: CMake + +on: + push: + branches: [ "*" ] + pull_request: + branches: [ "*" ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + CMAKE_BUILD_TYPE: Release + +jobs: + build-binaries: + strategy: + fail-fast: false + matrix: + platform: [macos-latest, ubuntu-latest, windows-latest] + + # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. + # You can convert this to a matrix build if you need cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ${{ matrix.platform }} + + steps: + - uses: actions/checkout@v3 + + - name: Configure and build + uses: threeal/cmake-action@latest + with: + args: -D CMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} + + - name: Upload Posix Build Artifact + uses: actions/upload-artifact@v3.1.2 + if: runner.os != 'Windows' + with: + # Artifact name + name: cgit_${{ runner.os }} + # A file, directory or wildcard pattern that describes what to upload + path: build/cgit + retention-days: 15 + + - name: Upload Windows Build Artifact + uses: actions/upload-artifact@v3.1.2 + if: runner.os == 'Windows' + with: + # Artifact name + name: cgit_${{ runner.os }} + # A file, directory or wildcard pattern that describes what to upload + path: build/${{ env.CMAKE_BUILD_TYPE }}/cgit.exe + retention-days: 15 diff --git a/CMakeLists.txt b/CMakeLists.txt index bc19e15..795b1b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,12 +3,14 @@ project(cgit CXX) set(CMAKE_CXX_STANDARD 11) -IF (WIN32) +if (WIN32) set(CMAKE_CXX_FLAGS_RELEASE "/MT ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "/MTd ${CMAKE_CXX_FLAGS}") -ELSE () -set(CMAKE_CXX_FLAGS "-static ${CMAKE_CXX_FLAGS}") -ENDIF () +elseif (APPLE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +else () + set(CMAKE_CXX_FLAGS "-static ${CMAKE_CXX_FLAGS}") +endif () add_executable(cgit src/main.cpp src/cgit.cpp src/string.hpp src/utils.hpp src/utils.cpp) message(STATUS ${CMAKE_INSTALL_BINDIR})