[WORKFLOW]: CI Update
This commit is contained in:
16
.github/workflows/ci.yaml
vendored
16
.github/workflows/ci.yaml
vendored
@ -15,11 +15,21 @@ jobs:
|
|||||||
container:
|
container:
|
||||||
image: ghcr.io/i-a-s/iabuild-env:latest
|
image: ghcr.io/i-a-s/iabuild-env:latest
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
target: [linux-x64, linux-arm64, windows-x64, windows-arm64, wasm]
|
target: [linux-x64, linux-arm64, windows-x64, windows-arm64, wasm]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Build
|
|
||||||
|
- name: Environment Info
|
||||||
run: |
|
run: |
|
||||||
cmake --preset ${{ matrix.target }}
|
clang --version
|
||||||
cmake --build --preset debug
|
cmake --version
|
||||||
|
ls -R /usr/aarch64-linux-gnu/sys-root | head -n 20
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
|
run: cmake --preset ${{ matrix.target }}
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: cmake --build --preset ${{ matrix.target }} --config Debug
|
||||||
|
|
||||||
|
|||||||
24
CMake/Toolchains/linux-arm64.cmake
Normal file
24
CMake/Toolchains/linux-arm64.cmake
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
set(CMAKE_SYSTEM_NAME Linux)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||||
|
|
||||||
|
set(triple aarch64-linux-gnu)
|
||||||
|
set(CMAKE_C_COMPILER_TARGET ${triple})
|
||||||
|
set(CMAKE_CXX_COMPILER_TARGET ${triple})
|
||||||
|
|
||||||
|
set(CMAKE_SYSROOT /usr/aarch64-linux-gnu/sys-root)
|
||||||
|
set(CMAKE_LIBRARY_ARCHITECTURE aarch64-linux-gnu)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --gcc-toolchain=/usr")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --gcc-toolchain=/usr")
|
||||||
|
|
||||||
|
set(CMAKE_C_FLAGS "-march=armv8-a+simd")
|
||||||
|
set(CMAKE_CXX_FLAGS "-march=armv8-a+simd")
|
||||||
|
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||||
|
|
||||||
|
link_directories(${CMAKE_SYSROOT}/usr/lib64)
|
||||||
|
link_directories(${CMAKE_SYSROOT}/lib64)
|
||||||
|
|
||||||
4
CMake/Toolchains/wasm.cmake
Normal file
4
CMake/Toolchains/wasm.cmake
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
set(CMAKE_SYSTEM_NAME Emscripten)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR wasm32)
|
||||||
|
|
||||||
|
include("$ENV{EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake")
|
||||||
13
CMake/Toolchains/windows-arm64.cmake
Normal file
13
CMake/Toolchains/windows-arm64.cmake
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
set(CMAKE_SYSTEM_NAME Windows)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||||
|
|
||||||
|
set(triple arm64-pc-windows-msvc)
|
||||||
|
set(CMAKE_C_COMPILER_TARGET ${triple})
|
||||||
|
set(CMAKE_CXX_COMPILER_TARGET ${triple})
|
||||||
|
|
||||||
|
set(CMAKE_LINKER lld-link)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld-link")
|
||||||
|
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
@ -3,5 +3,7 @@ set(VCPKG_CRT_LINKAGE dynamic)
|
|||||||
set(VCPKG_LIBRARY_LINKAGE static)
|
set(VCPKG_LIBRARY_LINKAGE static)
|
||||||
set(VCPKG_CMAKE_SYSTEM_NAME Linux)
|
set(VCPKG_CMAKE_SYSTEM_NAME Linux)
|
||||||
|
|
||||||
|
set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/../toolchains/linux-arm64.cmake")
|
||||||
|
|
||||||
set(VCPKG_C_FLAGS "-march=armv8-a+simd")
|
set(VCPKG_C_FLAGS "-march=armv8-a+simd")
|
||||||
set(VCPKG_CXX_FLAGS "-march=armv8-a+simd")
|
set(VCPKG_CXX_FLAGS "-march=armv8-a+simd")
|
||||||
@ -14,8 +14,6 @@
|
|||||||
"CMAKE_C_COMPILER": "clang",
|
"CMAKE_C_COMPILER": "clang",
|
||||||
"CMAKE_CXX_COMPILER": "clang++",
|
"CMAKE_CXX_COMPILER": "clang++",
|
||||||
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
|
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
|
||||||
"WITH_AVX2": "ON",
|
|
||||||
"WITH_NEON": "ON",
|
|
||||||
"VCPKG_OVERLAY_TRIPLETS": "${sourceDir}/CMake/Triplets",
|
"VCPKG_OVERLAY_TRIPLETS": "${sourceDir}/CMake/Triplets",
|
||||||
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
||||||
}
|
}
|
||||||
@ -25,65 +23,37 @@
|
|||||||
"displayName": "Linux x64 (AVX2)",
|
"displayName": "Linux x64 (AVX2)",
|
||||||
"inherits": "base-common",
|
"inherits": "base-common",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_SYSTEM_NAME": "Linux",
|
"VCPKG_TARGET_TRIPLET": "x64-linux-avx2"
|
||||||
"CMAKE_SYSTEM_PROCESSOR": "x86_64",
|
|
||||||
"CMAKE_C_FLAGS": "-mavx2 -mfma",
|
|
||||||
"CMAKE_CXX_FLAGS": "-mavx2 -mfma",
|
|
||||||
"VCPKG_TARGET_TRIPLET": "x64-linux"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "linux-arm64",
|
"name": "linux-arm64",
|
||||||
"displayName": "Linux ARM64 (NEON)",
|
"displayName": "Linux ARM64 (Clang/Sysroot)",
|
||||||
"inherits": "base-common",
|
"inherits": "base-common",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_SYSTEM_NAME": "Linux",
|
"VCPKG_TARGET_TRIPLET": "arm64-linux-clang"
|
||||||
"CMAKE_SYSTEM_PROCESSOR": "aarch64",
|
|
||||||
"CMAKE_C_COMPILER_TARGET": "aarch64-linux-gnu",
|
|
||||||
"CMAKE_CXX_COMPILER_TARGET": "aarch64-linux-gnu",
|
|
||||||
"CMAKE_CXX_FLAGS": "-march=armv8-a+simd",
|
|
||||||
"CMAKE_SYSROOT": "/usr/aarch64-linux-gnu",
|
|
||||||
"VCPKG_TARGET_TRIPLET": "arm64-linux"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "windows-x64",
|
"name": "windows-x64",
|
||||||
"displayName": "Windows x64 (AVX2)",
|
"displayName": "Windows x64 (AVX2)",
|
||||||
"inherits": "base-common",
|
"inherits": "base-common"
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_SYSTEM_NAME": "Windows",
|
|
||||||
"CMAKE_SYSTEM_PROCESSOR": "x86_64",
|
|
||||||
"CMAKE_C_COMPILER": "clang-cl",
|
|
||||||
"CMAKE_CXX_COMPILER": "clang-cl",
|
|
||||||
"CMAKE_CXX_FLAGS": "/arch:AVX2",
|
|
||||||
"VCPKG_TARGET_TRIPLET": "x64-windows"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "windows-arm64",
|
"name": "windows-arm64",
|
||||||
"displayName": "Windows ARM64 (NEON)",
|
"displayName": "Windows ARM64 (Cross-Compile)",
|
||||||
"inherits": "base-common",
|
"inherits": "base-common",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_SYSTEM_NAME": "Windows",
|
"VCPKG_TARGET_TRIPLET": "arm64-windows-cross",
|
||||||
"CMAKE_SYSTEM_PROCESSOR": "aarch64",
|
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/CMake/Toolchains/windows-arm64.cmake"
|
||||||
"CMAKE_C_COMPILER": "clang",
|
|
||||||
"CMAKE_CXX_COMPILER": "clang++",
|
|
||||||
"CMAKE_CXX_FLAGS": "--target=arm64-pc-windows-msvc -fuse-ld=lld-link",
|
|
||||||
"VCPKG_TARGET_TRIPLET": "arm64-windows"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "wasm",
|
"name": "wasm",
|
||||||
"displayName": "WebAssembly (SIMD)",
|
"displayName": "WebAssembly (SIMD/Pthreads)",
|
||||||
"inherits": "base-common",
|
"inherits": "base-common",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_SYSTEM_NAME": "Emscripten",
|
"VCPKG_TARGET_TRIPLET": "wasm32-emscripten-simd"
|
||||||
"CMAKE_SYSTEM_PROCESSOR": "wasm32",
|
|
||||||
"CMAKE_C_COMPILER": "emcc",
|
|
||||||
"CMAKE_CXX_COMPILER": "em++",
|
|
||||||
"VCPKG_TARGET_TRIPLET": "wasm32-emscripten-simd",
|
|
||||||
"VCPKG_HOST_TRIPLET": "x64-linux",
|
|
||||||
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "$env{EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user