[WORKFLOW]: CI Update
This commit is contained in:
@ -2,8 +2,9 @@ include(FetchContent)
|
|||||||
|
|
||||||
set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "Force static libs")
|
set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "Force static libs")
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=int-conversion")
|
find_package(OpenSSL REQUIRED)
|
||||||
add_compile_definitions(-D_ITERATOR_DEBUG_LEVEL=0)
|
find_package(zstd REQUIRED)
|
||||||
|
find_package(ZLIB REQUIRED)
|
||||||
|
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
httplib
|
httplib
|
||||||
@ -37,23 +38,6 @@ FetchContent_Declare(
|
|||||||
EXCLUDE_FROM_ALL
|
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(
|
FetchContent_Declare(
|
||||||
mimalloc
|
mimalloc
|
||||||
GIT_REPOSITORY https://github.com/microsoft/mimalloc.git
|
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_REQUIRE_ZLIB OFF CACHE BOOL "" FORCE)
|
||||||
set(HTTPLIB_NO_EXCEPTIONS ON 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)
|
FetchContent_MakeAvailable(httplib pugixml nlohmann_json glaze simdjson tl-expected unordered_dense mimalloc)
|
||||||
|
|
||||||
find_package(OpenSSL REQUIRED)
|
|
||||||
|
|||||||
@ -8,11 +8,8 @@ set(CMAKE_CXX_COMPILER_TARGET ${triple})
|
|||||||
set(CMAKE_SYSROOT /usr/aarch64-linux-gnu/sys-root)
|
set(CMAKE_SYSROOT /usr/aarch64-linux-gnu/sys-root)
|
||||||
set(CMAKE_LIBRARY_ARCHITECTURE aarch64-linux-gnu)
|
set(CMAKE_LIBRARY_ARCHITECTURE aarch64-linux-gnu)
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --gcc-toolchain=/usr")
|
string(APPEND CMAKE_C_FLAGS " --gcc-toolchain=/usr -march=armv8-a+simd")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --gcc-toolchain=/usr")
|
string(APPEND CMAKE_CXX_FLAGS " --gcc-toolchain=/usr -march=armv8-a+simd")
|
||||||
|
|
||||||
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_PROGRAM NEVER)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
|||||||
5
CMake/Toolchains/linux-x64.cmake
Normal file
5
CMake/Toolchains/linux-x64.cmake
Normal 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")
|
||||||
@ -1,4 +1,7 @@
|
|||||||
set(CMAKE_SYSTEM_NAME Emscripten)
|
set(CMAKE_SYSTEM_NAME Emscripten)
|
||||||
set(CMAKE_SYSTEM_PROCESSOR wasm32)
|
set(CMAKE_SYSTEM_PROCESSOR wasm32)
|
||||||
|
|
||||||
include("$ENV{EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake")
|
include("$ENV{EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake")
|
||||||
|
|
||||||
|
string(APPEND CMAKE_C_FLAGS " -msimd128 -pthread")
|
||||||
|
string(APPEND CMAKE_CXX_FLAGS " -msimd128 -pthread")
|
||||||
|
|||||||
@ -1,13 +1,17 @@
|
|||||||
set(CMAKE_SYSTEM_NAME Windows)
|
set(CMAKE_SYSTEM_NAME Windows)
|
||||||
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
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(triple arm64-pc-windows-msvc)
|
||||||
set(CMAKE_C_COMPILER_TARGET ${triple})
|
set(CMAKE_C_COMPILER_TARGET ${triple})
|
||||||
set(CMAKE_CXX_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_PROGRAM NEVER)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE 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")
|
||||||
|
|||||||
9
CMake/Toolchains/windows-x64.cmake
Normal file
9
CMake/Toolchains/windows-x64.cmake
Normal 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")
|
||||||
@ -3,7 +3,5 @@ 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 "--gcc-toolchain=/usr -march=armv8-a+simd")
|
||||||
|
set(VCPKG_CXX_FLAGS " --gcc-toolchain=/usr -march=armv8-a+simd")
|
||||||
set(VCPKG_C_FLAGS "-march=armv8-a+simd")
|
|
||||||
set(VCPKG_CXX_FLAGS "-march=armv8-a+simd")
|
|
||||||
|
|||||||
@ -5,5 +5,3 @@ set(VCPKG_CMAKE_SYSTEM_NAME Emscripten)
|
|||||||
|
|
||||||
set(VCPKG_C_FLAGS "-msimd128 -pthread")
|
set(VCPKG_C_FLAGS "-msimd128 -pthread")
|
||||||
set(VCPKG_CXX_FLAGS "-msimd128 -pthread")
|
set(VCPKG_CXX_FLAGS "-msimd128 -pthread")
|
||||||
|
|
||||||
set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "$ENV{EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake")
|
|
||||||
@ -3,5 +3,5 @@ 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_C_FLAGS "-mavx2 -mfma")
|
set(VCPKG_C_FLAGS "-mavx2 -mfma -mxsave -msse4.2")
|
||||||
set(VCPKG_CXX_FLAGS "-mavx2 -mfma")
|
set(VCPKG_CXX_FLAGS "-mavx2 -mfma -mxsave -msse4.2")
|
||||||
7
CMake/Triplets/x64-windows-clang.cmake
Normal file
7
CMake/Triplets/x64-windows-clang.cmake
Normal 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")
|
||||||
@ -13,22 +13,23 @@
|
|||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_C_COMPILER": "clang",
|
"CMAKE_C_COMPILER": "clang",
|
||||||
"CMAKE_CXX_COMPILER": "clang++",
|
"CMAKE_CXX_COMPILER": "clang++",
|
||||||
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
|
"VCPKG_MANIFEST_MODE": "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",
|
||||||
|
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/CMake/Toolchains/${presetName}.cmake"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "linux-x64",
|
"name": "linux-x64",
|
||||||
"displayName": "Linux x64 (AVX2)",
|
"displayName": "Linux x64 (Clang)",
|
||||||
"inherits": "base-common",
|
"inherits": "base-common",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"VCPKG_TARGET_TRIPLET": "x64-linux-avx2"
|
"VCPKG_TARGET_TRIPLET": "x64-linux-clang"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "linux-arm64",
|
"name": "linux-arm64",
|
||||||
"displayName": "Linux ARM64 (Clang/Sysroot)",
|
"displayName": "Linux ARM64 (Clang Cross)",
|
||||||
"inherits": "base-common",
|
"inherits": "base-common",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"VCPKG_TARGET_TRIPLET": "arm64-linux-clang"
|
"VCPKG_TARGET_TRIPLET": "arm64-linux-clang"
|
||||||
@ -36,24 +37,26 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "windows-x64",
|
"name": "windows-x64",
|
||||||
"displayName": "Windows x64 (AVX2)",
|
"displayName": "Windows x64 (Clang)",
|
||||||
"inherits": "base-common"
|
"inherits": "base-common",
|
||||||
|
"cacheVariables": {
|
||||||
|
"VCPKG_TARGET_TRIPLET": "x64-windows-clang"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "windows-arm64",
|
"name": "windows-arm64",
|
||||||
"displayName": "Windows ARM64 (Cross-Compile)",
|
"displayName": "Windows ARM64 (Clang Cross)",
|
||||||
"inherits": "base-common",
|
"inherits": "base-common",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"VCPKG_TARGET_TRIPLET": "arm64-windows-cross",
|
"VCPKG_TARGET_TRIPLET": "arm64-windows-clang"
|
||||||
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/CMake/Toolchains/windows-arm64.cmake"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "wasm",
|
"name": "wasm",
|
||||||
"displayName": "WebAssembly (SIMD/Pthreads)",
|
"displayName": "WebAssembly (Clang)",
|
||||||
"inherits": "base-common",
|
"inherits": "base-common",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"VCPKG_TARGET_TRIPLET": "wasm32-emscripten-simd"
|
"VCPKG_TARGET_TRIPLET": "wasm32-emscripten-clang"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -22,8 +22,8 @@ target_include_directories(IACore PUBLIC inc/)
|
|||||||
target_include_directories(IACore PRIVATE imp/hpp/)
|
target_include_directories(IACore PRIVATE imp/hpp/)
|
||||||
|
|
||||||
target_link_libraries(IACore PUBLIC
|
target_link_libraries(IACore PUBLIC
|
||||||
zlibstatic
|
ZLIB::ZLIB
|
||||||
libzstd_static
|
zstd::libzstd_static
|
||||||
tl::expected
|
tl::expected
|
||||||
glaze::glaze
|
glaze::glaze
|
||||||
pugixml::pugixml
|
pugixml::pugixml
|
||||||
|
|||||||
@ -37,7 +37,7 @@ BOOL TestCRC32()
|
|||||||
|
|
||||||
{
|
{
|
||||||
UINT32 result = DataOps::CRC32({});
|
UINT32 result = DataOps::CRC32({});
|
||||||
IAT_CHECK_EQ(result, 0);
|
IAT_CHECK_EQ(result, 0U);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
9
vcpkg.json
Normal file
9
vcpkg.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"name": "iacore",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"dependencies": [
|
||||||
|
"openssl",
|
||||||
|
"zlib-ng",
|
||||||
|
"zstd"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user