90 lines
2.8 KiB
JSON
90 lines
2.8 KiB
JSON
{
|
|
"version": 3,
|
|
"cmakeMinimumRequired": {
|
|
"major": 3,
|
|
"minor": 28
|
|
},
|
|
"configurePresets": [
|
|
{
|
|
"name": "base-common",
|
|
"hidden": true,
|
|
"generator": "Ninja Multi-Config",
|
|
"binaryDir": "${sourceDir}/out/build/${presetName}",
|
|
"cacheVariables": {
|
|
"CMAKE_C_COMPILER": "clang",
|
|
"CMAKE_CXX_COMPILER": "clang++",
|
|
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
|
|
"WITH_AVX2": "ON",
|
|
"WITH_NEON": "ON",
|
|
"VCPKG_OVERLAY_TRIPLETS": "${sourceDir}/CMake/Triplets",
|
|
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
|
}
|
|
},
|
|
{
|
|
"name": "linux-x64",
|
|
"displayName": "Linux x64 (AVX2)",
|
|
"inherits": "base-common",
|
|
"cacheVariables": {
|
|
"CMAKE_SYSTEM_NAME": "Linux",
|
|
"CMAKE_SYSTEM_PROCESSOR": "x86_64",
|
|
"CMAKE_C_FLAGS": "-mavx2 -mfma",
|
|
"CMAKE_CXX_FLAGS": "-mavx2 -mfma",
|
|
"VCPKG_TARGET_TRIPLET": "x64-linux"
|
|
}
|
|
},
|
|
{
|
|
"name": "linux-arm64",
|
|
"displayName": "Linux ARM64 (NEON)",
|
|
"inherits": "base-common",
|
|
"cacheVariables": {
|
|
"CMAKE_SYSTEM_NAME": "Linux",
|
|
"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",
|
|
"displayName": "Windows x64 (AVX2)",
|
|
"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",
|
|
"displayName": "Windows ARM64 (NEON)",
|
|
"inherits": "base-common",
|
|
"cacheVariables": {
|
|
"CMAKE_SYSTEM_NAME": "Windows",
|
|
"CMAKE_SYSTEM_PROCESSOR": "aarch64",
|
|
"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",
|
|
"displayName": "WebAssembly (SIMD)",
|
|
"inherits": "base-common",
|
|
"cacheVariables": {
|
|
"CMAKE_SYSTEM_NAME": "Emscripten",
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
} |