mirror of
https://gitlab.com/smart-pattern/valentina.git
synced 2024-09-18 23:04:03 +02:00
Compare commits
No commits in common. "cb13946e4f9a3ceef31353bd50c35c170971fc2f" and "47937245a6e4ed5eaf589461094f5002cd7874f5" have entirely different histories.
cb13946e4f
...
47937245a6
33
.cirrus.yml
33
.cirrus.yml
|
@ -62,17 +62,8 @@ linux_qt6_sonar_task_template: &LINUX_QT6_TASK_SONAR_TEMPLATE
|
||||||
- qbs setup-qt /usr/bin/qmake6 qt6
|
- qbs setup-qt /usr/bin/qmake6 qt6
|
||||||
- qbs config profiles.qt6.baseProfile ${COMPILER}
|
- qbs config profiles.qt6.baseProfile ${COMPILER}
|
||||||
- qbs config defaultProfile qt6
|
- qbs config defaultProfile qt6
|
||||||
- build-wrapper-linux-x86-64 --out-dir ${CIRRUS_WORKING_DIR}/bw-output qbs build --no-install -f valentina.qbs -d ${CIRRUS_WORKING_DIR}/build --jobs $(nproc) profile:qt6 config:debug modules.buildconfig.enableCcache:true modules.cpp.linkerVariant:mold modules.buildconfig.enableTestCoverage:true modules.buildconfig.enablePCH:false
|
- build-wrapper-linux-x86-64 --out-dir bw-output qbs build --no-install -f valentina.qbs -d build --jobs $(nproc) profile:qt6 config:release modules.buildconfig.enableCcache:false modules.cpp.linkerVariant:mold
|
||||||
# Execute the tests to generate the coverage statistics
|
- sonar-scanner -Dsonar.scm.revision=${CIRRUS_CHANGE_IN_REPO} -Dsonar.links.ci=https://cirrus-ci.com/task/${CIRRUS_TASK_ID} -Dsonar.branch.name=${CIRRUS_BRANCH}
|
||||||
- qbs -p autotest-runner -d build profile:qt6 config:debug
|
|
||||||
# Run gcov to translate `.gcda` files into `.gcov` readable by humans and SonarCloud
|
|
||||||
- mkdir ${CIRRUS_WORKING_DIR}/build/coverage-dir
|
|
||||||
- cd ${CIRRUS_WORKING_DIR}/build/coverage-dir
|
|
||||||
# --preserve-paths helps us avoid name clash for `.gcov` files corresponding to source files
|
|
||||||
# with the same name but in different directories.
|
|
||||||
- find .. -name '*.o' | xargs gcov --preserve-paths
|
|
||||||
- cd $CIRRUS_WORKING_DIR
|
|
||||||
- sonar-scanner -Dsonar.scm.revision=${CIRRUS_CHANGE_IN_REPO} -Dsonar.links.ci=https://cirrus-ci.com/task/${CIRRUS_TASK_ID} -Dsonar.branch.name=${CIRRUS_BRANCH} -Dsonar.cfamily.gcov.reportsPath="${CIRRUS_WORKING_DIR}/build/coverage-dir"
|
|
||||||
|
|
||||||
linux_qt5_qmake_task_template: &LINUX_QT5_QMAKE_TASK_TEMPLATE
|
linux_qt5_qmake_task_template: &LINUX_QT5_QMAKE_TASK_TEMPLATE
|
||||||
install_script:
|
install_script:
|
||||||
|
@ -191,6 +182,16 @@ linux_task:
|
||||||
container:
|
container:
|
||||||
cpu: 8
|
cpu: 8
|
||||||
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-container
|
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-container
|
||||||
|
- name: 'Sonar, latest Clang [Qt6]'
|
||||||
|
<< : *LINUX_QT6_TASK_SONAR_TEMPLATE
|
||||||
|
env:
|
||||||
|
QT_SELECT: "qt6"
|
||||||
|
SONAR_TOKEN: ENCRYPTED[!715ab983713a5035d505d2c601c9bb78a9475b9a04db62cdda9c674affd58ac956e563ce6d38228b48e05c4dbea2f52d!]
|
||||||
|
container:
|
||||||
|
cpu: 8
|
||||||
|
memory: 10G # Set to 10GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-container
|
||||||
|
sonar_cache:
|
||||||
|
folder: "${HOME}/.sonar/cache"
|
||||||
- container:
|
- container:
|
||||||
image: dismine/gcc-ubuntu:13
|
image: dismine/gcc-ubuntu:13
|
||||||
env:
|
env:
|
||||||
|
@ -253,16 +254,6 @@ linux_task:
|
||||||
container:
|
container:
|
||||||
cpu: 4
|
cpu: 4
|
||||||
memory: 16G # Set to 16GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-container
|
memory: 16G # Set to 16GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-container
|
||||||
- name: 'Sonar, latest GCC [Qt6]'
|
|
||||||
<< : *LINUX_QT6_TASK_SONAR_TEMPLATE
|
|
||||||
env:
|
|
||||||
QT_SELECT: "qt6"
|
|
||||||
SONAR_TOKEN: ENCRYPTED[!715ab983713a5035d505d2c601c9bb78a9475b9a04db62cdda9c674affd58ac956e563ce6d38228b48e05c4dbea2f52d!]
|
|
||||||
container:
|
|
||||||
cpu: 8
|
|
||||||
memory: 10G # Set to 10GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-container
|
|
||||||
sonar_cache:
|
|
||||||
folder: "${HOME}/.sonar/cache"
|
|
||||||
|
|
||||||
macos_task_template: &MACOS_TASK_TEMPLATE
|
macos_task_template: &MACOS_TASK_TEMPLATE
|
||||||
<< : *REGULER_TASK_TEMPLATE
|
<< : *REGULER_TASK_TEMPLATE
|
||||||
|
|
|
@ -785,7 +785,7 @@ for:
|
||||||
|
|
||||||
sudo ln -s /usr/local /opt/local;
|
sudo ln -s /usr/local /opt/local;
|
||||||
|
|
||||||
cache_tag=usr_local_3 # this can be modified to rebuild deps
|
cache_tag=usr_local_2 # this can be modified to rebuild deps
|
||||||
|
|
||||||
cdir=$HOME/cache_dir
|
cdir=$HOME/cache_dir
|
||||||
cache_tar=$cdir/$cache_tag.tar
|
cache_tar=$cdir/$cache_tag.tar
|
||||||
|
@ -839,6 +839,11 @@ for:
|
||||||
- qmake --version
|
- qmake --version
|
||||||
- which qmake
|
- which qmake
|
||||||
- qbs --version
|
- qbs --version
|
||||||
|
# Patch Qbs. Remove after Qbs 2.2.1+.
|
||||||
|
- curl https://gist.githubusercontent.com/dismine/43f3c51e05f3317c5d4fe16cd3c4b6d8/raw/2d297bcb53c2c022f740509923adf1eb1796afe2/qbs-pkg-config-probe.patch --output $HOME/qbs-pkg-config-probe.patch --silent
|
||||||
|
- patch -N -d $(brew --prefix qbs)/ -p1 < $HOME/qbs-pkg-config-probe.patch || true
|
||||||
|
- rm -f $(brew --prefix qbs)/share/qbs/imports/qbs/Probes/qbs-pkg-config-probe.js.rej
|
||||||
|
- rm $HOME/qbs-pkg-config-probe.patch
|
||||||
- /usr/bin/curl -LJ https://github.com/dismine/macdeployqt/archive/refs/heads/main.zip --output ${HOME}/macdeployqt-main.zip --silent
|
- /usr/bin/curl -LJ https://github.com/dismine/macdeployqt/archive/refs/heads/main.zip --output ${HOME}/macdeployqt-main.zip --silent
|
||||||
- unzip ${HOME}/macdeployqt-main.zip -d ${HOME}
|
- unzip ${HOME}/macdeployqt-main.zip -d ${HOME}
|
||||||
- cmake ${HOME}/macdeployqt-main -S ${HOME}/macdeployqt-main -B ${HOME}/macdeployqt-build-dir -DCMAKE_INSTALL_PREFIX=${HOME}/macdeployqt-install-dir -DCMAKE_BUILD_TYPE=Release
|
- cmake ${HOME}/macdeployqt-main -S ${HOME}/macdeployqt-main -B ${HOME}/macdeployqt-build-dir -DCMAKE_INSTALL_PREFIX=${HOME}/macdeployqt-install-dir -DCMAKE_BUILD_TYPE=Release
|
||||||
|
|
|
@ -4,12 +4,7 @@ VLib {
|
||||||
Depends { name: "windeployqt"; condition: qbs.targetOS.contains("windows") }
|
Depends { name: "windeployqt"; condition: qbs.targetOS.contains("windows") }
|
||||||
Depends { name: "i18nconfig"; }
|
Depends { name: "i18nconfig"; }
|
||||||
|
|
||||||
buildconfig.staticBuild: {
|
buildconfig.staticBuild: false
|
||||||
if (product.buildconfig.enableUnitTests && product.buildconfig.enableTestCoverage)
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Properties {
|
Properties {
|
||||||
condition: qbs.targetOS.contains("windows") && Utilities.versionCompare(Qt.core.version, "6.5") < 0
|
condition: qbs.targetOS.contains("windows") && Utilities.versionCompare(Qt.core.version, "6.5") < 0
|
||||||
|
|
|
@ -4,7 +4,6 @@ Library {
|
||||||
Depends { name: "buildconfig" }
|
Depends { name: "buildconfig" }
|
||||||
Depends { name: "bundle"; condition: qbs.targetOS.contains("macos") }
|
Depends { name: "bundle"; condition: qbs.targetOS.contains("macos") }
|
||||||
Depends { name: "cpp" }
|
Depends { name: "cpp" }
|
||||||
Depends { name: "coverage"; required: false }
|
|
||||||
|
|
||||||
type: buildconfig.staticBuild ? "staticlibrary" : "dynamiclibrary"
|
type: buildconfig.staticBuild ? "staticlibrary" : "dynamiclibrary"
|
||||||
|
|
||||||
|
@ -64,6 +63,5 @@ Library {
|
||||||
|
|
||||||
Export {
|
Export {
|
||||||
Depends { name: "buildconfig" }
|
Depends { name: "buildconfig" }
|
||||||
Depends { name: "coverage"; required: false }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,6 @@ VApp {
|
||||||
install: false
|
install: false
|
||||||
condition: buildconfig.enableUnitTests
|
condition: buildconfig.enableUnitTests
|
||||||
|
|
||||||
Depends { name: "coverage"; required: false }
|
|
||||||
|
|
||||||
Properties {
|
Properties {
|
||||||
condition: qbs.targetOS.contains("macos")
|
condition: qbs.targetOS.contains("macos")
|
||||||
bundle.isBundle: false
|
bundle.isBundle: false
|
||||||
|
|
|
@ -14,9 +14,6 @@ Module {
|
||||||
// Use this property to disable building unit tests.
|
// Use this property to disable building unit tests.
|
||||||
property bool enableUnitTests: true
|
property bool enableUnitTests: true
|
||||||
|
|
||||||
// Use this property to enable code coverage.
|
|
||||||
property bool enableTestCoverage: false
|
|
||||||
|
|
||||||
// Use this property to disable the use of rpath. This can be used when packaging Valentina for distributions which
|
// Use this property to disable the use of rpath. This can be used when packaging Valentina for distributions which
|
||||||
// do not permit the use of rpath, such as Fedora.
|
// do not permit the use of rpath, such as Fedora.
|
||||||
property bool enableRPath: true
|
property bool enableRPath: true
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
import qbs.FileInfo
|
|
||||||
import qbs.Utilities
|
|
||||||
|
|
||||||
Module {
|
|
||||||
condition: (qbs.debugInformation && qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang")) ||
|
|
||||||
qbs.toolchain.contains("clang")
|
|
||||||
Depends { name: "cpp" }
|
|
||||||
additionalProductTypes: ["gcno"]
|
|
||||||
|
|
||||||
cpp.driverFlags: {
|
|
||||||
var flags = [];
|
|
||||||
|
|
||||||
if (product.buildconfig.enableUnitTests && product.buildconfig.enableTestCoverage) {
|
|
||||||
if (qbs.toolchain.contains("clang"))
|
|
||||||
flags.push("-fprofile-instr-generate", "-fcoverage-mapping");
|
|
||||||
else
|
|
||||||
flags.push("--coverage");
|
|
||||||
}
|
|
||||||
|
|
||||||
return flags;
|
|
||||||
}
|
|
||||||
|
|
||||||
Rule { // Fake rule for '*.gcno' generation.
|
|
||||||
condition: qbs.debugInformation && qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang")
|
|
||||||
inputs: ["cpp", "c"]
|
|
||||||
outputFileTags: ["gcno"]
|
|
||||||
outputArtifacts: {
|
|
||||||
return [{
|
|
||||||
fileTags: ["gcno"],
|
|
||||||
filePath: FileInfo.joinPaths(Utilities.getHash(input.baseDir),
|
|
||||||
input.fileName + ".gcno")
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
prepare: {
|
|
||||||
var cmd = new JavaScriptCommand();
|
|
||||||
cmd.description = "generating " + output.fileName;
|
|
||||||
return [cmd];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Analyze project with Sonar cloud on Linux.
|
# Analyze project with Sonar cloud on Linux.
|
||||||
# Please, run this script from <root_folder>.
|
# Please, run this script from folder <root_folder>/scripts.
|
||||||
|
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
|
@ -12,8 +12,7 @@ mkdir ../${BUILD_FOLDER}
|
||||||
|
|
||||||
QMAKE_PATH=${HOME}/Qt6.6/6.6.0/gcc_64/bin/qmake
|
QMAKE_PATH=${HOME}/Qt6.6/6.6.0/gcc_64/bin/qmake
|
||||||
PROFILE=qt6Sonar
|
PROFILE=qt6Sonar
|
||||||
COMPILER=gcc-12
|
COMPILER=clang
|
||||||
GCOV=gcov-12
|
|
||||||
|
|
||||||
qbs setup-toolchains /usr/bin/${COMPILER} ${COMPILER}
|
qbs setup-toolchains /usr/bin/${COMPILER} ${COMPILER}
|
||||||
qbs setup-qt ${QMAKE_PATH} ${PROFILE}
|
qbs setup-qt ${QMAKE_PATH} ${PROFILE}
|
||||||
|
@ -29,31 +28,15 @@ build-wrapper-linux-x86-64 \
|
||||||
-f valentina.qbs \
|
-f valentina.qbs \
|
||||||
--jobs $(nproc) \
|
--jobs $(nproc) \
|
||||||
profile:${PROFILE} \
|
profile:${PROFILE} \
|
||||||
config:debug \
|
config:release \
|
||||||
modules.buildconfig.enableCcache:false \
|
modules.buildconfig.enableCcache:false
|
||||||
modules.buildconfig.enableTestCoverage:true
|
|
||||||
|
|
||||||
# modules.cpp.linkerVariant:mold
|
# modules.cpp.linkerVariant:mold
|
||||||
|
|
||||||
# Run tests to generate coverage information
|
|
||||||
qbs -p autotest-runner -d ../${BUILD_FOLDER} profile:qt6 config:release
|
|
||||||
|
|
||||||
# Run gcov to translate `.gcda` files into `.gcov` readable by humans and SonarCloud
|
|
||||||
mkdir ../${BUILD_FOLDER}/coverage-dir
|
|
||||||
|
|
||||||
current_dir=$(pwd)
|
|
||||||
cd ../${BUILD_FOLDER}/coverage-dir
|
|
||||||
|
|
||||||
# --preserve-paths helps us avoid name clash for `.gcov` files corresponding to source files
|
|
||||||
# with the same name but in different directories.
|
|
||||||
find .. -name '*.o' | xargs ${GCOV} --preserve-paths
|
|
||||||
|
|
||||||
cd "$current_dir"
|
|
||||||
|
|
||||||
current_branch=$(git rev-parse --abbrev-ref HEAD)
|
current_branch=$(git rev-parse --abbrev-ref HEAD)
|
||||||
current_revision=$(git rev-parse HEAD)
|
current_revision=$(git rev-parse HEAD)
|
||||||
|
|
||||||
sonar-scanner \
|
sonar-scanner \
|
||||||
|
-Dsonar.cfamily.threads=$(nproc) \
|
||||||
-Dsonar.branch.name=$current_branch \
|
-Dsonar.branch.name=$current_branch \
|
||||||
-Dsonar.scm.revision=$current_revision \
|
-Dsonar.scm.revision=$current_revision
|
||||||
-Dsonar.cfamily.gcov.reportsPath="../${BUILD_FOLDER}/coverage-dir"
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue