209 lines
10 KiB
JSON
209 lines
10 KiB
JSON
{
|
|
"version": 5,
|
|
"cmakeMinimumRequired": {"major": 3, "minor": 23, "patch": 0},
|
|
"configurePresets": [
|
|
{
|
|
"name": "default",
|
|
"displayName": "Default config using Ninja",
|
|
"description": "Keeps defaults, uses Ninja, base for any of the other presets",
|
|
"generator": "Ninja",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/default",
|
|
"cacheVariables": {},
|
|
"environment": {"TEST_FILE_PATH": "${sourceDir}/testfiles"}
|
|
},
|
|
{
|
|
"name": "no-webview",
|
|
"inherits": "default",
|
|
"displayName": "Disables web view",
|
|
"description": "Same as default but disables web view",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/default-no-webview",
|
|
"cacheVariables": {
|
|
"WEBVIEW_PROVIDER": {"type": "STRING", "value": "none"}
|
|
}
|
|
},
|
|
{
|
|
"name": "no-kde",
|
|
"inherits": "default",
|
|
"displayName": "Disables KDE integrations",
|
|
"description": "Same as default but disables KDE integrations",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/default-no-kde",
|
|
"cacheVariables": {
|
|
"NO_PLASMOID": {"type": "BOOL", "value": "ON"},
|
|
"NO_FILE_ITEM_ACTION_PLUGIN": {"type": "BOOL", "value": "ON"}
|
|
}
|
|
},
|
|
{
|
|
"name": "qt6",
|
|
"inherits": "default",
|
|
"displayName": "Use Qt 6 (instead of Qt 5)",
|
|
"description": "Same as default but configures use of Qt 6 (only relevant if project uses Qt)",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/default-qt6",
|
|
"cacheVariables": {
|
|
"QT_PACKAGE_PREFIX": {"type": "STRING", "value": "Qt6"},
|
|
"BUILD_WITH_QT6": {"type": "BOOL", "value": "ON"}
|
|
}
|
|
},
|
|
{
|
|
"name": "ccache",
|
|
"inherits": "default",
|
|
"displayName": "Use ccache",
|
|
"description": "Same as default but uses ccache",
|
|
"cacheVariables": {
|
|
"CMAKE_C_COMPILER_LAUNCHER": {"type": "STRING", "value": "ccache"},
|
|
"CMAKE_CXX_COMPILER_LAUNCHER": {"type": "STRING", "value": "ccache"}
|
|
}
|
|
},
|
|
{
|
|
"name": "devel",
|
|
"inherits": "ccache",
|
|
"displayName": "Generic development config",
|
|
"description": "Development build with testsuite using ccache with many warnings enabled and treated as errors",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/devel",
|
|
"cacheVariables": {
|
|
"ENABLE_DEVEL_DEFAULTS": {"type": "BOOL", "value": "ON"},
|
|
"CONFIGURATION_NAME": {"type": "STRING", "value": "devel"},
|
|
"CONFIGURATION_PACKAGE_SUFFIX": {"type": "STRING", "value": "-devel"},
|
|
"CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES": {"type": "STRING", "value": "-devel"},
|
|
"CONFIGURATION_PACKAGE_SUFFIX_QTFORKAWESOME": {"type": "STRING", "value": "-devel"},
|
|
"CONFIGURATION_TARGET_SUFFIX": {"type": "STRING", "value": "devel"}
|
|
}
|
|
},
|
|
{
|
|
"name": "devel-qt6",
|
|
"inherits": ["qt6", "devel"],
|
|
"displayName": "Generic development config using Qt 6",
|
|
"description": "Same as devel but configures use of Qt 6 (only relevant if project uses Qt)",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/devel-qt6",
|
|
"cacheVariables": {
|
|
"QT_PACKAGE_PREFIX": {"type": "STRING", "value": "Qt6"},
|
|
"BUILD_WITH_QT6": {"type": "BOOL", "value": "ON"}
|
|
}
|
|
},
|
|
{
|
|
"name": "debug",
|
|
"inherits": "devel",
|
|
"displayName": "Generic debug build with development config",
|
|
"description": "Same as devel but creates a debug build",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/debug",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": {"type": "STRING", "value": "Debug"}
|
|
}
|
|
},
|
|
{
|
|
"name": "arch-x86_64-w64-mingw32",
|
|
"inherits": ["no-webview", "no-kde"],
|
|
"displayName": "Target x86_64-w64-mingw32 using Arch Linux's mingw-w64 packaging",
|
|
"description": "Build targeting x86_64-w64-mingw32, paths and flags are specific to Arch Linux's mingw-w64 packaging",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/arch-x86_64-w64-mingw32",
|
|
"toolchainFile": "/usr/share/mingw/toolchain-x86_64-w64-mingw32.cmake",
|
|
"environment": {
|
|
"CROSS_TOOL_PREFIX": "x86_64-w64-mingw32-",
|
|
"CROSS_INSTALL_PREFIX": "/usr/x86_64-w64-mingw32",
|
|
"CPPFLAGS": "-D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS",
|
|
"CFLAGS": "$env{CPPFLAGS} -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fcf-protection",
|
|
"CXXFLAGS": "$env{CPPFLAGS} -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fcf-protection",
|
|
"LDFLAGS": "-Wl,-O1,--sort-common,--as-needed -fstack-protector",
|
|
"PATH": "$env{CROSS_INSTALL_PREFIX}/bin:$penv{PATH}"
|
|
},
|
|
"cacheVariables": {
|
|
"BUILD_SHARED_LIBS": {"type": "BOOL", "value": "ON"},
|
|
"VERSIONED_MINGW_LIBRARIES": {"type": "BOOL", "value": "ON"},
|
|
"CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES": {"type": "PATH", "value": "$env{CROSS_INSTALL_PREFIX}/include"},
|
|
"CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES": {"type": "PATH", "value": "$env{CROSS_INSTALL_PREFIX}/include"},
|
|
"CMAKE_CROSSCOMPILING_EMULATOR": {"type": "PATH", "value": "/usr/bin/x86_64-w64-mingw32-wine"}
|
|
}
|
|
},
|
|
{
|
|
"name": "arch-x86_64-w64-mingw32-static",
|
|
"inherits": "arch-x86_64-w64-mingw32",
|
|
"displayName": "Target x86_64-w64-mingw32 using Arch Linux's mingw-w64 packaging (static)",
|
|
"description": "Build targeting x86_64-w64-mingw32, paths and flags are specific to Arch Linux's mingw-w64 packaging",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/arch-x86_64-w64-mingw32-static",
|
|
"toolchainFile": "/usr/share/mingw/toolchain-x86_64-w64-mingw32-static.cmake",
|
|
"cacheVariables": {
|
|
"BUILD_SHARED_LIBS": {"type": "BOOL", "value": "OFF"}
|
|
}
|
|
},
|
|
{
|
|
"name": "arch-x86_64-w64-mingw32-qt6",
|
|
"inherits": ["qt6", "arch-x86_64-w64-mingw32"],
|
|
"displayName": "Combination of qt6 and arch-x86_64-w64-mingw32",
|
|
"description": "See description of qt6 and arch-x86_64-w64-mingw32",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/arch-x86_64-w64-mingw32-qt6"
|
|
},
|
|
{
|
|
"name": "arch-x86_64-w64-mingw32-static-qt6",
|
|
"inherits": ["qt6", "arch-x86_64-w64-mingw32-static"],
|
|
"displayName": "Combination of qt6 and arch-x86_64-w64-mingw32-static",
|
|
"description": "See description of qt6 and arch-x86_64-w64-mingw32-static",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/arch-x86_64-w64-mingw32-static-qt6"
|
|
},
|
|
{
|
|
"name": "arch-x86_64-w64-mingw32-devel",
|
|
"inherits": ["devel", "arch-x86_64-w64-mingw32"],
|
|
"displayName": "Combination of devel and arch-x86_64-w64-mingw32",
|
|
"description": "See descriptions of devel and arch-x86_64-w64-mingw32",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/arch-x86_64-w64-mingw32-devel"
|
|
},
|
|
{
|
|
"name": "arch-static-compat",
|
|
"inherits": ["no-webview", "no-kde", "qt6"],
|
|
"displayName": "Target static-compat environment for Arch Linux",
|
|
"description": "Build using static-compat packages for Arch Linux found in my PKGBUILDs repo",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/arch-static-compat",
|
|
"environment": {
|
|
"CROSS_INSTALL_PREFIX": "/usr/static-compat",
|
|
"CC": "$env{CROSS_INSTALL_PREFIX}/bin/gcc",
|
|
"CXX": "$env{CROSS_INSTALL_PREFIX}/bin/g++",
|
|
"CFLAGS": "$penv{CFLAGS} -fPIC -static-libgcc -static-libstdc++",
|
|
"CXXFLAGS": "$penv{CXXFLAGS} -fPIC -static-libgcc -static-libstdc++",
|
|
"LDFLAGS": "$penv{LDFLAGS} -static-libgcc -static-libstdc++",
|
|
"PKG_CONFIG_PATH": "$env{CROSS_INSTALL_PREFIX}/lib/pkgconfig:$env{CROSS_INSTALL_PREFIX}/share/pkgconfig",
|
|
"PKG_CONFIG_SYSROOT_DIR": "$env{CROSS_INSTALL_PREFIX}",
|
|
"PKG_CONFIG_LIBDIR": "$env{CROSS_INSTALL_PREFIX}/lib/pkgconfig:$env{CROSS_INSTALL_PREFIX}/share/pkgconfig",
|
|
"PATH": "$env{CROSS_INSTALL_PREFIX}/bin:$penv{PATH}"
|
|
},
|
|
"cacheVariables": {
|
|
"BUILD_SHARED_LIBS": {"type": "BOOL", "value": "OFF"},
|
|
"CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES": {"type": "PATH", "value": "$env{CROSS_INSTALL_PREFIX}/include"},
|
|
"CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES": {"type": "PATH", "value": "$env{CROSS_INSTALL_PREFIX}/include"},
|
|
"CMAKE_INSTALL_PREFIX": {"type": "PATH", "value": "$env{CROSS_INSTALL_PREFIX}"},
|
|
"CMAKE_FIND_ROOT_PATH": {"type": "PATH", "value": "$env{CROSS_INSTALL_PREFIX}"},
|
|
"CMAKE_DISABLE_FIND_PACKAGE_harfbuzz": {"type": "BOOL", "value": "ON"},
|
|
"Boost_USE_STATIC_RUNTIME": {"type": "BOOL", "value": "ON"},
|
|
"GLIB2_USE_PKG_CONFIG": {"type": "BOOL", "value": "ON"},
|
|
"WAYLAND_USE_PKG_CONFIG": {"type": "BOOL", "value": "ON"}
|
|
}
|
|
},
|
|
{
|
|
"name": "arch-static-compat-devel",
|
|
"inherits": ["devel", "arch-static-compat"],
|
|
"displayName": "Combination of devel and arch-static-compat",
|
|
"description": "See descriptions of devel and arch-static-compat",
|
|
"binaryDir": "$env{BUILD_DIR}/${sourceDirName}/arch-static-compat-devel"
|
|
}
|
|
],
|
|
"buildPresets": [
|
|
{"name": "default", "configurePreset": "default"},
|
|
{"name": "qt6", "configurePreset": "qt6"},
|
|
{"name": "devel", "configurePreset": "devel"},
|
|
{"name": "devel-qt6", "configurePreset": "devel-qt6"},
|
|
{"name": "debug", "configurePreset": "debug"},
|
|
{"name": "arch-x86_64-w64-mingw32", "configurePreset": "arch-x86_64-w64-mingw32"},
|
|
{"name": "arch-x86_64-w64-mingw32-static", "configurePreset": "arch-x86_64-w64-mingw32-static"},
|
|
{"name": "arch-x86_64-w64-mingw32-qt6", "configurePreset": "arch-x86_64-w64-mingw32-qt6"},
|
|
{"name": "arch-x86_64-w64-mingw32-static-qt6", "configurePreset": "arch-x86_64-w64-mingw32-static-qt6"},
|
|
{"name": "arch-x86_64-w64-mingw32-devel", "configurePreset": "arch-x86_64-w64-mingw32-devel"},
|
|
{"name": "arch-static-compat", "configurePreset": "arch-static-compat"},
|
|
{"name": "arch-static-compat-devel", "configurePreset": "arch-static-compat-devel"}
|
|
],
|
|
"testPresets": [
|
|
{
|
|
"name": "default",
|
|
"configurePreset": "default",
|
|
"output": {"outputOnFailure": true},
|
|
"execution": {"noTestsAction": "error", "stopOnFailure": true}
|
|
}
|
|
]
|
|
}
|