diff --git a/configure b/configure index db4abf977bc12492ee509cc0902dc9ba95011c46..234ddc697163cd5ec18b9fe9cc978f0d0ff563a8 100755 --- a/configure +++ b/configure @@ -6776,9 +6776,14 @@ QT_LIBINFIX = $QT_LIBINFIX QT_NAMESPACE = $QT_NAMESPACE QT_EDITION = $Edition - EOF +if [ "$Edition" != "OpenSource" ] && [ "$Edition" != "Preview" ]; then + echo "QT_LICHECK = $Licheck" >> "$QTCONFIG.tmp" + echo "QT_RELEASE_DATE = $ReleaseDate" >> "$QTCONFIG.tmp" +fi +echo >> "$QTCONFIG.tmp" + if [ "$CFG_SHARED" = "no" ]; then echo "QT_DEFAULT_QPA_PLUGIN = q$QT_QPA_DEFAULT_PLATFORM" >> "$QTCONFIG.tmp" echo >> "$QTCONFIG.tmp" diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf index b06b9d6cfce198bc58839458267c93a0e7648adb..eb3281ea1d14e182e3cf5f0e274675391bf8ac7d 100644 --- a/mkspecs/features/default_pre.prf +++ b/mkspecs/features/default_pre.prf @@ -7,3 +7,18 @@ CONFIG = \ lex yacc debug exceptions depend_includepath \ testcase_targets import_plugins import_qpa_plugin \ $$CONFIG + +!build_pass:defined(QT_EDITION, var):!equals(QT_EDITION, "OpenSource"):!equals(QT_EDITION, "Preview") { + # + # call license checker (but cache result for one day) + # + today = $$section(_DATE_, " ", 0, 2) + !isEqual(QMAKE_LICHECK_TIMESTAMP, $$today) { + !system("$$system_quote($$system_path($$[QT_HOST_BINS/src]/$$QT_LICHECK)) check" \ + "$$QT_RELEASE_DATE $$[QMAKE_SPEC] $$[QMAKE_XSPEC]"): \ + error("License check failed! Giving up ...") + + cache(QMAKE_LICHECK_TIMESTAMP, set stash, today) + } + unset(today) +} diff --git a/qtbase.pro b/qtbase.pro index bae26414046e549c5766a95952d09fda27270d8a..51e8fb8760b5c37cdaa4d29d0e19f8fcf0149a6b 100644 --- a/qtbase.pro +++ b/qtbase.pro @@ -46,6 +46,11 @@ equals(QMAKE_HOST.os, Windows) { } INSTALLS += qmake +#licheck +licheck.path = $$[QT_HOST_BINS] +licheck.files = $$PWD/bin/$$QT_LICHECK +exists($$licheck.files): INSTALLS += licheck + #syncqt syncqt.path = $$[QT_HOST_BINS] syncqt.files = $$PWD/bin/syncqt.pl diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 4d1ce3d11326f393dfc98ece3f001329fedb7dfd..6bf06463784b68c5cad1fc7493f21a5c17cc67cd 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -3463,6 +3463,11 @@ void Configure::generateQConfigPri() configStream << endl << "QT_EDITION = " << dictionary["EDITION"] << endl; + if (dictionary["EDITION"] != "OpenSource" && dictionary["EDITION"] != "Preview") { + configStream << "QT_LICHECK = " << dictionary["LICHECK"] << endl; + configStream << "QT_RELEASE_DATE = " << dictionary["RELEASEDATE"] << endl; + } + if (!dictionary["CFG_SYSROOT"].isEmpty() && dictionary["CFG_GCC_SYSROOT"] == "yes") { configStream << endl << "# sysroot" << endl diff --git a/tools/configure/tools.cpp b/tools/configure/tools.cpp index 83d969ce16f9a96288f3350ac6aaa303de4b30e9..095e798332f9492fb6157c82fe0a8bf08acfdf7a 100644 --- a/tools/configure/tools.cpp +++ b/tools/configure/tools.cpp @@ -54,6 +54,8 @@ void Tools::checkLicense(QMap<QString,QString> &dictionary, return; } + dictionary["LICHECK"] = "licheck.exe"; + const QString licenseChecker = QDir::toNativeSeparators(sourcePath + "/bin/licheck.exe");