Cross-Platform build scripts for audio plugins
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.

1000 lines
57KB

  1. name: bootstrap
  2. on:
  3. push:
  4. env:
  5. CACHE_VERSION: 3
  6. DEBIAN_FRONTEND: noninteractive
  7. EMSCRIPTEN_VERSION: 3.1.27
  8. PAWPAW_SKIP_TESTS: 1
  9. jobs:
  10. common:
  11. strategy:
  12. matrix:
  13. include:
  14. - name: linux-aarch64
  15. installer: apt
  16. os: ubuntu-latest
  17. container: ubuntu:22.04
  18. target: linux-aarch64
  19. - name: linux-armhf
  20. installer: apt
  21. os: ubuntu-latest
  22. container: ubuntu:22.04
  23. target: linux-armhf
  24. - name: linux-i686
  25. installer: apt
  26. os: ubuntu-latest
  27. container: ubuntu:22.04
  28. target: linux-i686
  29. - name: linux-riscv64
  30. installer: apt
  31. os: ubuntu-latest
  32. container: ubuntu:22.04
  33. target: linux-riscv64
  34. - name: linux-x86_64
  35. installer: apt
  36. os: ubuntu-latest
  37. container: ubuntu:22.04
  38. target: linux-x86_64
  39. - name: macos
  40. installer: homebrew
  41. os: macos-11
  42. target: macos
  43. - name: macos-universal
  44. installer: homebrew
  45. os: macos-11
  46. target: macos-universal
  47. - name: macos-universal-10.15
  48. installer: homebrew
  49. os: macos-11
  50. target: macos-universal-10.15
  51. - name: wasm
  52. installer: apt
  53. os: ubuntu-latest
  54. container: ubuntu:22.04
  55. target: wasm
  56. - name: win32
  57. installer: apt
  58. os: ubuntu-latest
  59. container: ubuntu:22.04
  60. target: win32
  61. - name: win64
  62. installer: apt
  63. os: ubuntu-latest
  64. container: ubuntu:22.04
  65. target: win64
  66. runs-on: ${{ matrix.os }}
  67. container:
  68. image: ${{ matrix.container }}
  69. steps:
  70. - uses: actions/checkout@v3
  71. - name: Set up cache
  72. uses: actions/cache@v3
  73. with:
  74. path: |
  75. ~/PawPawBuilds
  76. key: common-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  77. - name: Set up dependencies (apt-get)
  78. if: ${{ matrix.installer == 'apt' }}
  79. run: |
  80. apt-get update -qq
  81. apt-get install -yqq autoconf automake autopoint build-essential curl cmake git jq meson gperf qemu-user-static
  82. - name: Set up dependencies (homebrew)
  83. if: ${{ matrix.installer == 'homebrew' }}
  84. run: |
  85. brew install cmake git jq meson
  86. - name: Set up dependencies (linux-aarch64)
  87. if: ${{ matrix.target == 'linux-aarch64' }}
  88. run: |
  89. dpkg --add-architecture arm64
  90. sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  91. sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  92. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | tee /etc/apt/sources.list.d/ports-arm64.list
  93. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-arm64.list
  94. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-arm64.list
  95. apt-get update -qq
  96. apt-get install -yqq g++-aarch64-linux-gnu libasound2-dev:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64
  97. - name: Set up dependencies (linux-armhf)
  98. if: ${{ matrix.target == 'linux-armhf' }}
  99. run: |
  100. dpkg --add-architecture armhf
  101. sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  102. sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  103. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | tee /etc/apt/sources.list.d/ports-armhf.list
  104. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-armhf.list
  105. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-armhf.list
  106. apt-get update -qq
  107. apt-get install -y g++-arm-linux-gnueabihf libasound2-dev:armhf libdbus-1-dev:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf
  108. - name: Set up dependencies (linux-i686)
  109. if: ${{ matrix.target == 'linux-i686' }}
  110. run: |
  111. dpkg --add-architecture i386
  112. apt-get update -qq
  113. apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386
  114. - name: Set up dependencies (linux-riscv64)
  115. if: ${{ matrix.target == 'linux-riscv64' }}
  116. run: |
  117. dpkg --add-architecture riscv64
  118. sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  119. sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  120. echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | tee /etc/apt/sources.list.d/ports-riscv64.list
  121. echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-riscv64.list
  122. echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-riscv64.list
  123. apt-get update -qq
  124. apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64
  125. - name: Set up dependencies (linux-x86_64)
  126. if: ${{ matrix.target == 'linux-x86_64' }}
  127. run: |
  128. apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
  129. - name: Set up dependencies (wasm)
  130. if: ${{ matrix.target == 'wasm' }}
  131. run: |
  132. apt-get install -yqq autoconf automake git
  133. [ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
  134. cd ~/PawPawBuilds/emsdk && ./emsdk install ${{ env.EMSCRIPTEN_VERSION }} && ./emsdk activate ${{ env.EMSCRIPTEN_VERSION }}
  135. - name: Set up dependencies (linux-aarch64)
  136. if: ${{ matrix.target == 'win32' }}
  137. run: |
  138. dpkg --add-architecture i386
  139. apt-get update -qq
  140. apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable
  141. - name: Set up dependencies (win64)
  142. if: ${{ matrix.target == 'win64' }}
  143. run: |
  144. dpkg --add-architecture i386
  145. apt-get update -qq
  146. apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable
  147. - name: Run bootstrap
  148. shell: bash
  149. run: |
  150. if [ '${{ matrix.target }}' == 'wasm' ]; then
  151. source ~/PawPawBuilds/emsdk/emsdk_env.sh
  152. fi
  153. ./bootstrap-common.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }}
  154. - name: Pack bootstrap build
  155. shell: bash
  156. run: |
  157. tar -C ~/PawPawBuilds -czf common-${{ matrix.target }}.tar.gz builds targets
  158. - uses: actions/upload-artifact@v3
  159. with:
  160. name: common-${{ matrix.target }}
  161. path: common-${{ matrix.target }}.tar.gz
  162. plugins:
  163. strategy:
  164. matrix:
  165. include:
  166. - name: linux-aarch64
  167. installer: apt
  168. os: ubuntu-latest
  169. container: ubuntu:22.04
  170. target: linux-aarch64
  171. - name: linux-armhf
  172. installer: apt
  173. os: ubuntu-latest
  174. container: ubuntu:22.04
  175. target: linux-armhf
  176. - name: linux-i686
  177. installer: apt
  178. os: ubuntu-latest
  179. container: ubuntu:22.04
  180. target: linux-i686
  181. - name: linux-riscv64
  182. installer: apt
  183. os: ubuntu-latest
  184. container: ubuntu:22.04
  185. target: linux-riscv64
  186. - name: linux-x86_64
  187. installer: apt
  188. os: ubuntu-latest
  189. container: ubuntu:22.04
  190. target: linux-x86_64
  191. - name: macos
  192. installer: homebrew
  193. os: macos-11
  194. target: macos
  195. - name: macos-universal
  196. installer: homebrew
  197. os: macos-11
  198. target: macos-universal
  199. - name: macos-universal-10.15
  200. installer: homebrew
  201. os: macos-11
  202. target: macos-universal-10.15
  203. - name: wasm
  204. installer: apt
  205. os: ubuntu-latest
  206. container: ubuntu:22.04
  207. target: wasm
  208. - name: win32
  209. installer: apt
  210. os: ubuntu-latest
  211. container: ubuntu:22.04
  212. target: win32
  213. - name: win64
  214. installer: apt
  215. os: ubuntu-latest
  216. container: ubuntu:22.04
  217. target: win64
  218. runs-on: ${{ matrix.os }}
  219. container:
  220. image: ${{ matrix.container }}
  221. needs: common
  222. steps:
  223. - uses: actions/checkout@v3
  224. - name: Set up cache
  225. uses: actions/cache@v3
  226. with:
  227. path: |
  228. ~/PawPawBuilds
  229. key: plugins-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  230. - name: Set up dependencies (apt-get)
  231. if: ${{ matrix.installer == 'apt' }}
  232. run: |
  233. apt-get update -qq
  234. apt-get install -yqq autoconf automake autopoint build-essential curl cmake git jq meson gperf qemu-user-static
  235. - name: Set up dependencies (homebrew)
  236. if: ${{ matrix.installer == 'homebrew' }}
  237. run: |
  238. brew install cmake git jq meson
  239. - name: Set up dependencies (linux-aarch64)
  240. if: ${{ matrix.target == 'linux-aarch64' }}
  241. run: |
  242. dpkg --add-architecture arm64
  243. sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  244. sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  245. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | tee /etc/apt/sources.list.d/ports-arm64.list
  246. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-arm64.list
  247. echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-arm64.list
  248. apt-get update -qq
  249. apt-get install -yqq g++-aarch64-linux-gnu libasound2-dev:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64
  250. - name: Set up dependencies (linux-armhf)
  251. if: ${{ matrix.target == 'linux-armhf' }}
  252. run: |
  253. dpkg --add-architecture armhf
  254. sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  255. sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  256. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | tee /etc/apt/sources.list.d/ports-armhf.list
  257. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-armhf.list
  258. echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-armhf.list
  259. apt-get update -qq
  260. apt-get install -y g++-arm-linux-gnueabihf libasound2-dev:armhf libdbus-1-dev:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf
  261. - name: Set up dependencies (linux-i686)
  262. if: ${{ matrix.target == 'linux-i686' }}
  263. run: |
  264. dpkg --add-architecture i386
  265. apt-get update -qq
  266. apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386
  267. - name: Set up dependencies (linux-riscv64)
  268. if: ${{ matrix.target == 'linux-riscv64' }}
  269. run: |
  270. dpkg --add-architecture riscv64
  271. sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  272. sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  273. echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | tee /etc/apt/sources.list.d/ports-riscv64.list
  274. echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-riscv64.list
  275. echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list.d/ports-riscv64.list
  276. apt-get update -qq
  277. apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64
  278. - name: Set up dependencies (linux-x86_64)
  279. if: ${{ matrix.target == 'linux-x86_64' }}
  280. run: |
  281. apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
  282. - name: Set up dependencies (wasm)
  283. if: ${{ matrix.target == 'wasm' }}
  284. run: |
  285. apt-get install -yqq autoconf automake git
  286. [ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
  287. cd ~/PawPawBuilds/emsdk && ./emsdk install ${{ env.EMSCRIPTEN_VERSION }} && ./emsdk activate ${{ env.EMSCRIPTEN_VERSION }}
  288. - name: Set up dependencies (linux-aarch64)
  289. if: ${{ matrix.target == 'win32' }}
  290. run: |
  291. dpkg --add-architecture i386
  292. apt-get update -qq
  293. apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable
  294. - name: Set up dependencies (win64)
  295. if: ${{ matrix.target == 'win64' }}
  296. run: |
  297. dpkg --add-architecture i386
  298. apt-get update -qq
  299. apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable
  300. - name: Download common-${{ matrix.target }}
  301. uses: actions/download-artifact@v3
  302. with:
  303. name: common-${{ matrix.target }}
  304. path: ~/PawPawBuilds
  305. - name: Extract common-${{ matrix.target }}
  306. shell: bash
  307. run: |
  308. cd ~/PawPawBuilds && \
  309. tar xf common-${{ matrix.target }}.tar.gz
  310. - name: Run bootstrap
  311. shell: bash
  312. run: |
  313. if [ '${{ matrix.target }}' == 'wasm' ]; then \
  314. source ~/PawPawBuilds/emsdk/emsdk_env.sh; \
  315. fi
  316. ./bootstrap-plugins.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }}
  317. - name: Pack bootstrap build
  318. shell: bash
  319. run: |
  320. tar -C ~/PawPawBuilds -czf plugins-${{ matrix.target }}.tar.gz builds targets
  321. - uses: actions/upload-artifact@v3
  322. with:
  323. name: plugins-${{ matrix.target }}
  324. path: plugins-${{ matrix.target }}.tar.gz
  325. #jack2:
  326. #strategy:
  327. #matrix:
  328. #include:
  329. #- name: macos
  330. #installer: homebrew
  331. #os: macos-11
  332. #target: macos
  333. #- name: macos-universal
  334. #installer: homebrew
  335. #os: macos-11
  336. #target: macos-universal
  337. #- name: macos-universal-10.15
  338. #installer: homebrew
  339. #os: macos-11
  340. #target: macos-universal-10.15
  341. #- name: win32
  342. #installer: apt
  343. #os: ubuntu-22.04
  344. #target: win32
  345. #- name: win64
  346. #installer: apt
  347. #os: ubuntu-22.04
  348. #target: win64
  349. #runs-on: ${{ matrix.os }}
  350. #needs: common
  351. #steps:
  352. #- uses: actions/checkout@v3
  353. #- name: Set up cache
  354. #uses: actions/cache@v3
  355. #with:
  356. #path: |
  357. #~/PawPawBuilds
  358. #key: jack2-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  359. #- name: (apt) Restore debian package cache
  360. #if: ${{ matrix.installer == 'apt' }}
  361. #run: |
  362. #if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \
  363. #sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \
  364. #fi
  365. #- name: (apt) Fix GitHub's mess
  366. #if: ${{ matrix.installer == 'apt' }}
  367. #run: |
  368. #sudo rm /etc/apt/sources.list.d/*.list
  369. #sudo apt-get update -qq
  370. #sudo apt-get purge -yqq git-man libclang* libgbm* libllvm* libmono* libnginx* moby* mono* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4
  371. #sudo apt-get install -yqq --allow-downgrades git/jammy
  372. #- name: (apt) Set up dependencies (apt)
  373. #if: ${{ matrix.installer == 'apt' }}
  374. #run: |
  375. #sudo apt-get update -qq
  376. ## extra, for using system libraries
  377. #if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then
  378. #sudo dpkg --add-architecture arm64
  379. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  380. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  381. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list
  382. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  383. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  384. #sudo apt-get update -qq
  385. #sudo apt-get install -yqq --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static
  386. #elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then
  387. #sudo dpkg --add-architecture armhf
  388. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  389. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  390. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list
  391. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  392. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  393. #sudo apt-get update -qq
  394. #sudo apt-get install -yqq --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static
  395. #elif [ '${{ matrix.target }}' == 'linux-i686' ]; then
  396. #sudo dpkg --add-architecture i386
  397. #sudo apt-get update -qq
  398. #sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf
  399. #elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then
  400. #sudo dpkg --add-architecture riscv64
  401. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  402. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  403. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list
  404. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
  405. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
  406. #sudo apt-get update -qq
  407. #sudo apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglapi-mesa:riscv64 libglvnd0:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static
  408. #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then
  409. #sudo apt-get install -yqq --allow-downgrades libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf
  410. #elif [ '${{ matrix.target }}' == 'wasm' ]; then
  411. #sudo apt-get install -yqq --allow-downgrades autoconf automake git gperf
  412. #fi
  413. ## extra, for wasm
  414. #if [ '${{ matrix.target }}' == 'wasm' ]; then
  415. #[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
  416. #cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest
  417. #fi
  418. ## extra, for win32
  419. #if [ '${{ matrix.target }}' == 'win32' ]; then
  420. #sudo dpkg --add-architecture i386
  421. #sudo apt-get update -qq
  422. #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable
  423. #fi
  424. ## extra, for win64
  425. #if [ '${{ matrix.target }}' == 'win64' ]; then
  426. #sudo dpkg --add-architecture i386
  427. #sudo apt-get update -qq
  428. #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable
  429. #fi
  430. #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson
  431. #- name: (homebrew) Set up dependencies
  432. #if: ${{ matrix.installer == 'homebrew' }}
  433. #run: |
  434. #brew install cmake git jq meson
  435. #- name: (apt) Cache debian packages
  436. #if: ${{ matrix.installer == 'apt' }}
  437. #run: |
  438. #mkdir -p ~/PawPawBuilds/debs
  439. #sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/
  440. #- name: Download common-${{ matrix.target }}
  441. #uses: actions/download-artifact@v3
  442. #with:
  443. #name: common-${{ matrix.target }}
  444. #path: ~/PawPawBuilds
  445. #- name: Extract common-${{ matrix.target }}
  446. #shell: bash
  447. #run: |
  448. #cd ~/PawPawBuilds && \
  449. #tar xf common-${{ matrix.target }}.tar.gz
  450. #- name: Run bootstrap
  451. #shell: bash
  452. #run: |
  453. #./bootstrap-jack2.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }}
  454. #- name: Pack bootstrap build
  455. #shell: bash
  456. #run: |
  457. #tar -C ~/PawPawBuilds -czf jack2-${{ matrix.target }}.tar.gz builds targets
  458. #- uses: actions/upload-artifact@v3
  459. #with:
  460. #name: jack2-${{ matrix.target }}
  461. #path: jack2-${{ matrix.target }}.tar.gz
  462. #qt:
  463. #strategy:
  464. #matrix:
  465. #include:
  466. #- name: macos
  467. #installer: homebrew
  468. #os: macos-11
  469. #target: macos
  470. #- name: macos-universal
  471. #installer: homebrew
  472. #os: macos-11
  473. #target: macos-universal
  474. #- name: macos-universal-10.15
  475. #installer: homebrew
  476. #os: macos-11
  477. #target: macos-universal-10.15
  478. #- name: win32
  479. #installer: apt
  480. #os: ubuntu-22.04
  481. #target: win32
  482. #- name: win64
  483. #installer: apt
  484. #os: ubuntu-22.04
  485. #target: win64
  486. #runs-on: ${{ matrix.os }}
  487. #needs: common
  488. #steps:
  489. #- uses: actions/checkout@v3
  490. #- name: Set up cache
  491. #uses: actions/cache@v3
  492. #with:
  493. #path: |
  494. #~/PawPawBuilds
  495. #key: qt-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  496. #- name: (apt) Restore debian package cache
  497. #if: ${{ matrix.installer == 'apt' }}
  498. #run: |
  499. #if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \
  500. #sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \
  501. #fi
  502. #- name: (apt) Fix GitHub's mess
  503. #if: ${{ matrix.installer == 'apt' }}
  504. #run: |
  505. #sudo rm /etc/apt/sources.list.d/*.list
  506. #sudo apt-get update -qq
  507. #sudo apt-get purge -yqq git-man libclang* libgbm* libllvm* libmono* libnginx* moby* mono* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4
  508. #sudo apt-get install -yqq --allow-downgrades git/jammy
  509. #- name: (apt) Set up dependencies (apt)
  510. #if: ${{ matrix.installer == 'apt' }}
  511. #run: |
  512. #sudo apt-get update -qq
  513. ## extra, for using system libraries
  514. #if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then
  515. #sudo dpkg --add-architecture arm64
  516. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  517. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  518. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list
  519. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  520. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  521. #sudo apt-get update -qq
  522. #sudo apt-get install -yqq --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static
  523. #elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then
  524. #sudo dpkg --add-architecture armhf
  525. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  526. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  527. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list
  528. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  529. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  530. #sudo apt-get update -qq
  531. #sudo apt-get install -yqq --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static
  532. #elif [ '${{ matrix.target }}' == 'linux-i686' ]; then
  533. #sudo dpkg --add-architecture i386
  534. #sudo apt-get update -qq
  535. #sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf
  536. #elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then
  537. #sudo dpkg --add-architecture riscv64
  538. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  539. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  540. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list
  541. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
  542. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
  543. #sudo apt-get update -qq
  544. #sudo apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglapi-mesa:riscv64 libglvnd0:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static
  545. #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then
  546. #sudo apt-get install -yqq --allow-downgrades libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf
  547. #elif [ '${{ matrix.target }}' == 'wasm' ]; then
  548. #sudo apt-get install -yqq --allow-downgrades autoconf automake git gperf
  549. #fi
  550. ## extra, for wasm
  551. #if [ '${{ matrix.target }}' == 'wasm' ]; then
  552. #[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
  553. #cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest
  554. #fi
  555. ## extra, for win32
  556. #if [ '${{ matrix.target }}' == 'win32' ]; then
  557. #sudo dpkg --add-architecture i386
  558. #sudo apt-get update -qq
  559. #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable
  560. #fi
  561. ## extra, for win64
  562. #if [ '${{ matrix.target }}' == 'win64' ]; then
  563. #sudo dpkg --add-architecture i386
  564. #sudo apt-get update -qq
  565. #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable
  566. #fi
  567. #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson
  568. #- name: (homebrew) Set up dependencies
  569. #if: ${{ matrix.installer == 'homebrew' }}
  570. #run: |
  571. #brew install cmake git jq meson
  572. #- name: (apt) Cache debian packages
  573. #if: ${{ matrix.installer == 'apt' }}
  574. #run: |
  575. #mkdir -p ~/PawPawBuilds/debs
  576. #sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/
  577. #- name: Download common-${{ matrix.target }}
  578. #uses: actions/download-artifact@v3
  579. #with:
  580. #name: common-${{ matrix.target }}
  581. #path: ~/PawPawBuilds
  582. #- name: Extract common-${{ matrix.target }}
  583. #shell: bash
  584. #run: |
  585. #cd ~/PawPawBuilds && \
  586. #tar xf common-${{ matrix.target }}.tar.gz
  587. #- name: Run bootstrap
  588. #shell: bash
  589. #run: |
  590. #./bootstrap-qt.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }}
  591. #- name: Pack bootstrap build
  592. #shell: bash
  593. #run: |
  594. #tar -C ~/PawPawBuilds -czf qt-${{ matrix.target }}.tar.gz builds targets
  595. #- uses: actions/upload-artifact@v3
  596. #with:
  597. #name: qt-${{ matrix.target }}
  598. #path: qt-${{ matrix.target }}.tar.gz
  599. #carla:
  600. #strategy:
  601. #matrix:
  602. #include:
  603. #- name: macos-universal
  604. #installer: homebrew
  605. #os: macos-11
  606. #target: macos-universal
  607. #- name: win32
  608. #installer: apt
  609. #os: ubuntu-22.04
  610. #target: win32
  611. #- name: win64
  612. #installer: apt
  613. #os: ubuntu-22.04
  614. #target: win64
  615. #runs-on: ${{ matrix.os }}
  616. #needs: [plugins, qt]
  617. #steps:
  618. #- uses: actions/checkout@v3
  619. #- name: Set up cache
  620. #uses: actions/cache@v3
  621. #with:
  622. #path: |
  623. #~/PawPawBuilds
  624. #key: carla-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  625. #- name: (apt) Restore debian package cache
  626. #if: ${{ matrix.installer == 'apt' }}
  627. #run: |
  628. #if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \
  629. #sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \
  630. #fi
  631. #- name: (apt) Fix GitHub's mess
  632. #if: ${{ matrix.installer == 'apt' }}
  633. #run: |
  634. #sudo rm /etc/apt/sources.list.d/*.list
  635. #sudo apt-get update -qq
  636. #sudo apt-get purge -yqq git-man libclang* libgbm* libllvm* libmono* libnginx* moby* mono* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4
  637. #sudo apt-get install -yqq --allow-downgrades git/jammy
  638. #- name: (apt) Set up dependencies (apt)
  639. #if: ${{ matrix.installer == 'apt' }}
  640. #run: |
  641. #sudo apt-get update -qq
  642. ## extra, for using system libraries
  643. #if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then
  644. #sudo dpkg --add-architecture arm64
  645. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  646. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  647. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list
  648. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  649. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  650. #sudo apt-get update -qq
  651. #sudo apt-get install -yqq --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static
  652. #elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then
  653. #sudo dpkg --add-architecture armhf
  654. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  655. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  656. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list
  657. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  658. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  659. #sudo apt-get update -qq
  660. #sudo apt-get install -yqq --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static
  661. #elif [ '${{ matrix.target }}' == 'linux-i686' ]; then
  662. #sudo dpkg --add-architecture i386
  663. #sudo apt-get update -qq
  664. #sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf
  665. #elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then
  666. #sudo dpkg --add-architecture riscv64
  667. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  668. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  669. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list
  670. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
  671. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
  672. #sudo apt-get update -qq
  673. #sudo apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglapi-mesa:riscv64 libglvnd0:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static
  674. #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then
  675. #sudo apt-get install -yqq --allow-downgrades libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf
  676. #elif [ '${{ matrix.target }}' == 'wasm' ]; then
  677. #sudo apt-get install -yqq --allow-downgrades autoconf automake git gperf
  678. #fi
  679. ## extra, for wasm
  680. #if [ '${{ matrix.target }}' == 'wasm' ]; then
  681. #[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
  682. #cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest
  683. #fi
  684. ## extra, for win32
  685. #if [ '${{ matrix.target }}' == 'win32' ]; then
  686. #sudo dpkg --add-architecture i386
  687. #sudo apt-get update -qq
  688. #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable
  689. #fi
  690. ## extra, for win64
  691. #if [ '${{ matrix.target }}' == 'win64' ]; then
  692. #sudo dpkg --add-architecture i386
  693. #sudo apt-get update -qq
  694. #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable
  695. #fi
  696. #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson
  697. #- name: (homebrew) Set up dependencies
  698. #if: ${{ matrix.installer == 'homebrew' }}
  699. #run: |
  700. #brew install cmake git jq meson
  701. #- name: (apt) Cache debian packages
  702. #if: ${{ matrix.installer == 'apt' }}
  703. #run: |
  704. #mkdir -p ~/PawPawBuilds/debs
  705. #sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/
  706. #- name: Download common-${{ matrix.target }}
  707. #uses: actions/download-artifact@v3
  708. #with:
  709. #name: common-${{ matrix.target }}
  710. #path: ~/PawPawBuilds
  711. #- name: Download qt-${{ matrix.target }}
  712. #uses: actions/download-artifact@v3
  713. #with:
  714. #name: qt-${{ matrix.target }}
  715. #path: ~/PawPawBuilds
  716. #- name: Download plugins-${{ matrix.target }}
  717. #uses: actions/download-artifact@v3
  718. #with:
  719. #name: plugins-${{ matrix.target }}
  720. #path: ~/PawPawBuilds
  721. #- name: Extract {common,plugins,qt}-${{ matrix.target }}
  722. #shell: bash
  723. #run: |
  724. #cd ~/PawPawBuilds && \
  725. #tar xf common-${{ matrix.target }}.tar.gz && \
  726. #tar xf plugins-${{ matrix.target }}.tar.gz && \
  727. #tar xf qt-${{ matrix.target }}.tar.gz
  728. #- name: Run bootstrap
  729. #shell: bash
  730. #run: |
  731. #./bootstrap-carla.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }}
  732. #cardinal:
  733. #env:
  734. #PAWPAW_SKIP_LTO: 1
  735. #PAWPAW_SKIP_GLIB: 1
  736. #PAWPAW_SKIP_LV2: 1
  737. #PAWPAW_SKIP_SAMPLERATE: 1
  738. #strategy:
  739. #matrix:
  740. #include:
  741. #- name: linux-aarch64
  742. #installer: apt
  743. #os: ubuntu-20.04
  744. #target: linux-aarch64
  745. #- name: linux-armhf
  746. #installer: apt
  747. #os: ubuntu-20.04
  748. #target: linux-armhf
  749. #- name: linux-i686
  750. #installer: apt
  751. #os: ubuntu-20.04
  752. #target: linux-i686
  753. #- name: linux-riscv64
  754. #installer: apt
  755. #os: ubuntu-20.04
  756. #target: linux-riscv64
  757. #- name: linux-x86_64
  758. #installer: apt
  759. #os: ubuntu-20.04
  760. #target: linux-x86_64
  761. #- name: macos-universal-10.15
  762. #installer: homebrew
  763. #os: macos-11
  764. #target: macos-universal-10.15
  765. #- name: wasm
  766. #installer: apt
  767. #os: ubuntu-22.04
  768. #target: wasm
  769. #- name: win32
  770. #installer: apt
  771. #os: ubuntu-22.04
  772. #target: win32
  773. #- name: win64
  774. #installer: apt
  775. #os: ubuntu-22.04
  776. #target: win64
  777. #runs-on: ${{ matrix.os }}
  778. #steps:
  779. #- uses: actions/checkout@v3
  780. #- name: Set up cache
  781. #uses: actions/cache@v3
  782. #with:
  783. #path: |
  784. #~/PawPawBuilds
  785. #key: cardinal-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  786. #- name: (apt) Restore debian package cache
  787. #if: ${{ matrix.installer == 'apt' }}
  788. #run: |
  789. #if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \
  790. #sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \
  791. #fi
  792. #- name: (apt) Fix GitHub's mess in ubuntu-20.04
  793. #if: ${{ matrix.os == 'ubuntu-20.04' }}
  794. #run: |
  795. #sudo rm /etc/apt/sources.list.d/*.list
  796. #sudo apt-get update -qq
  797. #sudo apt-get purge -yqq git-man libclang* libgbm* libllvm* libmono* libnginx* moby* mono* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4
  798. #sudo apt-get install -yqq --allow-downgrades autoconf/focal automake/focal build-essential/focal git/focal libgd3/focal libglib2.0-0/focal libglib2.0-dev/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal pkg-config/focal
  799. #- name: (apt) Fix GitHub's mess in ubuntu-22.04
  800. #if: ${{ matrix.os == 'ubuntu-22.04' }}
  801. #run: |
  802. #sudo rm /etc/apt/sources.list.d/*.list
  803. #sudo apt-get update -qq
  804. #sudo apt-get purge -yqq git-man libclang* libgbm* libllvm* libmono* libnginx* moby* mono* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4
  805. #sudo apt-get install -yqq --allow-downgrades git/jammy
  806. #- name: (apt) Set up dependencies (apt)
  807. #if: ${{ matrix.installer == 'apt' }}
  808. #run: |
  809. #sudo apt-get update -qq
  810. ## extra, for using system libraries
  811. #if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then
  812. #sudo dpkg --add-architecture arm64
  813. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  814. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  815. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list
  816. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  817. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  818. #sudo apt-get update -qq
  819. #sudo apt-get install -yqq --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static
  820. #elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then
  821. #sudo dpkg --add-architecture armhf
  822. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  823. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  824. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list
  825. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  826. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  827. #sudo apt-get update -qq
  828. #sudo apt-get install -yqq --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static
  829. #elif [ '${{ matrix.target }}' == 'linux-i686' ]; then
  830. #sudo dpkg --add-architecture i386
  831. #sudo apt-get update -qq
  832. #sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf
  833. #elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then
  834. #sudo dpkg --add-architecture riscv64
  835. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  836. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  837. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list
  838. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
  839. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
  840. #sudo apt-get update -qq
  841. #sudo apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglapi-mesa:riscv64 libglvnd0:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static
  842. #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then
  843. #sudo apt-get install -yqq --allow-downgrades libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf
  844. #elif [ '${{ matrix.target }}' == 'wasm' ]; then
  845. #sudo apt-get install -yqq --allow-downgrades autoconf automake git gperf
  846. #fi
  847. ## extra, for wasm
  848. #if [ '${{ matrix.target }}' == 'wasm' ]; then
  849. #[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
  850. #cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest
  851. #fi
  852. ## extra, for win32
  853. #if [ '${{ matrix.target }}' == 'win32' ]; then
  854. #sudo dpkg --add-architecture i386
  855. #sudo apt-get update -qq
  856. #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable
  857. #fi
  858. ## extra, for win64
  859. #if [ '${{ matrix.target }}' == 'win64' ]; then
  860. #sudo dpkg --add-architecture i386
  861. #sudo apt-get update -qq
  862. #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable
  863. #fi
  864. #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson
  865. #- name: (homebrew) Set up dependencies
  866. #if: ${{ matrix.installer == 'homebrew' }}
  867. #run: |
  868. #brew install cmake git jq meson
  869. #- name: (apt) Cache debian packages
  870. #if: ${{ matrix.installer == 'apt' }}
  871. #run: |
  872. #mkdir -p ~/PawPawBuilds/debs
  873. #sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/
  874. #- name: Run bootstrap
  875. #shell: bash
  876. #run: |
  877. #if [ '${{ matrix.target }}' == 'wasm' ]; then \
  878. #source ~/PawPawBuilds/emsdk/emsdk_env.sh; \
  879. #fi
  880. #./bootstrap-cardinal.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }}
  881. #modaudio:
  882. #strategy:
  883. #matrix:
  884. #include:
  885. #- name: linux-x86_64
  886. #installer: apt
  887. #os: ubuntu-22.04
  888. #target: win64
  889. #- name: macos-universal-10.15
  890. #installer: homebrew
  891. #os: macos-11
  892. #target: macos-universal-10.15
  893. #- name: win64
  894. #installer: apt
  895. #os: ubuntu-22.04
  896. #target: win64
  897. #runs-on: ${{ matrix.os }}
  898. #steps:
  899. #- uses: actions/checkout@v3
  900. #- name: Set up cache
  901. #uses: actions/cache@v3
  902. #with:
  903. #path: |
  904. #~/PawPawBuilds
  905. #key: carla-${{ matrix.target }}-v${{ env.CACHE_VERSION }}
  906. #- name: (apt) Restore debian package cache
  907. #if: ${{ matrix.installer == 'apt' }}
  908. #run: |
  909. #if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \
  910. #sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \
  911. #fi
  912. #- name: (apt) Fix GitHub's mess
  913. #if: ${{ matrix.installer == 'apt' }}
  914. #run: |
  915. #sudo rm /etc/apt/sources.list.d/*.list
  916. #sudo apt-get update -qq
  917. #sudo apt-get purge -yqq git-man libclang* libgbm* libllvm* libmono* libnginx* moby* mono* msbuild* nginx* perl php* libgdiplus libpcre2-posix3 libselinux1-dev libzip4
  918. #sudo apt-get install -yqq --allow-downgrades git/jammy
  919. #- name: (apt) Set up dependencies (apt)
  920. #if: ${{ matrix.installer == 'apt' }}
  921. #run: |
  922. #sudo apt-get update -qq
  923. ## extra, for using system libraries
  924. #if [ '${{ matrix.target }}' == 'linux-aarch64' ]; then
  925. #sudo dpkg --add-architecture arm64
  926. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  927. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  928. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-arm64.list
  929. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  930. #echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
  931. #sudo apt-get update -qq
  932. #sudo apt-get install -yqq --allow-downgrades g++-aarch64-linux-gnu libasound2-dev:arm64 libatomic1:arm64 libc6:arm64 libdbus-1-dev:arm64 libgcc-s1:arm64 libgl1-mesa-dev:arm64 libglib2.0-dev:arm64 liblo-dev:arm64 libstdc++6:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 gperf qemu-user-static
  933. #elif [ '${{ matrix.target }}' == 'linux-armhf' ]; then
  934. #sudo dpkg --add-architecture armhf
  935. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  936. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  937. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-armhf.list
  938. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  939. #echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
  940. #sudo apt-get update -qq
  941. #sudo apt-get install -yqq --allow-downgrades g++-arm-linux-gnueabihf libasound2-dev:armhf libatomic1:armhf libc6:armhf libdbus-1-dev:armhf libgcc-s1:armhf libgl1-mesa-dev:armhf libglib2.0-dev:armhf liblo-dev:armhf libstdc++6:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf gperf qemu-user-static
  942. #elif [ '${{ matrix.target }}' == 'linux-i686' ]; then
  943. #sudo dpkg --add-architecture i386
  944. #sudo apt-get update -qq
  945. #sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libsdl2-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 gperf
  946. #elif [ '${{ matrix.target }}' == 'linux-riscv64' ]; then
  947. #sudo dpkg --add-architecture riscv64
  948. #sudo sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
  949. #sudo sed -i "s/deb mirror/deb [arch=amd64] mirror/" /etc/apt/sources.list
  950. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/ports-riscv64.list
  951. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
  952. #echo "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-riscv64.list
  953. #sudo apt-get update -qq
  954. #sudo apt-get install -yqq g++-riscv64-linux-gnu libasound2-dev:riscv64 libdbus-1-dev:riscv64 libgl1-mesa-dev:riscv64 libglapi-mesa:riscv64 libglvnd0:riscv64 libglib2.0-dev:riscv64 libsdl2-dev:riscv64 libx11-dev:riscv64 libxcursor-dev:riscv64 libxext-dev:riscv64 libxrandr-dev:riscv64 gperf qemu-user-static
  955. #elif [ '${{ matrix.target }}' == 'linux-x86_64' ]; then
  956. #sudo apt-get install -yqq --allow-downgrades libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev gperf
  957. #elif [ '${{ matrix.target }}' == 'wasm' ]; then
  958. #sudo apt-get install -yqq --allow-downgrades autoconf automake git gperf
  959. #fi
  960. ## extra, for wasm
  961. #if [ '${{ matrix.target }}' == 'wasm' ]; then
  962. #[ -e ~/PawPawBuilds/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/PawPawBuilds/emsdk
  963. #cd ~/PawPawBuilds/emsdk && ./emsdk install latest && ./emsdk activate latest
  964. #fi
  965. ## extra, for win32
  966. #if [ '${{ matrix.target }}' == 'win32' ]; then
  967. #sudo dpkg --add-architecture i386
  968. #sudo apt-get update -qq
  969. #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 gperf wine-stable
  970. #fi
  971. ## extra, for win64
  972. #if [ '${{ matrix.target }}' == 'win64' ]; then
  973. #sudo dpkg --add-architecture i386
  974. #sudo apt-get update -qq
  975. #sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 gperf wine-stable
  976. #fi
  977. #sudo apt-get install -yqq --allow-downgrades autoconf automake autopoint build-essential curl cmake git jq meson
  978. #- name: (homebrew) Set up dependencies
  979. #if: ${{ matrix.installer == 'homebrew' }}
  980. #run: |
  981. #brew install cmake git jq meson
  982. #- name: (apt) Cache debian packages
  983. #if: ${{ matrix.installer == 'apt' }}
  984. #run: |
  985. #mkdir -p ~/PawPawBuilds/debs
  986. #sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/
  987. #- name: Run bootstrap
  988. #shell: bash
  989. #run: |
  990. #./bootstrap-mod.sh ${{ matrix.target }} && ./.cleanup.sh ${{ matrix.target }}