From 5e2367aaa5137f27c722cd7f8474696b0fbaa099 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 11 Oct 2016 20:39:11 +0200 Subject: use regular configure mechanism for openssl library references don't attempt to hand-craft a library export any more. instead, use the configure system's built-in mechanism, and refer to it via QMAKE_USE. this also allows us to rely on transitive dependencies in the autotest. as a side effect, this makes the openssl-linked feature imply the openssl one. Change-Id: I5dd209b63bc8fbbc62852f6ffc472d4452ea2e68 Reviewed-by: Lars Knoll --- examples/network/network.pro | 1 - src/network/configure.json | 31 ++++++++++++------------ src/network/ssl/ssl.pri | 16 ++++-------- tests/auto/network/ssl/qsslsocket/qsslsocket.pro | 6 ----- tests/manual/manual.pro | 2 +- 5 files changed, 22 insertions(+), 34 deletions(-) diff --git a/examples/network/network.pro b/examples/network/network.pro index 5ad5f1939f..ed46ad3588 100644 --- a/examples/network/network.pro +++ b/examples/network/network.pro @@ -31,7 +31,6 @@ qtHaveModule(widgets) { } qtConfig(openssl): SUBDIRS += securesocketclient - qtConfig(openssl-linked): SUBDIRS += securesocketclient qtConfig(sctp): SUBDIRS += multistreamserver multistreamclient } diff --git a/src/network/configure.json b/src/network/configure.json index 1e08aa7c49..c9077c8968 100644 --- a/src/network/configure.json +++ b/src/network/configure.json @@ -46,13 +46,24 @@ "-lproxy" ] }, + "openssl_headers": { + "label": "OpenSSL Headers", + "export": "openssl", + "test": "unix/openssl", + "sources": [ + { + "comment": "placeholder for OPENSSL_PATH", + "libs": "" + } + ] + }, "openssl": { - "label": "OpenSSL Libraries", - "export": "", + "label": "OpenSSL", + "test": "unix/openssl", "sources": [ { "type": "openssl" }, { - "comment": "placeholder for OPENSSL_LIBS{,_{DEBUG,RELEASE}}", + "comment": "placeholder for OPENSSL_{PATH,LIBS{,_{DEBUG,RELEASE}}}", "libs": "", "builds": { "debug": "", @@ -92,11 +103,6 @@ "test": "unix/ipv6ifname", "use": "network" }, - "openssl": { - "label": "OpenSSL", - "type": "compile", - "test": "unix/openssl" - }, "sctp": { "label": "SCTP support", "type": "compile", @@ -138,7 +144,7 @@ "enable": "input.openssl == 'yes' || input.openssl == 'linked' || input.openssl == 'runtime'", "disable": "input.openssl == 'no' || input.ssl == 'no'", "autoDetect": "!config.winrt", - "condition": "!features.securetransport && tests.openssl", + "condition": "!features.securetransport && (features.openssl-linked || libs.openssl_headers)", "output": [ "privateFeature", { "type": "publicQtConfig", "condition": "!features.openssl-linked" }, @@ -149,14 +155,9 @@ "label": " Qt directly linked to OpenSSL", "enable": "input.openssl == 'linked'", "disable": "input.openssl != 'linked'", - "condition": "features.openssl && libs.openssl", + "condition": "!features.securetransport && libs.openssl", "output": [ "privateFeature", - { "type": "varAssign", "name": "OPENSSL_LIBS", "value": "libs.openssl.libs", "eval": "true" }, - { "type": "varAssign", "name": "OPENSSL_LIBS_DEBUG", "value": "libs.openssl.builds.debug.libs", - "eval": "true", "condition": "config.win32" }, - { "type": "varAssign", "name": "OPENSSL_LIBS_RELEASE", "value": "libs.openssl.builds.release.libs", - "eval": "true", "condition": "config.win32" }, { "type": "define", "name": "QT_LINKED_OPENSSL" } ] }, diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri index 79351017a6..52ce2eeade 100644 --- a/src/network/ssl/ssl.pri +++ b/src/network/ssl/ssl.pri @@ -56,7 +56,7 @@ qtConfig(ssl) { ssl/qsslellipticcurve_dummy.cpp } - qtConfig(openssl)|qtConfig(openssl-linked) { + qtConfig(openssl) { HEADERS += ssl/qsslcontext_openssl_p.h \ ssl/qsslsocket_openssl_p.h \ ssl/qsslsocket_openssl_symbols_p.h @@ -79,16 +79,10 @@ qtConfig(ssl) { # - libs in \lib\VC\static # - configure: -openssl -openssl-linked -I \include -L \lib\VC\static OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32" OPENSSL_LIBS_DEBUG="-lssleay32MDd -llibeay32MDd" OPENSSL_LIBS_RELEASE="-lssleay32MD -llibeay32MD" - include($$OUT_PWD/qtnetwork-config.pri) - - CONFIG(debug, debug|release) { - LIBS_PRIVATE += $$OPENSSL_LIBS_DEBUG - } else { - LIBS_PRIVATE += $$OPENSSL_LIBS_RELEASE - } - - QMAKE_CXXFLAGS += $$OPENSSL_CFLAGS - LIBS_PRIVATE += $$OPENSSL_LIBS + qtConfig(openssl-linked): \ + QMAKE_USE_FOR_PRIVATE += openssl + else: \ + QMAKE_USE_FOR_PRIVATE += openssl/nolink win32: LIBS_PRIVATE += -lcrypt32 } } diff --git a/tests/auto/network/ssl/qsslsocket/qsslsocket.pro b/tests/auto/network/ssl/qsslsocket/qsslsocket.pro index 5c92ca833a..4ccf0f24b0 100644 --- a/tests/auto/network/ssl/qsslsocket/qsslsocket.pro +++ b/tests/auto/network/ssl/qsslsocket/qsslsocket.pro @@ -14,12 +14,6 @@ win32 { } } -# OpenSSL support -qtConfig(openssl)|qtConfig(openssl-linked) { - # Add optional SSL libs - LIBS += $$OPENSSL_LIBS -} - DEFINES += SRCDIR=\\\"$$PWD/\\\" requires(qtConfig(private_tests)) diff --git a/tests/manual/manual.pro b/tests/manual/manual.pro index 8367994509..a93a003dff 100644 --- a/tests/manual/manual.pro +++ b/tests/manual/manual.pro @@ -54,7 +54,7 @@ dialogs \ windowtransparency \ unc -!qtConfig(openssl):!qtConfig(openssl-linked): SUBDIRS -= qssloptions +!qtConfig(openssl): SUBDIRS -= qssloptions qtConfig(opengl) { SUBDIRS += qopengltextureblitter -- cgit v1.2.3