diff --git a/.github/workflows/debian-sapi-generator-tool.yml b/.github/workflows/debian-sapi-generator-tool.yml new file mode 100644 index 0000000..6bc830d --- /dev/null +++ b/.github/workflows/debian-sapi-generator-tool.yml @@ -0,0 +1,59 @@ +name: sapi-generator-tool +on: push +jobs: + build: + runs-on: ubuntu-latest + container: debian:10.13 + steps: + - uses: actions/checkout@v3 + + - name: Cache dependencies + uses: actions/cache@v3 + with: + key: debian-10.13-clang16 + path: | + ${{github.workspace}}/build/_deps + + - name: Install build tools + run: | + apt-get update + env DEBIAN_FRONTEND=noninteractive \ + apt-get install -qy --no-install-recommends \ + build-essential \ + ca-certificates \ + cmake \ + file \ + git \ + gnupg \ + libc6-dev \ + lsb-release \ + make \ + software-properties-common \ + wget + wget https://apt.llvm.org/llvm.sh + chmod +x llvm.sh + ./llvm.sh 16 all + + - name: Install ninja-build tool + uses: seanmiddleditch/gha-setup-ninja@v3 + + - name: Create Build Environment + run: | + cmake -E make_directory $GITHUB_WORKSPACE/build + + - name: Configure CMake + run: | + cmake \ + -S $GITHUB_WORKSPACE \ + -B $GITHUB_WORKSPACE/build \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DSAPI_ENABLE_CLANG_TOOL=ON \ + -DSAPI_ENABLE_CLANG_TOOL_STATIC=ON + + - name: Build + run: | + cmake \ + --build $GITHUB_WORKSPACE/build \ + --config Release \ + --target sapi_generator_tool diff --git a/sandboxed_api/tools/clang_generator/CMakeLists.txt b/sandboxed_api/tools/clang_generator/CMakeLists.txt index 6c73282..ec0c128 100644 --- a/sandboxed_api/tools/clang_generator/CMakeLists.txt +++ b/sandboxed_api/tools/clang_generator/CMakeLists.txt @@ -128,6 +128,13 @@ target_link_libraries(sapi_generator_tool PRIVATE sapi::fileops sapi::generator ) +if(SAPI_ENABLE_CLANG_TOOL_STATIC) + target_link_options(sapi_generator_tool PRIVATE + # These work for both GCC and Clang + -static-libgcc + -static-libstdc++ + ) +endif() if(BUILD_TESTING AND SAPI_BUILD_TESTING) add_executable(sapi_generator_test