[WORKFLOW]: CI Update

This commit is contained in:
2025-12-21 22:24:23 +05:30
parent d828fd6cb9
commit 41460c4f55
15 changed files with 69 additions and 62 deletions

View File

@ -2,8 +2,9 @@ include(FetchContent)
set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "Force static libs")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=int-conversion")
add_compile_definitions(-D_ITERATOR_DEBUG_LEVEL=0)
find_package(OpenSSL REQUIRED)
find_package(zstd REQUIRED)
find_package(ZLIB REQUIRED)
FetchContent_Declare(
httplib
@ -37,23 +38,6 @@ FetchContent_Declare(
EXCLUDE_FROM_ALL
)
FetchContent_Declare(
ZLIB
GIT_REPOSITORY https://github.com/zlib-ng/zlib-ng.git
GIT_TAG 2.3.2
SYSTEM
EXCLUDE_FROM_ALL
)
FetchContent_Declare(
zstd
GIT_REPOSITORY https://github.com/facebook/zstd.git
GIT_TAG v1.5.7
SOURCE_SUBDIR build/cmake
SYSTEM
EXCLUDE_FROM_ALL
)
FetchContent_Declare(
mimalloc
GIT_REPOSITORY https://github.com/microsoft/mimalloc.git
@ -100,14 +84,4 @@ set(HTTPLIB_REQUIRE_OPENSSL OFF CACHE BOOL "" FORCE)
set(HTTPLIB_REQUIRE_ZLIB OFF CACHE BOOL "" FORCE)
set(HTTPLIB_NO_EXCEPTIONS ON CACHE BOOL "" FORCE)
set(ZSTD_BUILD_SHARED OFF CACHE BOOL "" FORCE)
set(ZSTD_BUILD_STATIC ON CACHE BOOL "" FORCE)
set(ZLIB_COMPAT ON CACHE BOOL "" FORCE)
set(BUILD_TESTING OFF CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(ZLIB zstd)
FetchContent_MakeAvailable(httplib pugixml nlohmann_json glaze simdjson tl-expected unordered_dense mimalloc)
find_package(OpenSSL REQUIRED)

View File

@ -8,11 +8,8 @@ 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")
string(APPEND CMAKE_C_FLAGS " --gcc-toolchain=/usr -march=armv8-a+simd")
string(APPEND CMAKE_CXX_FLAGS " --gcc-toolchain=/usr -march=armv8-a+simd")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

View File

@ -0,0 +1,5 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR AMD64)
string(APPEND CMAKE_C_FLAGS " -mavx2 -mfma -mxsave -msse4.2")
string(APPEND CMAKE_CXX_FLAGS " -mavx2 -mfma -mxsave -msse4.2")

View File

@ -2,3 +2,6 @@ set(CMAKE_SYSTEM_NAME Emscripten)
set(CMAKE_SYSTEM_PROCESSOR wasm32)
include("$ENV{EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake")
string(APPEND CMAKE_C_FLAGS " -msimd128 -pthread")
string(APPEND CMAKE_CXX_FLAGS " -msimd128 -pthread")

View File

@ -1,13 +1,17 @@
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_C_COMPILER clang-cl)
set(CMAKE_CXX_COMPILER clang-cl)
set(CMAKE_LINKER lld-link)
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)
string(APPEND CMAKE_C_FLAGS " --target=arm64-pc-windows-msvc -fuse-ld=lld-link")
string(APPEND CMAKE_CXX_FLAGS " --target=arm64-pc-windows-msvc -fuse-ld=lld-link")

View File

@ -0,0 +1,9 @@
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR AMD64)
set(CMAKE_C_COMPILER clang-cl)
set(CMAKE_CXX_COMPILER clang-cl)
set(CMAKE_LINKER lld-link)
string(APPEND CMAKE_C_FLAGS " /arch:AVX2 -fuse-ld=lld-link")
string(APPEND CMAKE_CXX_FLAGS " /arch:AVX2 -fuse-ld=lld-link")

