Skip to content

Commit

Permalink
Test build aarch64
Browse files Browse the repository at this point in the history
  • Loading branch information
tunmx committed May 7, 2024
1 parent 2daa715 commit d7244a6
Show file tree
Hide file tree
Showing 6 changed files with 97 additions and 7 deletions.
75 changes: 75 additions & 0 deletions .github/workflows/linux-armv7-aarch64.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Build Linux-Ubuntu-x86

# Trigger the workflow when pushing tags that match the pattern "v*"
#on:
# push:
# tags:
# - "v*"

#on:
# push:
# branches: ["master"]
# pull_request:
# branches: ["master"]

on:
push:
branches: ["feature/aarch64"]

# Set the global GitHub token environment variable
env:
GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }}

jobs:
build:
name: Compile and Package SDKs
runs-on: ubuntu-latest

steps:
# Step 1: Checkout the repository
- name: Checkout Repository
uses: actions/checkout@v4

# Step 2: Synchronize and update submodules recursively
- name: Update submodules
run: |
git submodule sync --recursive # Ensure submodule paths are up-to-date
git submodule update --init --recursive # Initialize and update all submodules
# Step 3: Install wget and xz-utils
- name: Install wget and xz-utils
run: |
sudo apt-get update
sudo apt-get install -y wget xz-utils
# Step 4: Download Toolchain
- name: Download and Extract Linaro Toolchain
run: |
mkdir -p /opt/linaro-toolchain
wget -qO- https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz | tar -xJ -C /opt/linaro-toolchain --strip-components=1
# Step 5: Install Toolchain
- name: Set environment variables
run: |
echo "ARM_CROSS_COMPILE_TOOLCHAIN=/opt/linaro-toolchain" >> $GITHUB_ENV
echo "PATH=/opt/linaro-toolchain/bin:${PATH}" >> $GITHUB_ENV
# Step 6: Start building the SDK
- name: Start Building the InspireFace-Linux-aarch64
run: |
bash command/build_cross_aarch64.sh
ls build
# Step 7: Zip SDK directory
- name: Zip SDK directory
run: |
zip -r inspireface-linux-aarch64.zip build/inspireface-linux-aarch64
stat inspireface-linux-aarch64.zip
# Step 8: Upload the zipped SDK files for the next job
- name: Upload SDK Artifacts
uses: actions/upload-artifact@v2
with:
name: sdk_files
path: |
inspireface-linux-aarch64.zip
2 changes: 1 addition & 1 deletion .github/workflows/linux-armv7-armhf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
echo "PATH=/opt/linaro-toolchain/bin:${PATH}" >> $GITHUB_ENV
# Step 6: Start building the SDK
- name: Start Building the InspireFace-Linux-x86
- name: Start Building the InspireFace-Linux-armv7
run: |
bash command/build_cross_armv7_armhf.sh
ls build
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linux-armv7-rv1109rv1126-armhf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
echo "PATH=/opt/linaro-toolchain/bin:${PATH}" >> $GITHUB_ENV
# Step 6: Start building the SDK
- name: Start Building the InspireFace-Linux-x86
- name: Start Building the InspireFace-Linux-armv7-rv1109rv1126
run: |
bash command/build_cross_rv1109rv1126_armhf.sh
ls build
Expand Down
9 changes: 5 additions & 4 deletions command/build_cross_aarch64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,13 @@ cd ${BUILD_FOLDER_PATH}
cmake -DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSTEM_VERSION=1 \
-DCMAKE_SYSTEM_PROCESSOR=armv7 \
-DCMAKE_C_COMPILER=$ARM_CROSS_COMPILE_TOOLCHAIN/bin/arm-linux-gnueabihf-gcc \
-DCMAKE_CXX_COMPILER=$ARM_CROSS_COMPILE_TOOLCHAIN/bin/arm-linux-gnueabihf-g++ \
-DCMAKE_SYSTEM_PROCESSOR=aarch64 \
-DCMAKE_C_COMPILER=$ARM_CROSS_COMPILE_TOOLCHAIN/bin/aarch64-linux-gnu-gcc \
-DCMAKE_CXX_COMPILER=$ARM_CROSS_COMPILE_TOOLCHAIN/bin/aarch64-linux-gnu-g++ \
-DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -flax-vector-conversions" \
-DTARGET_PLATFORM=armlinux \
-DISF_BUILD_LINUX_ARM7=ON \
-DISF_BUILD_LINUX_AARCH64=ON \
-DISF_BUILD_LINUX_ARM7=OFF \
-DISF_BUILD_WITH_SAMPLE=OFF \
-DISF_BUILD_WITH_TEST=OFF \
-DISF_ENABLE_BENCHMARK=OFF \
Expand Down
6 changes: 5 additions & 1 deletion cpp/inspireface/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,12 @@ set(NEED_INCLUDE . ${MNN_INCLUDE_DIRS})
if (ISF_ENABLE_RKNN)
set(NEED_INCLUDE ${NEED_INCLUDE} ${ISF_RKNN_API_INCLUDE_DIRS})
endif ()

if (ISF_BUILD_LINUX_ARM7)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon")
endif()

if (ISF_BUILD_LINUX_ARM7 OR ISF_BUILD_LINUX_AARCH64)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon")
set(NEED_INCLUDE ${NEED_INCLUDE} ${OpenCV_STATIC_INCLUDE_DIR})
endif ()

Expand Down
10 changes: 10 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,13 @@ services:
volumes:
- .:/workspace # Mount the project root directory to the container
command: bash command/build_cross_armv7_armhf.sh
build-cross-aarch64:
build:
context: .
dockerfile: docker/Dockerfile.arm-linux-aarch64 # Use the arm-linux-gnueabihf tool chain
environment:
- VERSION=${VERSION}
working_dir: /workspace
volumes:
- .:/workspace # Mount the project root directory to the container
command: bash command/build_cross_aarch64.sh

0 comments on commit d7244a6

Please sign in to comment.