|
|
@@ -70,7 +70,7 @@ jobs: |
|
|
|
- sanitizer: "memory" |
|
|
|
configenv: "CC=clang CXX=clang++" |
|
|
|
sanitizer_cflags: "-fsanitize=memory -fsanitize-memory-track-origins=2" |
|
|
|
config: "--without-pcaudiolib --without-sonic" |
|
|
|
config: "-DUSE_LIBPCAUDIO:BOOL=OFF -DUSE_LIBSONIC:BOOL=OFF" |
|
|
|
sanitize_env: "MSAN_OPTIONS=exitcode=42" |
|
|
|
|
|
|
|
- sanitizer: "thread" |
|
|
@@ -81,7 +81,7 @@ jobs: |
|
|
|
sanitize_env: "UBSAN_OPTIONS=halt_on_error=1" |
|
|
|
|
|
|
|
- sanitizer: "valgrind" |
|
|
|
sanitize_env: 'VALGRIND="libtool --mode=execute valgrind --track-origins=yes --leak-check=full --error-exitcode=1"' |
|
|
|
sanitize_env: 'VALGRIND="valgrind --track-origins=yes --leak-check=full --error-exitcode=1"' |
|
|
|
|
|
|
|
exclude: |
|
|
|
- os: macos |
|
|
@@ -183,7 +183,7 @@ jobs: |
|
|
|
sudo apt-get install ronn kramdown python3 |
|
|
|
- name: apt-arch-deps |
|
|
|
if: matrix.os == 'ubuntu' && matrix.cross == 'no' |
|
|
|
run: "sudo apt-get install libtool-bin valgrind g++-12-multilib linux-libc-dev:${{ matrix.arch }} libpcaudio-dev:${{ matrix.arch }} libsonic-dev:${{ matrix.arch }} libstdc++-12-dev:${{ matrix.arch }} libc6-dbg:${{ matrix.arch }}" |
|
|
|
run: "sudo apt-get install cmake valgrind g++-12-multilib linux-libc-dev:${{ matrix.arch }} libpcaudio-dev:${{ matrix.arch }} libsonic-dev:${{ matrix.arch }} libstdc++-12-dev:${{ matrix.arch }} libc6-dbg:${{ matrix.arch }}" |
|
|
|
- name: apt-cross-deps |
|
|
|
if: matrix.cross == 'yes' |
|
|
|
run: sudo apt-get install qemu-user g++-12-${{ matrix.arch }}-${{ matrix.sys }} |
|
|
@@ -194,8 +194,7 @@ jobs: |
|
|
|
# MacOS - dependencies |
|
|
|
- name: brew-deps |
|
|
|
if: matrix.os == 'macos' |
|
|
|
run: brew install libtool automake ronn OJFord/homebrew-formulae/kramdown && |
|
|
|
brew install --HEAD anarchivist/espeak-ng/waywardgeek-sonic |
|
|
|
run: brew install cmake ronn OJFord/homebrew-formulae/kramdown |
|
|
|
- name: brew-compile-deps |
|
|
|
if: matrix.os == 'macos' && matrix.compiler == 'gcc' |
|
|
|
run: brew install gcc@12 |
|
|
@@ -204,11 +203,6 @@ jobs: |
|
|
|
- uses: actions/checkout@v3 |
|
|
|
|
|
|
|
# Configure |
|
|
|
- name: autoconf |
|
|
|
run: | |
|
|
|
./autogen.sh |
|
|
|
chmod -x INSTALL m4/*.m4 |
|
|
|
|
|
|
|
- name: configure |
|
|
|
run: | |
|
|
|
[ 'x${{ matrix.compiler }}' = 'xgcc' ] && export CC="${{ matrix.ccarch }}-${{ matrix.sys }}-gcc-12" |
|
|
@@ -218,19 +212,21 @@ jobs: |
|
|
|
[ 'x${{ matrix.cross }}' = 'xyes' ] && export LD="${{ matrix.ccarch }}-${{ matrix.sys }}-ld" |
|
|
|
export CFLAGS="-g -Og -fno-omit-frame-pointer ${{ matrix.compiler_flags }} ${{ matrix.sanitizer_cflags }} ${{ matrix.archcflags }}" |
|
|
|
export CXXFLAGS="-g -Og -fno-omit-frame-pointer ${{ matrix.compiler_flags }} ${{ matrix.sanitizer_cflags }} ${{ matrix.archcflags }}" |
|
|
|
./configure --host=${{ matrix.arch }}-${{ matrix.sys }} ${{ matrix.config }} |
|
|
|
cmake -Bbuild ${{ matrix.config }} -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} -DUSE_ASYNC:BOOL=OFF |
|
|
|
|
|
|
|
- name: config-failed-upload |
|
|
|
if: ${{ failure() }} |
|
|
|
uses: actions/upload-artifact@v3 |
|
|
|
with: |
|
|
|
name: config-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.compiler }}-${{ matrix.sanitizer }}.log |
|
|
|
path: config.log |
|
|
|
name: cmake-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.compiler }}-${{ matrix.sanitizer }}-builddir |
|
|
|
path: build |
|
|
|
|
|
|
|
# Build and test |
|
|
|
- name: make-binary |
|
|
|
run: make src/speak-ng src/espeak-ng |
|
|
|
run: cmake --build build --target espeak-ng |
|
|
|
- name: make-data |
|
|
|
run: ${{ matrix.sanitize_env }} ${{ matrix.runenv }} make all-am |
|
|
|
run: ${{ matrix.sanitize_env }} ${{ matrix.runenv }} cmake --build build --target data |
|
|
|
- name: test |
|
|
|
run: ${{ matrix.sanitize_env }} ${{ matrix.runenv }} make check |
|
|
|
run: | |
|
|
|
${{ matrix.sanitize_env }} ${{ matrix.runenv }} cmake --build build --target tests |
|
|
|
${{ matrix.sanitize_env }} ${{ matrix.runenv }} ctest --test-dir build -Ttest -j1 --output-on-failure |