Change Axivion analysis result format

Dividing qtbase into essentials and add-ons modules in analysis.

Task-number: QTQAINFRA-5965
Change-Id: I9b923939ced35ee72cb62fb8d62e486f38a8d709
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
This commit is contained in:
Matti Paaso 2024-05-21 09:58:47 +03:00
parent 46b84b0b69
commit 9a69fef01b
3 changed files with 98 additions and 18 deletions

View File

@ -2,33 +2,18 @@
"Project": {
"BuildSystemIntegration": {
"child_order": [
"GCCSetup",
"CMake",
"LinkLibraries"
]
},
"CMake": {
"_active": true,
"_copy_from": "CMakeIntegration",
"build_environment": {},
"build_options": "-j4",
"generate_options": "--fresh",
"generator": "Ninja"
},
"GCCSetup": {
"_active": true,
"_copy_from": "Command",
"build_command": "gccsetup --cc gcc --cxx g++ --config ../../../axivion/"
},
"LinkLibraries": {
"_active": true,
"_copy_from": "AxivionLinker",
"input_files": [
"build/lib/lib*.so*.ir"
"$(splitpath:TARGET_NAME)"
],
"ir": "build/$(env:TESTED_MODULE_COIN).ir",
"ir": "$(env:IRNAME)",
"plugin_files": [
"build/plugins/*/lib*.so*.ir"
"$(splitpath:PLUGINS)"
]
}
},

84
coin/axivion/start_analysis.sh Executable file
View File

@ -0,0 +1,84 @@
#!/bin/bash
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
$HOME/bauhaus-suite/setup.sh --non-interactive
export PATH=/home/qt/bauhaus-suite/bin:$PATH
export BAUHAUS_CONFIG=$(cd $(dirname $(readlink -f $0)) && pwd)
export AXIVION_VERSION_NAME=$(git rev-parse HEAD)
export CAFECC_BASEPATH="/home/qt/work/qt/$TESTED_MODULE_COIN"
gccsetup --cc gcc --cxx g++ --config "$BAUHAUS_CONFIG"
cd "$CAFECC_BASEPATH"
BAUHAUS_IR_COMPRESSION=none COMPILE_ONLY=1 cmake -G Ninja -DAXIVION_ANALYSIS_TOOLCHAIN_FILE=/home/qt/bauhaus-suite/profiles/cmake/axivion-launcher-toolchain.cmake -DCMAKE_PREFIX_PATH=/home/qt/work/qt/qtbase/build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/qt/bauhaus-suite/profiles/cmake/axivion-before-project-hook.cmake -B build -S . --fresh
cmake --build build -j4
for MODULE in qtconcurrent qtcore qtdbus qtgui qtnetwork qtopengl qtopenglwidgets qtsql qttest qtwidgets qtprintsupport qtxml; do
export MODULE
export PLUGINS=""
export IRNAME=build/$MODULE.ir
if [ "$MODULE" == "qtconcurrent" ]
then
export TARGET_NAME="build/lib/libQt6Concurrent.so.*.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/testlib/*:src/corelib/*"
export PACKAGE="Add-ons"
elif [ "$MODULE" == "qtcore" ]
then
export TARGET_NAME="build/lib/libQt6Core.so.*.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/testlib/*"
export PACKAGE="Essentials"
elif [ "$MODULE" == "qtdbus" ]
then
export TARGET_NAME="build/lib/libQt6DBus.so.*.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/testlib/*:src/corelib/*"
export PACKAGE="Essentials"
elif [ "$MODULE" == "qtgui" ]
then
export TARGET_NAME="build/lib/libQt6Gui.so.*.ir"
export PLUGINS="build/plugins/platforms/*.so.ir:build/plugins/platforminputcontexts/*.so.ir:build/plugins/platformthemes/*.so.ir:build/plugins/imageformats/*.so.ir:build/plugins/generic/*.so.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/testlib/*:src/corelib/*:src/dbus/*:src/opengl/*:src/network/*"
export PACKAGE="Essentials"
elif [ "$MODULE" == "qtnetwork" ]
then
export TARGET_NAME="build/lib/libQt6Network.so.*.ir"
export PLUGINS="build/plugins/networkinformation/*.so.ir:build/plugins/tracing/*.so.ir:build/plugins/tls/*.so.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/testlib/*:src/corelib/*:src/dbus/*"
export PACKAGE="Essentials"
elif [ "$MODULE" == "qtopengl" ]
then
export TARGET_NAME="build/lib/libQt6OpenGL.so.*.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/corelib/*:src/gui/*:src/dbus/*:src/opengl/qopenglfunctions_*"
export PACKAGE="Add-ons"
elif [ "$MODULE" == "qtopenglwidgets" ]
then
export TARGET_NAME="build/lib/libQt6OpenGLWidgets.so.*.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/corelib/*:src/gui/*:src/dbus/*:src/opengl/qopenglfunctions_*"
export PACKAGE="Add-ons"
elif [ "$MODULE" == "qtsql" ]
then
export TARGET_NAME="build/lib/libQt6Sql.so.*.ir"
export PLUGINS="build/plugins/sqldrivers/*.so.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/corelib/*:src/gui/*:src/testlib/*"
export PACKAGE="Add-ons"
elif [ "$MODULE" == "qttest" ]
then
export TARGET_NAME="build/lib/libQt6Test.so.*.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/corelib/*:src/gui/*:src/widgets/*:src/testlib/3rdparty/*"
export PACKAGE="Essentials"
elif [ "$MODULE" == "qtwidgets" ]
then
export TARGET_NAME="build/lib/libQt6Widgets.so.*.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/corelib/*:src/dbus/*:src/gui/*:src/testlib/*"
export PACKAGE="Essentials"
elif [ "$MODULE" == "qtprintsupport" ]
then
export TARGET_NAME="build/lib/libQt6PrintSupport.so.*.ir"
export PLUGINS="build/plugins/printsupport/*.so.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/corelib/*:src/gui/*:src/widgets/*:src/testlib/*:src/dbus/*"
export PACKAGE="Add-ons"
elif [ "$MODULE" == "qtxml" ]
then
export TARGET_NAME="build/lib/libQt6Xml.so.*.ir"
export EXCLUDE_FILES="build/*:src/3rdparty/*:src/corelib/*:src/testlib/*"
export PACKAGE="Add-ons"
fi
axivion_ci "$@"
done

