1
1
name : Compile
2
2
on :
3
+ pull_request : {}
3
4
push :
4
- tags :
5
- - ' * '
5
+ branches :
6
+ - main
6
7
jobs :
7
8
8
9
build-windows :
31
32
- name : Build LLVM
32
33
run : |
33
34
cd thirdparty/llvm-project/llvm
34
- cmake -Bbuild -DLLVM_USE_CRT_DEBUG=MDd -DLLVM_USE_CRT_RELEASE=MD -DLLVM_BUILD_TESTS=Off -DCMAKE_INSTALL_PREFIX="./llvm" -Thost=x64 -DLLVM_ENABLE_ZLIB=off
35
+ cmake -Bbuild -DLLVM_USE_CRT_DEBUG=MDd -DLLVM_USE_CRT_RELEASE=MD -DLLVM_BUILD_TESTS=Off -DCMAKE_INSTALL_PREFIX="./llvm" -Thost=x64 -DLLVM_ENABLE_ZLIB=off -DLLVM_OPTIMIZED_TABLEGEN=ON
35
36
msbuild build/LLVM.sln /property:Configuration=Release
36
37
37
38
- name : Build TD-Faust (Release)
47
48
move ${{ github.workspace }}/Plugins/TD-Faust.dll TD-Faust_dist
48
49
move ${{ github.workspace }}/Plugins/faust.dll TD-Faust_dist
49
50
cp ${{ github.workspace }}/thirdparty/libsndfile-1.0.31-win64/bin/sndfile.dll TD-Faust_dist
51
+ cp -v -r ${{ github.workspace }}/Plugins/faustlibraries TD-Faust_dist
52
+ Remove-Item -Recurse -Force "TD-Faust_dist/faustlibraries/.git"
50
53
tar.exe -c -f TD-Faust-${{ matrix.os }}.zip TD-Faust_dist
51
54
52
55
- name : Upload artifact
@@ -61,62 +64,94 @@ jobs:
61
64
include :
62
65
- name : macos-x86_64
63
66
os : macos-latest
67
+
68
+ runs-on : macos-latest
69
+ steps :
70
+ - uses : actions/checkout@v2
71
+ with :
72
+ submodules : true
73
+
74
+ - name : Build Everything
75
+ run : |
76
+ sh -v build_macos.sh
77
+
78
+ - name : Make distribution
79
+ run : |
80
+ rm -rf Plugins/faustlibraries/.git
81
+ zip -r TD-Faust-${{ matrix.name }}.zip Plugins
82
+
83
+ - name : Upload artifact
84
+ uses : actions/upload-artifact@v2
85
+ with :
86
+ name : my-artifact-${{ matrix.name }}
87
+ path : TD-Faust-${{ matrix.name }}.zip
88
+
89
+ build-ubuntu :
90
+ strategy :
91
+ matrix :
92
+ include :
93
+ - name : ubuntu-x86_64
94
+ theContainer : docker://quay.io/pypa/manylinux2014_x86_64
95
+ os : ubuntu-latest
64
96
cmake-options : >-
65
97
-DCMAKE_BUILD_TYPE=Release
66
98
-DCMAKE_VERBOSE_MAKEFILE=ON
67
- -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15
68
- -DCMAKE_OSX_ARCHITECTURES="x86_64"
69
99
llvm-options : >-
70
100
-DLLVM_TARGETS_TO_BUILD="X86"
71
- -DLLVM_DEFAULT_TARGET_TRIPLE="x86_64-apple-darwin19.6.0"
72
- # # todo: we can't build arm64 LLVM yet on GitHub
73
- # # because the compiling procedure involves
74
- # # running what we compile?
75
- # # /bin/sh: ../../../bin/llvm-tblgen: Bad CPU type in executable
76
- # - name: macos-arm64
77
- # os: macos-latest
78
- # cmake-options: >-
79
- # -DCMAKE_BUILD_TYPE=Release
80
- # -DCMAKE_VERBOSE_MAKEFILE=ON
81
- # -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15
82
- # -DCMAKE_OSX_ARCHITECTURES="arm64"
83
- # llvm-options: >-
84
- # -DLLVM_TARGETS_TO_BUILD="AArch64"
85
- # -DLLVM_DEFAULT_TARGET_TRIPLE="arm64-apple-darwin19.6.0"
86
- runs-on : macos-latest
101
+ -DLLVM_DEFAULT_TARGET_TRIPLE="x86_64-linux-gnu"
102
+ - name : ubuntu-aarch64
103
+ theContainer : docker://quay.io/pypa/manylinux2014_aarch64
104
+ os : ubuntu-latest
105
+ cmake-options : >-
106
+ -DCMAKE_BUILD_TYPE=Release
107
+ -DCMAKE_VERBOSE_MAKEFILE=ON
108
+ llvm-options : >-
109
+ -DLLVM_TARGETS_TO_BUILD="AArch64"
110
+ -DLLVM_DEFAULT_TARGET_TRIPLE="aarch64-linux-gnu"
111
+
112
+ runs-on : ubuntu-latest
87
113
steps :
88
114
- uses : actions/checkout@v2
89
115
with :
90
116
submodules : true
117
+ - name : Set up QEMU for aarch64 on Linux
118
+ if : runner.os == 'Linux'
119
+ uses : docker/setup-qemu-action@v1
120
+ with :
121
+ platforms : all
91
122
123
+ - name : Checkout ncurses
124
+ uses : actions/checkout@v2
125
+ with :
126
+ repository : mirror/ncurses
127
+ path : ncurses
128
+
129
+ - name : ncurses install
130
+ run : |
131
+ cd ncurses
132
+ ./configure --prefix=/usr/local/ncurses/6_3 --with-shared --with-pkg-config-libdir=/usr/local/ncurses/6_3/lib/pkgconfig --enable-pc-files
133
+ make
134
+ sudo make install
92
135
- name : Build libsndfile
93
- # brew install autoconf autogen automake flac libogg libtool libvorbis opus mpg123 pkg-config speex
94
136
run : |
95
137
cd thirdparty/libsndfile
96
- mkdir build && cd build
97
- cmake .. -G "Unix Makefiles" ${{matrix.cmake-options}} -DENABLE_EXTERNAL_LIBS=off
98
- cmake --build . --config Release
99
-
138
+ cmake -Bbuild -G "Unix Makefiles" ${{matrix.cmake-options}} -DENABLE_EXTERNAL_LIBS=off
139
+ cmake --build build --config Release
100
140
- name : Build LLVM
101
141
run : |
102
142
cd thirdparty/llvm-project/llvm
103
- cmake -Bbuild -DCMAKE_INSTALL_PREFIX="./llvm" ${{matrix.cmake-options}} ${{matrix.llvm-options}} -DLLVM_ENABLE_ZLIB=off
104
- cmake --build build
143
+ cmake -Bbuild -DCMAKE_INSTALL_PREFIX="./llvm" ${{matrix.cmake-options}} ${{matrix.llvm-options}} -DLLVM_ENABLE_ZLIB=off -DLLVM_OPTIMIZED_TABLEGEN=ON
144
+ cmake --build build --config Release
105
145
106
146
- name : Use CMake for TD-Faust
107
147
run : |
108
- cmake -Bbuild -G "Xcode" ${{matrix.cmake-options}} -DUSE_LLVM_CONFIG=off -DCMAKE_PREFIX_PATH=${{ github.workspace }}/thirdparty/llvm-project/llvm/build/lib/cmake/llvm -DSndFile_DIR=${{ github.workspace }}/thirdparty/libsndfile/build
109
- cmake -Bbuild -G "Xcode" ${{matrix.cmake-options}} -DUSE_LLVM_CONFIG=off -DCMAKE_PREFIX_PATH=${{ github.workspace }}/thirdparty/llvm-project/llvm/build/lib/cmake/llvm -DSndFile_DIR=${{ github.workspace }}/thirdparty/libsndfile/build
110
- - name : Build TD-Faust (Release)
111
- run : |
112
- xcodebuild -configuration Release -project build/TD-Faust.xcodeproj
113
- install_name_tool -change @rpath/libfaust.2.dylib @loader_path/../../../libfaust.2.dylib Release/TD-Faust.plugin/Contents/MacOS/TD-Faust
114
-
148
+ cmake -Bbuild -DUSE_LLVM_CONFIG=off -DCMAKE_PREFIX_PATH="$PWD/thirdparty/llvm-project/llvm/build/lib/cmake/llvm;/usr/local/ncurses/6_3/lib/pkgconfig" -DSndFile_DIR=$PWD/thirdparty/libsndfile/build -DCURSES_LIBRARY=/usr/local/ncurses/6_3/lib -DCURSES_INCLUDE_PATH=/usr/local/ncurses/6_3/include/ncurses
149
+ cmake -Bbuild -DUSE_LLVM_CONFIG=off -DCMAKE_PREFIX_PATH="$PWD/thirdparty/llvm-project/llvm/build/lib/cmake/llvm;/usr/local/ncurses/6_3/lib/pkgconfig" -DSndFile_DIR=$PWD/thirdparty/libsndfile/build -DCURSES_LIBRARY=/usr/local/ncurses/6_3/lib -DCURSES_INCLUDE_PATH=/usr/local/ncurses/6_3/include/ncurses
150
+ cmake --build build --config Release
115
151
- name : Make distribution
116
152
run : |
117
153
mkdir TD-Faust_dist
118
- cp ${{ github.workspace }}/thirdparty/faust/build/lib/Release/libfaust.2.dylib TD-Faust_dist
119
- mv ${{ github.workspace }}/Release/TD-Faust.plugin TD-Faust_dist
154
+ cp -v -r thirdparty/faust/build/lib TD-Faust_dist
120
155
zip -r TD-Faust-${{ matrix.name }}.zip TD-Faust_dist
121
156
122
157
- name : Upload artifact
@@ -127,7 +162,7 @@ jobs:
127
162
128
163
create-release :
129
164
if : startsWith(github.ref, 'refs/tags/v')
130
- needs : [build-windows, build-macos]
165
+ needs : [build-windows, build-macos, build-ubuntu ]
131
166
runs-on : ubuntu-latest
132
167
name : " Create Release on GitHub"
133
168
steps :
0 commit comments