name: Build and Test on: [ push, pull_request ] env: BUILD_TYPE: Release jobs: build: strategy: matrix: os: [ windows-latest, ubuntu-latest, macos-latest ] cpu_detection: [ 0, 1 ] fail-fast: false runs-on: ${{matrix.os}} steps: - name: Install build dependencies if: ${{matrix.os == 'ubuntu-latest'}} run: sudo apt-get install llvm ninja-build - name: Install build dependencies if: ${{matrix.os == 'macos-latest'}} run: | brew install llvm ninja echo "/usr/local/opt/llvm/bin" >> $GITHUB_PATH - name: Checkout dynarmic repo uses: actions/checkout@v2 - name: Checkout ext-boost repo uses: actions/checkout@v2 with: repository: MerryMage/ext-boost path: externals/ext-boost - name: Checkout unicorn repo if: ${{matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'}} uses: actions/checkout@v2 with: repository: MerryMage/unicorn path: externals/unicorn - name: Build unicorn if: ${{matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'}} working-directory: externals/unicorn run: UNICORN_ARCHS=aarch64,arm ./make.sh - name: Configure CMake if: ${{matrix.os == 'ubuntu-latest'}} env: CC: gcc-10 CXX: g++-10 CXXFLAGS: -Wp,-D_GLIBCXX_ASSERTIONS run: > cmake -B ${{github.workspace}}/build -DBoost_INCLUDE_DIRS=${{github.workspace}}/externals/ext-boost -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDYNARMIC_ENABLE_CPU_FEATURE_DETECTION=${{matrix.cpu_detection}} -DDYNARMIC_TESTS_USE_UNICORN=1 -DDYNARMIC_USE_LLVM=1 -DLIBUNICORN_INCLUDE_DIR=${{github.workspace}}/externals/unicorn/include -DLIBUNICORN_LIBRARY=${{github.workspace}}/externals/unicorn/libunicorn.a -G Ninja - name: Configure CMake if: ${{matrix.os == 'macos-latest'}} run: > cmake -B ${{github.workspace}}/build -DBoost_INCLUDE_DIRS=${{github.workspace}}/externals/ext-boost -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDYNARMIC_ENABLE_CPU_FEATURE_DETECTION=${{matrix.cpu_detection}} -DDYNARMIC_TESTS_USE_UNICORN=1 -DDYNARMIC_USE_LLVM=1 -DLIBUNICORN_INCLUDE_DIR=${{github.workspace}}/externals/unicorn/include -DLIBUNICORN_LIBRARY=${{github.workspace}}/externals/unicorn/libunicorn.a -G Ninja - name: Configure CMake if: ${{matrix.os == 'windows-latest'}} run: > cmake -B ${{github.workspace}}/build -DBoost_INCLUDE_DIRS=${{github.workspace}}/externals/ext-boost -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DDYNARMIC_ENABLE_CPU_FEATURE_DETECTION=${{matrix.cpu_detection}} -G "Visual Studio 17 2022" -A x64 - name: Build working-directory: ${{github.workspace}}/build run: cmake --build . --config Release - name: Test env: DYLD_FALLBACK_LIBRARY_PATH: ${{github.workspace}}/externals/unicorn working-directory: ${{github.workspace}}/build run: ctest --extra-verbose -C ${{env.BUILD_TYPE}}