| { | |
| "version": 3, | |
| "configurePresets": [ | |
| { | |
| "name": "config-base", | |
| "description": "Base configure preset.", | |
| "hidden": true, | |
| "generator": "Ninja", | |
| "binaryDir": "${sourceDir}/out/build/${presetName}", | |
| "installDir": "${sourceDir}/out/install/${presetName}", | |
| "cacheVariables": { | |
| "CMAKE_CXX_STANDARD": "17", | |
| "CMAKE_CXX_STANDARD_REQUIRED": "ON", | |
| "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", | |
| "ENZYME_CONFIGURED_WITH_PRESETS": "ON" | |
| } | |
| }, | |
| { | |
| "name": "config-base-linux", | |
| "description": "Base configure preset for Linux.", | |
| "inherits": "config-base", | |
| "hidden": true, | |
| "cacheVariables": { | |
| "CMAKE_POSITION_INDEPENDENT_CODE": "ON" | |
| }, | |
| "condition": { | |
| "type": "equals", | |
| "lhs": "${hostSystemName}", | |
| "rhs": "Linux" | |
| } | |
| }, | |
| { | |
| "name": "config-base-x64", | |
| "description": "Base preset for x64 platforms.", | |
| "hidden": true, | |
| "architecture": { | |
| "value": "x64", | |
| "strategy": "external" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-clang", | |
| "description": "Base preset for Linux development using Clang compilers.", | |
| "hidden": true, | |
| "inherits": [ | |
| "config-base-x64", | |
| "config-base-linux" | |
| ], | |
| "cacheVariables": { | |
| "CMAKE_C_COMPILER": "clang", | |
| "CMAKE_CXX_COMPILER": "clang++", | |
| "CMAKE_CXX_FLAGS": "-Wall -fno-rtti -Werror=unused-variable -Werror=dangling-else -Werror=unused-but-set-variable -Werror=return-type -Werror=nonnull -Werror=unused-result -Werror=reorder -Werror=switch" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-clang-debug", | |
| "displayName": "Clang x64 Linux Debug", | |
| "inherits": "x64-linux-clang", | |
| "cacheVariables": { | |
| "CMAKE_BUILD_TYPE": "Debug", | |
| "CMAKE_CXX_FLAGS_DEBUG": "-O0 -g -ggdb -fno-omit-frame-pointer" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-clang-release", | |
| "displayName": "Clang x64 Linux Release", | |
| "inherits": "x64-linux-clang", | |
| "cacheVariables": { | |
| "CMAKE_BUILD_TYPE": "Release", | |
| "CMAKE_CXX_FLAGS_RELEASE": "-O2" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-clang-release-with-debug-info", | |
| "displayName": "Clang x64 Linux Release with Debug Info", | |
| "inherits": "x64-linux-clang", | |
| "cacheVariables": { | |
| "CMAKE_BUILD_TYPE": "RelWithDebInfo", | |
| "CMAKE_CXX_FLAGS_RELWITHDEBINFO": "-O2 -g -ggdb" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-gcc", | |
| "description": "Base preset for Linux development using GNU compilers.", | |
| "hidden": true, | |
| "inherits": [ | |
| "config-base-x64", | |
| "config-base-linux" | |
| ], | |
| "cacheVariables": { | |
| "CMAKE_C_COMPILER": "gcc", | |
| "CMAKE_CXX_COMPILER": "g++", | |
| "CMAKE_CXX_FLAGS": "-Wall -fno-rtti -Werror=unused-variable -Werror=dangling-else -Werror=unused-but-set-variable -Werror=return-type -Werror=nonnull -Werror=unused-result -Werror=reorder -Werror=switch -Wno-comment" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-gcc-debug", | |
| "displayName": "GCC x64 Linux Debug", | |
| "inherits": "x64-linux-gcc", | |
| "cacheVariables": { | |
| "CMAKE_BUILD_TYPE": "Debug", | |
| "CMAKE_CXX_FLAGS_DEBUG": "-O0 -g -ggdb -fno-omit-frame-pointer" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-gcc-release", | |
| "displayName": "GCC x64 Linux Release", | |
| "inherits": "x64-linux-gcc", | |
| "cacheVariables": { | |
| "CMAKE_BUILD_TYPE": "Release", | |
| "CMAKE_CXX_FLAGS_RELEASE": "-O2" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-gcc-release-with-debug-info", | |
| "displayName": "GCC x64 Linux Release with Debug Info", | |
| "inherits": "x64-linux-gcc", | |
| "cacheVariables": { | |
| "CMAKE_BUILD_TYPE": "RelWithDebInfo", | |
| "CMAKE_CXX_FLAGS_RELWITHDEBINFO": "-O2 -g -ggdb" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-intel", | |
| "description": "Base preset for Linux development using Intel oneAPI compilers.", | |
| "hidden": true, | |
| "inherits": [ | |
| "config-base-x64", | |
| "config-base-linux" | |
| ], | |
| "cacheVariables": { | |
| "CMAKE_C_COMPILER": "icx", | |
| "CMAKE_CXX_COMPILER": "icpx", | |
| "CMAKE_CXX_FLAGS": "-Wall -fno-rtti -Werror=unused-variable -Werror=dangling-else -Werror=unused-but-set-variable -Werror=return-type -Werror=nonnull -Werror=unused-result -Werror=reorder -Werror=switch", | |
| "CMAKE_BUILD_WITH_INSTALL_RPATH": "ON" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-intel-debug", | |
| "displayName": "Intel x64 Linux Debug", | |
| "inherits": "x64-linux-intel", | |
| "cacheVariables": { | |
| "CMAKE_BUILD_TYPE": "Debug", | |
| "CMAKE_CXX_FLAGS_DEBUG": "-O0 -g -ggdb -fno-omit-frame-pointer" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-intel-release", | |
| "displayName": "Intel x64 Linux Release", | |
| "inherits": "x64-linux-intel", | |
| "cacheVariables": { | |
| "CMAKE_BUILD_TYPE": "Release", | |
| "CMAKE_CXX_FLAGS_RELEASE": "-O2" | |
| } | |
| }, | |
| { | |
| "name": "x64-linux-intel-release-with-debug-info", | |
| "displayName": "Intel x64 Linux Release with Debug Info", | |
| "inherits": "x64-linux-intel", | |
| "cacheVariables": { | |
| "CMAKE_BUILD_TYPE": "RelWithDebInfo", | |
| "CMAKE_CXX_FLAGS_RELWITHDEBINFO": "-O2 -g -ggdb" | |
| } | |
| } | |
| ], | |
| "buildPresets": [ | |
| { | |
| "name": "x64-linux-clang-debug", | |
| "displayName": "Clang x64 Linux Debug", | |
| "description": "Builds the project using Clang on Linux in Debug configuration.", | |
| "configurePreset": "x64-linux-clang-debug" | |
| }, | |
| { | |
| "name": "x64-linux-clang-release", | |
| "displayName": "Clang x64 Linux Release", | |
| "description": "Builds the project using Clang on Linux in Release configuration.", | |
| "configurePreset": "x64-linux-clang-release" | |
| }, | |
| { | |
| "name": "x64-linux-clang-release-with-debug-info", | |
| "displayName": "Clang x64 Linux Release with Debug Info", | |
| "description": "Builds the project using Clang on Linux in Release configuration with debug info.", | |
| "configurePreset": "x64-linux-clang-release-with-debug-info" | |
| }, | |
| { | |
| "name": "x64-linux-gcc-debug", | |
| "displayName": "GCC x64 Linux Debug", | |
| "description": "Builds the project using GCC on Linux in Debug configuration.", | |
| "configurePreset": "x64-linux-gcc-debug" | |
| }, | |
| { | |
| "name": "x64-linux-gcc-release", | |
| "displayName": "GCC x64 Linux Release", | |
| "description": "Builds the project using GCC on Linux in Release configuration.", | |
| "configurePreset": "x64-linux-gcc-release" | |
| }, | |
| { | |
| "name": "x64-linux-gcc-release-with-debug-info", | |
| "displayName": "GCC x64 Linux Release with Debug Info", | |
| "description": "Builds the project using GCC on Linux in Release configuration with debug info.", | |
| "configurePreset": "x64-linux-gcc-release-with-debug-info" | |
| }, | |
| { | |
| "name": "x64-linux-intel-debug", | |
| "displayName": "Intel x64 Linux Debug", | |
| "description": "Builds the project using Intel oneAPI compilers on Linux in Debug configuration.", | |
| "configurePreset": "x64-linux-intel-debug" | |
| }, | |
| { | |
| "name": "x64-linux-intel-release", | |
| "displayName": "Intel x64 Linux Release", | |
| "description": "Builds the project using Intel oneAPI compilers on Linux in Release configuration.", | |
| "configurePreset": "x64-linux-intel-release" | |
| }, | |
| { | |
| "name": "x64-linux-intel-release-with-debug-info", | |
| "displayName": "Intel x64 Linux Release with Debug Info", | |
| "description": "Builds the project using Intel oneAPI compilers on Linux in Release configuration with debug info.", | |
| "configurePreset": "x64-linux-intel-release-with-debug-info" | |
| } | |
| ] | |
| } |