diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 1c26303..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,194 +0,0 @@ -name: Continuous Integration - -on: - push: - branches: - - master - - pull_request: - branches: - - master - -jobs: - lint: - runs-on: ubuntu-22.04 - - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: { python-version: "3.8" } - - - name: Install codespell - run: pip3 install codespell - - - name: Lint - run: cmake -D FORMAT_COMMAND=clang-format-14 -P cmake/lint.cmake - - - name: Spell check - if: always() - run: cmake -P cmake/spell.cmake - - coverage: - needs: [lint] - - runs-on: ubuntu-22.04 - - # To enable coverage, delete the last line from the conditional below and - # edit the "" placeholder to your GitHub name. - # If you do not wish to use codecov, then simply delete this job from the - # workflow. - if: github.repository_owner == '' - && false - - steps: - - uses: actions/checkout@v4 - - - name: Install LCov - run: sudo apt-get update -q - && sudo apt-get install lcov -q -y - - - name: Configure - run: cmake --preset=ci-coverage - - - name: Build - run: cmake --build build/coverage -j 2 - - - name: Test - working-directory: build/coverage - run: ctest --output-on-failure --no-tests=error -j 2 - - - name: Process coverage info - run: cmake --build build/coverage -t coverage - - - name: Submit to codecov.io - uses: codecov/codecov-action@v4 - with: - file: build/coverage/coverage.info - token: ${{ secrets.CODECOV_TOKEN }} - - sanitize: - needs: [lint] - - runs-on: ubuntu-22.04 - - env: { CXX: clang++-14 } - - steps: - - uses: actions/checkout@v4 - - - name: Configure - run: cmake --preset=ci-sanitize - - - name: Build - run: cmake --build build/sanitize -j 2 - - - name: Test - working-directory: build/sanitize - env: - ASAN_OPTIONS: "strict_string_checks=1:\ - detect_stack_use_after_return=1:\ - check_initialization_order=1:\ - strict_init_order=1:\ - detect_leaks=1:\ - halt_on_error=1" - UBSAN_OPTIONS: "print_stacktrace=1:\ - halt_on_error=1" - run: ctest --output-on-failure --no-tests=error -j 2 - - test: - needs: [lint] - - strategy: - matrix: - os: [macos-12, ubuntu-22.04, windows-2022] - - type: [shared, static] - - include: - - { type: shared, shared: YES } - - { type: static, shared: NO } - - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v4 - - - name: Install static analyzers - if: matrix.os == 'ubuntu-22.04' - run: >- - sudo apt-get install clang-tidy-14 cppcheck -y -q - - sudo update-alternatives --install - /usr/bin/clang-tidy clang-tidy - /usr/bin/clang-tidy-14 140 - - - name: Setup MultiToolTask - if: matrix.os == 'windows-2022' - run: | - Add-Content "$env:GITHUB_ENV" 'UseMultiToolTask=true' - Add-Content "$env:GITHUB_ENV" 'EnforceProcessCountAcrossBuilds=true' - - - name: Configure - shell: pwsh - run: cmake "--preset=ci-$("${{ matrix.os }}".split("-")[0])" - -D BUILD_SHARED_LIBS=${{ matrix.shared }} - - - name: Setup PATH - if: matrix.os == 'windows-2022' && matrix.type == 'shared' - run: Add-Content "$env:GITHUB_PATH" "$(Get-Location)\build\Release" - - - name: Build - run: cmake --build build --config Release -j 2 - - - name: Install - run: cmake --install build --config Release --prefix prefix - - - name: Test - working-directory: build - run: ctest --output-on-failure --no-tests=error -C Release -j 2 - - docs: - # Deploy docs only when builds succeed - needs: [sanitize, test] - - runs-on: ubuntu-22.04 - - # To enable, first you have to create an orphaned gh-pages branch: - # - # git switch --orphan gh-pages - # git commit --allow-empty -m "Initial commit" - # git push -u origin gh-pages - # - # Edit the placeholder below to your GitHub name, so this action - # runs only in your repository and no one else's fork. After these, delete - # this comment and the last line in the conditional below. - # If you do not wish to use GitHub Pages for deploying documentation, then - # simply delete this job similarly to the coverage one. - if: github.ref == 'refs/heads/master' - && github.event_name == 'push' - && github.repository_owner == '' - && false - - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: { python-version: "3.8" } - - - name: Install m.css dependencies - run: pip3 install jinja2 Pygments - - - name: Install Doxygen - run: sudo apt-get update -q - && sudo apt-get install doxygen -q -y - - - name: Build docs - run: cmake "-DPROJECT_SOURCE_DIR=$PWD" "-DPROJECT_BINARY_DIR=$PWD/build" - -P cmake/docs-ci.cmake - - - name: Deploy docs - uses: peaceiris/actions-gh-pages@v4 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: build/docs/html diff --git a/README.md b/README.md index 1c13bed..5432b9c 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,23 @@ # nix-gcc-multi-issue -This is the nix-gcc-multi-issue project. +Sample project to show linkage problem in Nix devshell with `multiStdenv`. -# Building and installing +## Building -See the [BUILDING](BUILDING.md) document. +In the repo root: +``` +nix develop +./build.sh +``` -# Contributing - -See the [CONTRIBUTING](CONTRIBUTING.md) document. - -# Licensing - - +You get: +``` +[2/3] Linking CXX shared library libnix-gcc-multi-issue.so.0.1.0 +/nix/store/nd7ass1isid4vswpkfm82za4mcdwhzsm-binutils-2.41/bin/ld: skipping incompatible /nix/store/sgznwzgmsn3xxv1jg945d3rsaysjrzqc-gcc-13.2.0-lib/lib64/libstdc++.so when searching for -lstdc++ +/nix/store/nd7ass1isid4vswpkfm82za4mcdwhzsm-binutils-2.41/bin/ld: skipping incompatible /nix/store/4zcyrsrdz7xmskwa06fprmyvzl3k8pb6-glibc-multi-2.39-31/lib/libm.so when searching for -lm +/nix/store/nd7ass1isid4vswpkfm82za4mcdwhzsm-binutils-2.41/bin/ld: skipping incompatible /nix/store/sgznwzgmsn3xxv1jg945d3rsaysjrzqc-gcc-13.2.0-lib/lib64/libgcc_s.so.1 when searching for libgcc_s.so.1 +/nix/store/nd7ass1isid4vswpkfm82za4mcdwhzsm-binutils-2.41/bin/ld: skipping incompatible /nix/store/sgznwzgmsn3xxv1jg945d3rsaysjrzqc-gcc-13.2.0-lib/lib64/libgcc_s.so.1 when searching for libgcc_s.so.1 +/nix/store/nd7ass1isid4vswpkfm82za4mcdwhzsm-binutils-2.41/bin/ld: skipping incompatible /nix/store/4zcyrsrdz7xmskwa06fprmyvzl3k8pb6-glibc-multi-2.39-31/lib/libc.so when searching for -lc +/nix/store/nd7ass1isid4vswpkfm82za4mcdwhzsm-binutils-2.41/bin/ld: skipping incompatible /nix/store/sgznwzgmsn3xxv1jg945d3rsaysjrzqc-gcc-13.2.0-lib/lib64/libgcc_s.so.1 when searching for libgcc_s.so.1 +/nix/store/nd7ass1isid4vswpkfm82za4mcdwhzsm-binutils-2.41/bin/ld: skipping incompatible /nix/store/sgznwzgmsn3xxv1jg945d3rsaysjrzqc-gcc-13.2.0-lib/lib64/libgcc_s.so.1 when searching for libgcc_s.so.1 +``` \ No newline at end of file