name: Build on: push: pull_request: env: BUILD_TYPE: Release jobs: linux: runs-on: ubuntu-20.04 name: ๐Ÿง Ubuntu 20.04 steps: - name: ๐Ÿงฐ Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: โฌ‡๏ธ Install dependencies run: | sudo apt-get update sudo apt-get install -y \ build-essential \ gcc-10 \ g++-10 \ pkg-config \ cmake \ make \ libglfw3-dev \ libglm-dev \ libmagic-dev \ libssl-dev \ libcapstone-dev \ python3-dev \ libfreetype-dev \ - name: โœ‹ Build run: | mkdir build cd build CC=gcc-10 CXX=g++-10 cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. make -j 4 - name: ๐Ÿ“ฆ Upload ELF uses: actions/upload-artifact@v2 with: name: Linux ELF path: build/imhex win: runs-on: windows-latest strategy: fail-fast: false matrix: include: - { msystem: MINGW64, arch: x86_64 } #- { msystem: MINGW32, arch: i686 } # currently fail name: ๐ŸŸฆ ${{ matrix.msystem }} ยท ${{ matrix.arch }} defaults: run: shell: msys2 {0} env: MINGW_INSTALLS: ${{ matrix.msystem }} steps: - name: ๐Ÿงฐ Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: โฌ‡๏ธ Install dependencies uses: msys2/setup-msys2@v2 with: msystem: ${{ matrix.msystem }} update: true install: > mingw-w64-${{ matrix.arch }}-gcc mingw-w64-${{ matrix.arch }}-cmake mingw-w64-${{ matrix.arch }}-make mingw-w64-${{ matrix.arch }}-capstone mingw-w64-${{ matrix.arch }}-glfw mingw-w64-${{ matrix.arch }}-glm mingw-w64-${{ matrix.arch }}-file mingw-w64-${{ matrix.arch }}-openssl mingw-w64-${{ matrix.arch }}-polly mingw-w64-${{ matrix.arch }}-python mingw-w64-${{ matrix.arch }}-dlfcn mingw-w64-${{ matrix.arch }}-freetype - name: โœ‹ Build run: | mkdir build cd build # Get path to mingw python library PYTHON_LIB_NAME=$(pkg-config --libs-only-l python3 | sed 's/^-l//') PYTHON_LIB_PATH=$(cygpath -m $(which lib${PYTHON_LIB_NAME}.dll)) # Get path to magic db MAGICDB_PATH=$(cygpath -m $(file --version | grep -oP "(?<=magic file from ).+")) echo Python_LIBRARY: $PYTHON_LIB_PATH echo MagicDB Path: $MAGICDB_PATH cmake -G "MinGW Makefiles" \ -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -DCMAKE_INSTALL_PREFIX="$PWD/install" \ -DCREATE_PACKAGE=ON \ -DPython_LIBRARY="$PYTHON_LIB_PATH" \ -DEXTRA_MAGICDBS="$MAGICDB_PATH" \ .. mingw32-make -j4 mingw32-make install cpack - name: ๐Ÿ“ฆ Upload Portable ZIP uses: actions/upload-artifact@v2 with: name: Windows Portable ZIP path: | build/install/* - name: ๐Ÿ“ฆ Upload Windows Installer uses: actions/upload-artifact@v2 with: name: Windows Installer path: | build/*.msi macos-build: runs-on: macos-11.0 name: ๐ŸŽ macOS 11.0 steps: - name: ๐Ÿงฐ Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: โฌ‡๏ธ Install dependencies run: | brew bundle --no-lock --file dist/Brewfile - name: โœ‹ Build run: | mkdir build cd build CC=$(brew --prefix llvm)/bin/clang CXX=$(brew --prefix llvm)/bin/clang++ PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig":"$(brew --prefix)/lib/pkgconfig" cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCREATE_BUNDLE=ON -DCREATE_PACKAGE=ON .. make -j 4 package - name: ๐Ÿ“ฆ Upload DMG uses: actions/upload-artifact@v2 with: name: macOS DMG path: build/*.dmg