View File

@ -3,7 +3,5 @@ set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
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_CXX_FLAGS "-march=armv8-a+simd")
set(VCPKG_C_FLAGS "--gcc-toolchain=/usr -march=armv8-a+simd")
set(VCPKG_CXX_FLAGS " --gcc-toolchain=/usr -march=armv8-a+simd")

View File

@ -5,5 +5,3 @@ set(VCPKG_CMAKE_SYSTEM_NAME Emscripten)
set(VCPKG_C_FLAGS "-msimd128 -pthread")
set(VCPKG_CXX_FLAGS "-msimd128 -pthread")
set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "$ENV{EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake")

View File

@ -3,5 +3,5 @@ set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME Linux)
set(VCPKG_C_FLAGS "-mavx2 -mfma")
set(VCPKG_CXX_FLAGS "-mavx2 -mfma")
set(VCPKG_C_FLAGS "-mavx2 -mfma -mxsave -msse4.2")
set(VCPKG_CXX_FLAGS "-mavx2 -mfma -mxsave -msse4.2")

View File

@ -0,0 +1,7 @@
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME Windows)
set(VCPKG_C_FLAGS "/arch:AVX2")
set(VCPKG_CXX_FLAGS "/arch:AVX2")

View File

@ -13,22 +13,23 @@
"cacheVariables": {
"CMAKE_C_COMPILER": "clang",
"CMAKE_CXX_COMPILER": "clang++",
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"VCPKG_MANIFEST_MODE": "ON",
"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",
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/CMake/Toolchains/${presetName}.cmake"
}
},
{
"name": "linux-x64",
"displayName": "Linux x64 (AVX2)",
"displayName": "Linux x64 (Clang)",
"inherits": "base-common",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-linux-avx2"
"VCPKG_TARGET_TRIPLET": "x64-linux-clang"
}
},
{
"name": "linux-arm64",
"displayName": "Linux ARM64 (Clang/Sysroot)",
"displayName": "Linux ARM64 (Clang Cross)",
"inherits": "base-common",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "arm64-linux-clang"
@ -36,24 +37,26 @@
},
{
"name": "windows-x64",
"displayName": "Windows x64 (AVX2)",
"inherits": "base-common"
"displayName": "Windows x64 (Clang)",
"inherits": "base-common",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-windows-clang"
}
},
{
"name": "windows-arm64",
"displayName": "Windows ARM64 (Cross-Compile)",
"displayName": "Windows ARM64 (Clang Cross)",
"inherits": "base-common",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "arm64-windows-cross",
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/CMake/Toolchains/windows-arm64.cmake"
"VCPKG_TARGET_TRIPLET": "arm64-windows-clang"
}
},
{
"name": "wasm",
"displayName": "WebAssembly (SIMD/Pthreads)",
"displayName": "WebAssembly (Clang)",
"inherits": "base-common",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "wasm32-emscripten-simd"
"VCPKG_TARGET_TRIPLET": "wasm32-emscripten-clang"
}
}
]

View File

@ -22,8 +22,8 @@ target_include_directories(IACore PUBLIC inc/)
target_include_directories(IACore PRIVATE imp/hpp/)
target_link_libraries(IACore PUBLIC
zlibstatic
libzstd_static
ZLIB::ZLIB
zstd::libzstd_static
tl::expected
glaze::glaze
pugixml::pugixml

View File

@ -37,7 +37,7 @@ BOOL TestCRC32()
{
UINT32 result = DataOps::CRC32({});
IAT_CHECK_EQ(result, 0);
IAT_CHECK_EQ(result, 0U);
}
{

9
vcpkg.json Normal file
View File

@ -0,0 +1,9 @@
{
"name": "iacore",
"version": "0.1.0",
"dependencies": [
"openssl",
"zlib-ng",
"zstd"
]
}