Files
IACore/CMakePresets.json
2025-12-21 15:48:47 +05:30

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"
}
}
]
}