Compare commits

..

No commits in common. "cb13946e4f9a3ceef31353bd50c35c170971fc2f" and "47937245a6e4ed5eaf589461094f5002cd7874f5" have entirely different histories.

25 changed files with 8053 additions and 7958 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 }
} }
} }

View file

@ -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

View file

@ -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

View file

@ -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];
}
}
}

View file

@ -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