179 lines
6.1 KiB
JSON
179 lines
6.1 KiB
JSON
{
|
|
"version": 6,
|
|
"cmakeMinimumRequired": { "major": 3, "minor": 25, "patch": 0 },
|
|
"configurePresets": [
|
|
{
|
|
"name": "base",
|
|
"hidden": true,
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/out/build/${presetName}",
|
|
"installDir": "${sourceDir}/out/install/${presetName}",
|
|
"toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
|
|
"cacheVariables": {
|
|
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
|
|
"PDFENGINE_BUILD_TESTS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "debug",
|
|
"hidden": true,
|
|
"inherits": "base",
|
|
"cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" }
|
|
},
|
|
{
|
|
"name": "release",
|
|
"hidden": true,
|
|
"inherits": "base",
|
|
"cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" }
|
|
},
|
|
{
|
|
"name": "asan",
|
|
"hidden": true,
|
|
"inherits": "debug",
|
|
"cacheVariables": { "PDFENGINE_ENABLE_SANITIZERS": "ON" }
|
|
},
|
|
|
|
{
|
|
"name": "windows-base",
|
|
"hidden": true,
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" },
|
|
"architecture": { "value": "x64", "strategy": "external" },
|
|
"cacheVariables": {
|
|
"VCPKG_TARGET_TRIPLET": "x64-windows-static",
|
|
"CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreaded$<$<CONFIG:Debug>:Debug>"
|
|
}
|
|
},
|
|
{
|
|
"name": "windows-debug",
|
|
"displayName": "Windows • Debug",
|
|
"inherits": ["debug", "windows-base"]
|
|
},
|
|
{
|
|
"name": "windows-release",
|
|
"displayName": "Windows • Release",
|
|
"inherits": ["release", "windows-base"]
|
|
},
|
|
{
|
|
"name": "windows-asan",
|
|
"displayName": "Windows • Debug + ASan",
|
|
"inherits": ["asan", "windows-base"]
|
|
},
|
|
|
|
{
|
|
"name": "linux-debug",
|
|
"displayName": "Linux • Debug",
|
|
"inherits": "debug",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" }
|
|
},
|
|
{
|
|
"name": "linux-release",
|
|
"displayName": "Linux • Release",
|
|
"inherits": "release",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" }
|
|
},
|
|
{
|
|
"name": "linux-asan",
|
|
"displayName": "Linux • Debug + ASan/UBSan",
|
|
"inherits": "asan",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" }
|
|
},
|
|
|
|
{
|
|
"name": "macos-debug",
|
|
"displayName": "macOS • Debug",
|
|
"inherits": "debug",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" }
|
|
},
|
|
{
|
|
"name": "macos-release",
|
|
"displayName": "macOS • Release",
|
|
"inherits": "release",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" }
|
|
},
|
|
{
|
|
"name": "macos-asan",
|
|
"displayName": "macOS • Debug + ASan/UBSan",
|
|
"inherits": "asan",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" }
|
|
},
|
|
|
|
{
|
|
"name": "wasm",
|
|
"displayName": "WASM • Emscripten hello-world (Phase 0, Rule R5)",
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/out/build/${presetName}",
|
|
"toolchainFile": "${sourceDir}/cmake/toolchains/vcpkg-wasm.cmake",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Release",
|
|
"PDFENGINE_BUILD_TESTS": "OFF",
|
|
"PDFENGINE_WITH_PDFIUM": "OFF"
|
|
}
|
|
},
|
|
|
|
{
|
|
"name": "wasm-pdfium",
|
|
"displayName": "WASM • Emscripten + PDFium (live-preview engine)",
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/out/build/${presetName}",
|
|
"toolchainFile": "${sourceDir}/cmake/toolchains/vcpkg-wasm.cmake",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Release",
|
|
"PDFENGINE_BUILD_TESTS": "OFF",
|
|
"PDFENGINE_WITH_PDFIUM": "ON"
|
|
}
|
|
},
|
|
|
|
{
|
|
"name": "fuzz-linux",
|
|
"displayName": "Linux • libFuzzer (Clang + ASan)",
|
|
"inherits": "base",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" },
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
|
"CMAKE_C_COMPILER": "clang",
|
|
"CMAKE_CXX_COMPILER": "clang++",
|
|
"PDFENGINE_FUZZING": "ON",
|
|
"PDFENGINE_WITH_PDFIUM": "ON",
|
|
"PDFENGINE_FUZZ_SANITIZERS": "fuzzer,address,undefined"
|
|
}
|
|
},
|
|
{
|
|
"name": "fuzz-linux-nosan",
|
|
"displayName": "Linux • libFuzzer (Clang, coverage-only — for non-ASan PDFium)",
|
|
"inherits": "fuzz-linux",
|
|
"cacheVariables": { "PDFENGINE_FUZZ_SANITIZERS": "fuzzer" }
|
|
}
|
|
],
|
|
|
|
"buildPresets": [
|
|
{ "name": "windows-debug", "configurePreset": "windows-debug" },
|
|
{ "name": "windows-release", "configurePreset": "windows-release" },
|
|
{ "name": "windows-asan", "configurePreset": "windows-asan" },
|
|
{ "name": "linux-debug", "configurePreset": "linux-debug" },
|
|
{ "name": "linux-release", "configurePreset": "linux-release" },
|
|
{ "name": "linux-asan", "configurePreset": "linux-asan" },
|
|
{ "name": "macos-debug", "configurePreset": "macos-debug" },
|
|
{ "name": "macos-release", "configurePreset": "macos-release" },
|
|
{ "name": "macos-asan", "configurePreset": "macos-asan" },
|
|
{ "name": "wasm", "configurePreset": "wasm" },
|
|
{ "name": "wasm-pdfium", "configurePreset": "wasm-pdfium" },
|
|
{ "name": "fuzz-linux", "configurePreset": "fuzz-linux" },
|
|
{ "name": "fuzz-linux-nosan", "configurePreset": "fuzz-linux-nosan" }
|
|
],
|
|
|
|
"testPresets": [
|
|
{
|
|
"name": "common",
|
|
"hidden": true,
|
|
"output": { "outputOnFailure": true },
|
|
"execution": { "noTestsAction": "error", "stopOnFailure": false }
|
|
},
|
|
{ "name": "windows-debug", "inherits": "common", "configurePreset": "windows-debug" },
|
|
{ "name": "windows-asan", "inherits": "common", "configurePreset": "windows-asan" },
|
|
{ "name": "linux-debug", "inherits": "common", "configurePreset": "linux-debug" },
|
|
{ "name": "linux-asan", "inherits": "common", "configurePreset": "linux-asan" },
|
|
{ "name": "macos-debug", "inherits": "common", "configurePreset": "macos-debug" },
|
|
{ "name": "macos-asan", "inherits": "common", "configurePreset": "macos-asan" }
|
|
]
|
|
}
|