Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.6KB

  1. name: build
  2. on: [push, pull_request]
  3. env:
  4. DEBIAN_FRONTEND: noninteractive
  5. EMSCRIPTEN_VERSION: 3.1.27
  6. HOMEBREW_NO_AUTO_UPDATE: 1
  7. HOMEBREW_NO_INSTALL_CLEANUP: 1
  8. jobs:
  9. linux:
  10. strategy:
  11. matrix:
  12. include:
  13. - target: debian:11
  14. - target: debian:12
  15. - target: ubuntu:20.04
  16. - target: ubuntu:22.04
  17. - target: ubuntu:24.04
  18. runs-on: ubuntu-latest
  19. container:
  20. image: ${{ matrix.target }}
  21. steps:
  22. - uses: actions/checkout@v3
  23. - name: Set up dependencies
  24. run: |
  25. dpkg --add-architecture i386
  26. apt-get update -qq
  27. apt-get install -yqq g++-multilib libasound2-dev libfluidsynth-dev libgl1-mesa-dev liblo-dev libmagic-dev libpulse-dev libsdl2-dev libsndfile1-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev make pkg-config pyqt5-dev-tools qtbase5-dev
  28. apt-get install -yqq libx11-6:i386 libxext6:i386
  29. # Fix 32bit bridge build
  30. ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
  31. ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so
  32. - name: make features
  33. run: make features
  34. - name: make
  35. run: make -j $(nproc)
  36. - name: make posix32
  37. run: make posix32 -j $(nproc)
  38. macos:
  39. strategy:
  40. matrix:
  41. include:
  42. - target: macos-13
  43. - target: macos-14
  44. - target: macos-15
  45. runs-on: ${{ matrix.target }}
  46. steps:
  47. - uses: actions/checkout@v4
  48. with:
  49. submodules: recursive
  50. - name: Set up dependencies
  51. run: |
  52. brew install fluid-synth liblo libmagic libsndfile pkg-config pyqt@5 qt@5 sdl2
  53. - name: make features
  54. run: make features
  55. - name: make
  56. run: make -j $(sysctl -n hw.logicalcpu)
  57. wasm:
  58. runs-on: ubuntu-24.04
  59. steps:
  60. - uses: actions/checkout@v4
  61. with:
  62. submodules: recursive
  63. - name: Set up cache
  64. id: cache
  65. uses: actions/cache@v4
  66. with:
  67. path: |
  68. ~/emsdk
  69. key: emsdk-v2
  70. - name: Set up dependencies
  71. run: |
  72. [ -d ~/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/emsdk
  73. cd ~/emsdk && ./emsdk install ${{ env.EMSCRIPTEN_VERSION }} && ./emsdk activate ${{ env.EMSCRIPTEN_VERSION }}
  74. - name: make
  75. env:
  76. AR: emar
  77. CC: emcc
  78. CXX: em++
  79. NM: emnm
  80. RANLIB: emranlib
  81. STRIP: emstrip
  82. PKG_CONFIG: false
  83. run: |
  84. source ~/emsdk/emsdk_env.sh
  85. make features
  86. make -j $(nproc)