View File

@ -6,6 +6,9 @@ analysis_instructions_axivion: &analysis_instructions_axivion
- type: EnvironmentVariable
variableName: AXIVION_CHAINLOAD_TOOLCHAIN_FILE
variableValue: "{{.AgentWorkingDir}}/install/lib/cmake/Qt6/qt.toolchain.cmake"
- type: EnvironmentVariable
variableName: AXIVION_DIVIDED_MODULES
variableValue: "qtbase_qtdeclarative_qtconnectivity_qtgrpc_qttools_qtwayland"
- type: EnvironmentVariable
variableName: CMAKE_PREFIX_PATH
variableValue: "{{.AgentWorkingDir}}/install/lib/cmake"
@ -19,6 +22,14 @@ analysis_instructions_axivion: &analysis_instructions_axivion
sourcePath: "{{.SourceDir}}/coin/axivion/ci_config_{{.Env.TARGET_OS_COIN}}.json"
targetPath: "{{.Env.HOME}}/axivion/ci_config.json"
userMessageOnFailure: "Moving ci_config.json failed. Make sure you have included the file in coin/axivion/ -folder"
- type: Rename
sourcePath: "{{.SourceDir}}/coin/axivion/start_analysis.sh"
targetPath: "{{.Env.HOME}}/axivion/start_analysis.sh"
userMessageOnFailure: "Moving start_analysis.sh failed. Make sure you have included the file in coin/axivion/ -folder"
enable_if:
condition: runtime
env_var: AXIVION_DIVIDED_MODULES
contains_value: "{{.Env.TESTED_MODULE_COIN}}"
- type: SetBuildDirectory
directory: "{{.SourceDir}}"
- type: ChangeDirectory