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.

108 lines
3.6KB

  1. name: build
  2. on:
  3. push:
  4. branches:
  5. - '*'
  6. pull_request:
  7. branches:
  8. - '*'
  9. env:
  10. DEBIAN_FRONTEND: noninteractive
  11. HOMEBREW_NO_AUTO_UPDATE: 1
  12. WITH_LTO: false
  13. jobs:
  14. macos-11:
  15. runs-on: macos-11
  16. steps:
  17. - uses: actions/checkout@v3
  18. - name: Set up dependencies
  19. run: |
  20. brew install fluid-synth liblo libmagic libsndfile pkg-config pyqt@5 qt@5 sdl2
  21. - name: make features
  22. run: make features
  23. - name: make
  24. run: make -j $(sysctl -n hw.logicalcpu)
  25. ubuntu-20_04:
  26. runs-on: ubuntu-20.04
  27. steps:
  28. - uses: actions/checkout@v3
  29. - name: Fix GitHub's mess
  30. run: |
  31. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  32. sudo dpkg --add-architecture i386
  33. sudo apt-get update -qq
  34. sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
  35. - name: Set up dependencies
  36. run: |
  37. sudo apt-get install -yqq 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 pkg-config pyqt5-dev-tools qtbase5-dev
  38. sudo apt-get install -yqq g++-multilib libx11-6:i386 libxext6:i386
  39. # Fix 32bit bridge build
  40. sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
  41. sudo ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so
  42. - name: make features
  43. run: make features
  44. - name: make
  45. run: make -j $(nproc)
  46. - name: make posix32
  47. run: make posix32 -j $(nproc)
  48. ubuntu-22_04:
  49. runs-on: ubuntu-22.04
  50. steps:
  51. - uses: actions/checkout@v3
  52. - name: Fix GitHub's mess
  53. run: |
  54. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  55. sudo dpkg --add-architecture i386
  56. sudo apt-get update -qq
  57. sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386
  58. - name: Set up dependencies
  59. run: |
  60. sudo apt-get install -yqq 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 pkg-config pyqt5-dev-tools qtbase5-dev
  61. sudo apt-get install -yqq g++-multilib libx11-6:i386 libxext6:i386
  62. # Fix 32bit bridge build
  63. sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
  64. sudo ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so
  65. - name: make features
  66. run: make features
  67. - name: make
  68. run: make -j $(nproc)
  69. - name: make posix32
  70. run: make posix32 -j $(nproc)
  71. wasm:
  72. runs-on: ubuntu-22.04
  73. env:
  74. EMSCRIPTEN_VERSION: 3.1.27
  75. steps:
  76. - uses: actions/checkout@v3
  77. with:
  78. submodules: recursive
  79. - name: Set up cache
  80. id: cache
  81. uses: actions/cache@v3
  82. with:
  83. path: |
  84. ~/emsdk
  85. key: emsdk-v1
  86. - name: Set up dependencies
  87. run: |
  88. [ -d ~/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/emsdk
  89. cd ~/emsdk && ./emsdk install ${{ env.EMSCRIPTEN_VERSION }} && ./emsdk activate ${{ env.EMSCRIPTEN_VERSION }}
  90. - name: make
  91. env:
  92. AR: emar
  93. CC: emcc
  94. CXX: em++
  95. NM: emnm
  96. RANLIB: emranlib
  97. STRIP: emstrip
  98. PKG_CONFIG: false
  99. run: |
  100. source ~/emsdk/emsdk_env.sh
  101. make features
  102. make -j $(nproc)