analyzer.yml 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. name: analyzer
  2. on:
  3. push:
  4. branches:
  5. - master
  6. - wip
  7. jobs:
  8. iwyu:
  9. timeout-minutes: 30
  10. env:
  11. IWYU: "0.20"
  12. LLVM: "16"
  13. runs-on: ubuntu-latest
  14. continue-on-error: true
  15. steps:
  16. - uses: actions/checkout@v4
  17. - name: Install llvm/clang
  18. # see: https://apt.llvm.org/
  19. run: |
  20. wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
  21. sudo add-apt-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-$LLVM main"
  22. sudo apt update
  23. sudo apt remove -y "llvm*"
  24. sudo apt remove -y "libclang-dev*"
  25. sudo apt remove -y "clang*"
  26. sudo apt install -y llvm-$LLVM-dev
  27. sudo apt install -y libclang-$LLVM-dev
  28. sudo apt install -y clang-$LLVM
  29. - name: Compile iwyu
  30. # see: https://github.com/include-what-you-use/include-what-you-use
  31. working-directory: build
  32. run: |
  33. git clone https://github.com/include-what-you-use/include-what-you-use.git --branch $IWYU --depth 1
  34. mkdir include-what-you-use/build
  35. cd include-what-you-use/build
  36. cmake -DCMAKE_C_COMPILER=clang-$LLVM \
  37. -DCMAKE_CXX_COMPILER=clang++-$LLVM \
  38. -DCMAKE_INSTALL_PREFIX=./ \
  39. ..
  40. make -j4
  41. bin/include-what-you-use --version
  42. - name: Compile tests
  43. working-directory: build
  44. run: |
  45. export PATH=$PATH:${GITHUB_WORKSPACE}/build/include-what-you-use/build/bin
  46. cmake -DCMAKE_C_COMPILER=clang-$LLVM \
  47. -DCMAKE_CXX_COMPILER=clang++-$LLVM \
  48. -DENTT_BUILD_TESTING=ON \
  49. -DENTT_BUILD_BENCHMARK=ON \
  50. -DENTT_BUILD_EXAMPLE=ON \
  51. -DENTT_BUILD_LIB=ON \
  52. -DENTT_BUILD_SNAPSHOT=ON \
  53. -DCMAKE_CXX_INCLUDE_WHAT_YOU_USE="include-what-you-use;-Xiwyu;--mapping_file=${GITHUB_WORKSPACE}/entt.imp;-Xiwyu;--no_fwd_decls;-Xiwyu;--verbose=1" \
  54. ..
  55. make -j4