154 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
| name: GitHub Actions
 | |
| 
 | |
| on: [push]
 | |
| 
 | |
| jobs:
 | |
|   build:
 | |
|     strategy:
 | |
|       matrix:
 | |
|         name:
 | |
|           [
 | |
|             ubuntu-latest-gcc-autotools,
 | |
|             ubuntu-latest-clang-autotools,
 | |
|             ubuntu-latest-gcc-cmake,
 | |
|             ubuntu-latest-clang-cmake,
 | |
|             macos-latest-clang-autotools,
 | |
|             macos-latest-clang-cmake,
 | |
|             ubuntu-latest-gcc-autotools-64-bit-words,
 | |
|             ubuntu-latest-clang-autotools-64-bit-words,
 | |
|             ubuntu-latest-gcc-cmake-64-bit-words,
 | |
|             ubuntu-latest-clang-cmake-64-bit-words,
 | |
|             macos-latest-clang-autotools-64-bit-words,
 | |
|             macos-latest-clang-cmake-64-bit-words
 | |
|           ]
 | |
|         include:
 | |
|           - name: ubuntu-latest-gcc-autotools
 | |
|             os: ubuntu-latest
 | |
|             cc: gcc
 | |
|             cxx: g++
 | |
|             build-system: autotools
 | |
|             configure-opts: ''
 | |
| 
 | |
|           - name: ubuntu-latest-clang-autotools
 | |
|             os: ubuntu-latest
 | |
|             cc: clang
 | |
|             cxx: clang++
 | |
|             build-system: autotools
 | |
|             configure-opts: ''
 | |
| 
 | |
|           - name: ubuntu-latest-gcc-cmake
 | |
|             os: ubuntu-latest
 | |
|             cc: gcc
 | |
|             cxx: g++
 | |
|             build-system: cmake
 | |
|             configure-opts: ''
 | |
| 
 | |
|           - name: ubuntu-latest-clang-cmake
 | |
|             os: ubuntu-latest
 | |
|             cc: clang
 | |
|             cxx: clang++
 | |
|             build-system: cmake
 | |
|             configure-opts: ''
 | |
| 
 | |
|           - name: macos-latest-clang-autotools
 | |
|             os: macos-latest
 | |
|             cc: clang
 | |
|             cxx: clang++
 | |
|             build-system: autotools
 | |
|             configure-opts: ''
 | |
| 
 | |
|           - name: macos-latest-clang-cmake
 | |
|             os: macos-latest
 | |
|             cc: clang
 | |
|             cxx: clang++
 | |
|             build-system: cmake
 | |
|             configure-opts: ''
 | |
| 
 | |
|           - name: ubuntu-latest-gcc-autotools-64-bit-words
 | |
|             os: ubuntu-latest
 | |
|             cc: gcc
 | |
|             cxx: g++
 | |
|             build-system: autotools
 | |
|             configure-opts: --enable-64-bit-words
 | |
| 
 | |
|           - name: ubuntu-latest-clang-autotools-64-bit-words
 | |
|             os: ubuntu-latest
 | |
|             cc: clang
 | |
|             cxx: clang++
 | |
|             build-system: autotools
 | |
|             configure-opts: --enable-64-bit-words
 | |
| 
 | |
|           - name: ubuntu-latest-gcc-cmake-64-bit-words
 | |
|             os: ubuntu-latest
 | |
|             cc: gcc
 | |
|             cxx: g++
 | |
|             build-system: cmake
 | |
|             configure-opts: -DENABLE_64_BIT_WORDS=ON
 | |
| 
 | |
|           - name: ubuntu-latest-clang-cmake-64-bit-words
 | |
|             os: ubuntu-latest
 | |
|             cc: clang
 | |
|             cxx: clang++
 | |
|             build-system: cmake
 | |
|             configure-opts: -DENABLE_64_BIT_WORDS=ON
 | |
| 
 | |
|           - name: macos-latest-clang-autotools-64-bit-words
 | |
|             os: macos-latest
 | |
|             cc: clang
 | |
|             cxx: clang++
 | |
|             build-system: autotools
 | |
|             configure-opts: --enable-64-bit-words
 | |
| 
 | |
|           - name: macos-latest-clang-cmake-64-bit-words
 | |
|             os: macos-latest
 | |
|             cc: clang
 | |
|             cxx: clang++
 | |
|             build-system: cmake
 | |
|             configure-opts: -DENABLE_64_BIT_WORDS=ON
 | |
| 
 | |
|     runs-on: ${{ matrix.os }}
 | |
| 
 | |
|     steps:
 | |
|       - uses: actions/checkout@v2
 | |
| 
 | |
|       - name: Install MacOS dependencies
 | |
|         if: startsWith(matrix.os,'macos')
 | |
|         run: |
 | |
|           brew update
 | |
|           brew install automake pkg-config libogg          
 | |
| 
 | |
|       - name: Install Lunux dependencies
 | |
|         if: startsWith(matrix.os,'ubuntu')
 | |
|         run: |
 | |
|           sudo apt-get update
 | |
|           sudo apt-get install -y libtool-bin libogg-dev doxygen libxml2-utils w3c-sgml-lib          
 | |
| 
 | |
|       - name: Build with Autotools
 | |
|         if: startsWith(matrix.build-system,'autotools')
 | |
|         env:
 | |
|           CC: ${{ matrix.cc }}
 | |
|           CXX: ${{ matrix.cxx }}
 | |
|         run: |
 | |
|           ./autogen.sh
 | |
|           ./configure ${{ matrix.configure-opts }}
 | |
|           make
 | |
|           make check          
 | |
| 
 | |
|       - name: Build with CMake
 | |
|         if: startsWith(matrix.build-system,'cmake')
 | |
|         env:
 | |
|           CC: ${{ matrix.cc }}
 | |
|           CXX: ${{ matrix.cxx }}
 | |
|         run: |
 | |
|           mkdir cmake-build
 | |
|           cd cmake-build
 | |
|           cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ${{ matrix.configure-opts }} -DCMAKE_FIND_FRAMEWORK=NEVER
 | |
|           cmake --build .
 | |
|           ctest -V          
 | |
| 
 | |
|       - name: Check documentation
 | |
|         if: startsWith(matrix.os,'ubuntu') && startsWith(matrix.build-system,'autotools')
 | |
|         run: |
 | |
|           xmllint --valid --noout doc/html/*.html;
 | |
|           xmllint --valid --noout doc/html/api/*.html;          
 |