summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2021-09-13 08:37:24 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-10-07 10:04:55 +0000
commit04fbc9f3ef6203e9c670a74bafd1d6581b1ddbd9 (patch)
treeec1690f6855840132a41d1901fe673b567c1e359
parent005624da0390d0cb3ec92ad89b34ad9bf04c033b (diff)
Add matrix builds
Since coin does not support doing matrix projects, add primitive way to automate features builds. Add self build launcher in form of external projects to do few builds one after the other which test some of our features. These are just compilation tests and could also run in coin as scheduled build. Usage: /path/to/qt-cmake-private /path/to/webenginesources -DMATRIX_BUILD=ON Created currently builds: * webengine_extensions-OFF * webengine_printing_and_pdf-OFF * webengine_proprietary_codecs-ON * webengine_spellchecker-OFF * webengine_webrtc-OFF * qtwebengine_build-OFF Change-Id: Ie1bbc2cf9b01cb2e5089832d8f1cd6171e31b6fe Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit c97895e0843db3fa9ac3b029262dc86e1504849c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--CMakeLists.txt11
-rw-r--r--cmake/Functions.cmake32
2 files changed, 43 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 72c5ce0d7..27ddb15e9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,5 +22,16 @@ find_package(Qt6 ${PROJECT_VERSION} CONFIG QUIET OPTIONAL_COMPONENTS
Gui Widgets Network OpenGL Quick Qml PrintSupport
WebChannel Positioning QuickControls2 Test QuickWidgets QuickTest WebSockets Designer
)
+
+if(MATRIX_BUILD AND NOT MATRIX_SUBBUILD AND NOT QT_SUPERBUILD)
+ add_build(webengine_webrtc OFF)
+ add_build(webengine_proprietary_codecs ON)
+ add_build(webengine_printing_and_pdf OFF)
+ add_build(webengine_extensions OFF)
+ add_build(webengine_spellchecker OFF)
+ add_build(qtwebengine_build OFF)
+ return()
+endif()
+
set(WEBENGINE_MODULE_BUILD TRUE)
qt_build_repo()
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake
index 37fd593a9..19d6b0ca0 100644
--- a/cmake/Functions.cmake
+++ b/cmake/Functions.cmake
@@ -1054,3 +1054,35 @@ function(check_for_ulimit)
endif()
endif()
endfunction()
+
+function(add_build feature value)
+ list(APPEND cmakeArgs
+ "-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}"
+ "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}"
+ "-DMATRIX_SUBBUILD=ON"
+ "-DFEATURE_${feature}=${value}"
+ )
+ if(CMAKE_C_COMPILER_LAUNCHER)
+ list(APPEND cmakeArgs "-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}")
+ endif()
+ if(CMAKE_CXX_COMPILER_LAUNCHER)
+ list(APPEND cmakeArgs "-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}")
+ endif()
+
+ externalproject_add(${feature}
+ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
+ BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${feature}-${value}
+ PREFIX ${feature}-${value}
+ CMAKE_ARGS ${cmakeArgs}
+ USES_TERMINAL_BUILD ON
+ USES_TERMINAL_CONFIGURE ON
+ BUILD_ALWAYS TRUE
+ INSTALL_COMMAND ""
+ )
+ get_property(depTracker GLOBAL PROPERTY MATRIX_DEPENDENCY_TRACKER)
+ foreach(dep ${depTracker})
+ add_dependencies(${feature} ${dep})
+ endforeach()
+ set(depTracker "${depTracker}" ${feature})
+ set_property(GLOBAL PROPERTY MATRIX_DEPENDENCY_TRACKER "${depTracker}")
+endfunction()