valentina/qbs/imports/VApp.qbs

103 lines
3.7 KiB
QML
Raw Normal View History

2023-01-04 17:31:50 +01:00
import qbs.FileInfo
2023-01-18 14:04:26 +01:00
import qbs.Utilities
2023-01-04 17:31:50 +01:00
CppApplication {
Depends { name: "buildconfig" }
2023-01-28 07:07:12 +01:00
Depends { name: "bundle"; condition: qbs.targetOS.contains("macos") }
2023-01-04 17:31:50 +01:00
Properties {
condition: qbs.targetOS.contains("macos")
cpp.minimumMacosVersion: buildconfig.minimumMacosVersion
}
Properties {
condition: buildconfig.enableRPath
cpp.rpaths: FileInfo.joinPaths(cpp.rpathOrigin,
"..",
qbs.targetOS.contains("macos")
? "Frameworks"
: buildconfig.installLibraryPath)
}
2023-01-09 16:29:40 +01:00
Properties {
condition: qbs.targetOS.contains("unix") && buildconfig.buildWithCcache
cpp.compilerWrapper: "ccache"
}
2023-01-04 17:31:50 +01:00
Properties {
2023-01-18 14:04:26 +01:00
condition: Qt.core.versionMajor >= 5 && Qt.core.versionMinor < 12
2023-01-04 17:31:50 +01:00
cpp.cxxLanguageVersion: "c++11"
}
2023-01-09 16:29:40 +01:00
2023-01-04 17:31:50 +01:00
// Since Qt 5.12 available support for C++17
Properties {
2023-01-18 14:04:26 +01:00
condition: Qt.core.versionMajor >= 5 && Qt.core.versionMinor >= 12
2023-01-04 17:31:50 +01:00
cpp.cxxLanguageVersion: "c++17"
}
2023-01-05 18:01:30 +01:00
Group {
2023-01-09 17:05:35 +01:00
// See question on StackOwerflow "QSslSocket error when SSL is NOT used" (http://stackoverflow.com/a/31277055/3045403)
// Copy of answer:
// We occasionally had customers getting very similar warning messages but the software was also crashing.
// We determined it was because, although we weren't using SSL either, the program found a copy of OpenSSL on the
// customer's computer and tried interfacing with it. The version it found was too old though (from Qt 5.2 onwards v1.0.0
// or later is required).
//
// Our solution was to distribute the OpenSSL DLLs along with our application (~1.65 MB). The alternative is to compile
// Qt from scratch without OpenSSL support.
2023-01-05 18:01:30 +01:00
condition: qbs.targetOS.contains("windows") && (qbs.architecture.contains("x86_64") || qbs.architecture.contains("x86"))
name: "openssl"
prefix: project.sourceDirectory + "/dist/win/"
2023-01-05 18:01:30 +01:00
files: {
var files = [];
2023-01-18 14:04:26 +01:00
if (qbs.toolchainType.contains("mingw"))
files.push("msvcr120.dll");
2023-01-05 18:01:30 +01:00
// Minimal supported OpenSSL version since Qt 5.12.4 is 1.1.1.
2023-01-18 14:04:26 +01:00
if (Utilities.versionCompare(Qt.core.version, "5.12.4") >= 0) {
2023-01-05 18:01:30 +01:00
if (qbs.architecture.contains("x86_64")) {
files.push(
"openssl/win64/libcrypto-1_1-x64.dll",
"openssl/win64/libssl-1_1-x64.dll"
2023-01-05 18:01:30 +01:00
);
} else {
files.push(
"openssl/win32/libcrypto-1_1.dll",
"openssl/win32/libssl-1_1.dll"
2023-01-05 18:01:30 +01:00
);
}
} else {
if (qbs.architecture.contains("x86_64")) {
files.push(
"openssl/win64/libeay32.dll",
"openssl/win64/ssleay32.dll"
2023-01-05 18:01:30 +01:00
);
} else {
files.push(
"openssl/win32/libeay32.dll",
"openssl/win32/ssleay32.dll"
2023-01-05 18:01:30 +01:00
);
}
}
return files;
}
fileTags: ["openssl_dist"]
qbs.install: true
qbs.installDir: buildconfig.installBinaryPath
}
Group {
name: "Precompiled headers"
condition: buildconfig.enablePCH
prefix: product.sourceDirectory + "/"
files: {
var files = ["stable.h"];
if (qbs.toolchain.contains("msvc"))
files.push("stable.cpp")
return files;
}
fileTags: ["cpp_pch_src"]
}
2023-01-04 17:31:50 +01:00
}