diff --git a/.github/workflows/build-libs.yml b/.github/workflows/build-libs.yml index 6f2850f..1719fe0 100644 --- a/.github/workflows/build-libs.yml +++ b/.github/workflows/build-libs.yml @@ -29,6 +29,9 @@ jobs: - os: ubuntu-latest arch: arm64 lib: libarm64/libFosterPlatform.so + - os: ubuntu-latest + arch: arm32 + lib: libarm/libFosterPlatform.so runs-on: ${{matrix.os}} steps: - name: Checkout @@ -51,12 +54,26 @@ jobs: sudo dpkg --add-architecture arm64 sudo apt-get update sudo apt-get install -y libsdl2-dev:arm64 libwayland-dev:arm64 libegl-dev:arm64 libdrm-dev:arm64 libxkbcommon-dev:arm64 libpulse-dev:arm64 + - name: Setup Linux dependencies (arm32) + if: ${{ runner.os == 'Linux' && matrix.arch == 'arm32' }} + run: | + sudo apt-get update + sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf binutils-arm-linux-gnueabihf + sudo sed -i "s/^deb/deb [arch=amd64,i386]/g" /etc/apt/sources.list + echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ $(lsb_release -s -c) main universe multiverse restricted" | sudo tee -a /etc/apt/sources.list + echo "deb [arch=arm64,armhf] http://ports.ubuntu.com/ $(lsb_release -s -c)-updates main universe multiverse restricted" | sudo tee -a /etc/apt/sources.list + sudo dpkg --add-architecture armhf + sudo apt-get update + sudo apt-get install -y libsdl2-dev:armhf libwayland-dev:armhf libegl-dev:armhf libdrm-dev:armhf libxkbcommon-dev:armhf libpulse-dev:armhf - name: CMake Configure - if: ${{ matrix.arch != 'arm64' }} + if: ${{ matrix.arch != 'arm64' && matrix.arch != 'arm32' }} run: cmake -B build -S Platform - name: CMake Configure (arm64) if: ${{ runner.os == 'Linux' && matrix.arch == 'arm64' }} run: PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig cmake -B build -S Platform -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_SYSTEM_PROCESSOR=aarch64 -DCMAKE_SYSTEM_NAME=Linux + - name: CMake Configure (arm32) + if: ${{ runner.os == 'Linux' && matrix.arch == 'arm32' }} + run: PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig cmake -B build -S Platform -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc -DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ -DCMAKE_SYSTEM_PROCESSOR=armv7l -DCMAKE_SYSTEM_NAME=Linux - name: CMake Build run: cmake --build build --config Release - name: Publish Artifact @@ -91,6 +108,11 @@ jobs: with: name: ubuntu-latest-arm64-build path: Platform/libs/libarm64 + - name: Download ubuntu lib (arm32) + uses: actions/download-artifact@v3 + with: + name: ubuntu-latest-arm32-build + path: Platform/libs/libarm - name: Display structure of libs run: ls -R working-directory: Platform/libs diff --git a/Framework/Foster.Framework.csproj b/Framework/Foster.Framework.csproj index 5498abe..43b953f 100644 --- a/Framework/Foster.Framework.csproj +++ b/Framework/Foster.Framework.csproj @@ -43,6 +43,12 @@ True libFosterPlatform.so + + PreserveNewest + runtimes\linux-arm\native + True + libFosterPlatform.so + PreserveNewest runtimes\osx\native diff --git a/Platform/CMakeLists.txt b/Platform/CMakeLists.txt index eac8179..6f5b410 100644 --- a/Platform/CMakeLists.txt +++ b/Platform/CMakeLists.txt @@ -42,6 +42,10 @@ elseif (WIN32) elseif (UNIX) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") set(FosterTarget libarm64) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l") + set(FosterTarget libarm) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv6l") + set(FosterTarget libarm) else() set(FosterTarget lib64) endif() diff --git a/Platform/libs/libarm/libFosterPlatform.so b/Platform/libs/libarm/libFosterPlatform.so new file mode 100644 index 0000000..8e7fdf2 Binary files /dev/null and b/Platform/libs/libarm/libFosterPlatform.so differ diff --git a/Platform/libs/osx/libFosterPlatform.dylib b/Platform/libs/osx/libFosterPlatform.dylib index 7fdd4be..befe901 100644 Binary files a/Platform/libs/osx/libFosterPlatform.dylib and b/Platform/libs/osx/libFosterPlatform.dylib differ diff --git a/Platform/libs/x64/FosterPlatform.dll b/Platform/libs/x64/FosterPlatform.dll index 13efd11..31781e3 100644 Binary files a/Platform/libs/x64/FosterPlatform.dll and b/Platform/libs/x64/FosterPlatform.dll differ