As Thiago mentioned, dynamically linking OpenSSL tends to be easier.
From what I can tell, the vcpkg directory should work with the 
FindOpenssl.cmake module.

You also may have trouble if you are mixing dynamically- and statically linked 
libraries!
Since they are likely linking the VC runtime in the same manner, they _cannot_ 
be mixed.
And, if I remember correctly, the default ‘static’ triplets in vcpkg all link 
the runtime statically.
Which means Qt and all other dependencies must also be built this way 
(-static-runtime for Qt).

You can also define your own triplet with dynamic lining of the VC runtime, but 
I’m not familiar with the process.

Mårten

From: Nuno Santos <nuno.san...@imaginando.pt>
Sent: fredag 6. januar 2023 19:04
To: Mårten Nordheim <marten.nordh...@qt.io>
Cc: Qt Interest <interest@qt-project.org>; Macieira, Thiago 
<thiago.macie...@intel.com>
Subject: Re: [Interest] Qt6 - Fails to compile when openssl-linked enabled

Marten,

I’m now trying to do the same in Windows but having problems.

I’m using vcpkg to build openssl and the only different in the configure line 
is the path to the installed vcpkgs


..\configure.bat -prefix C:\Qt\6.4.1\msvc2019_static -static -debug-and-release 
-nomake examples -nomake tests -nomake benchmarks -nomake manual-tests -nomake 
minimal-static-tests -openssl-linked -qtnamespace com_imaginando_qt_6_4_1 -- 
-DOPENSSL_ROOT_DIR="C:\vcpkg\installed\x64-windows-static\" 
-DOPENSSL_USE_STATIC_LIBS=TRUE

Inside C:\vcpkg\installed\x64-windows-static\include there is the openssl folder


And inside the C:\vcpkg\installed\x64-windows-static\lib there is:


libcrypto.lib
libeay32.lib
libssl.lib

However, the result is:

CMake Error at qtbase/cmake/QtBuildInformation.cmake:490 (message):
  Feature "openssl": Forcing to "ON" breaks its condition:      
QT_FEATURE_openssl_runtime OR QT_FEATURE_openssl_linked  Condition values dump: 
     QT_FEATURE_openssl_runtime = "OFF"
      QT_FEATURE_openssl_linked = "OFF"Call Stack (most recent call first):
  qtbase/cmake/QtFeature.cmake:281 (qt_configure_add_report_error)
  qtbase/cmake/QtFeature.cmake:403 (qt_feature_check_and_save_internal_value)
  qtbase/cmake/QtFeature.cmake:155 (qt_evaluate_feature)
  qtbase/cmake/QtFeature.cmake:349 (qt_evaluate_config_expression)
  qtbase/cmake/QtFeature.cmake:606 (qt_evaluate_feature)
  qtbase/cmake/QtFeature.cmake:575 (qt_feature_module_end)
  qtbase/src/CMakeLists.txt:9 (qt_feature_evaluate_features)


Trying to build without this, worked perfectly.

What am I missing here?

Thanks!

Nuno


On 8 Dec 2022, at 15:04, Nuno Santos 
<nuno.san...@imaginando.pt<mailto:nuno.san...@imaginando.pt>> wrote:

Marten,

I’ve noticed the nuance yesterday and tried but there was an error but I didn’t 
read the output correctly. I had a typo in a second define, 
OPENSSL_USE_STATIC_LIBS, which needed to be set to true. The following 
configure line worked:

./configure -prefix /Users/nsantos/Qt/6.4.1/macos_static -static 
-debug-and-release -nomake examples -nomake tests -nomake benchmarks -nomake 
manual-tests -nomake minimal-static-tests -openssl-linked -- 
-DOPENSSL_ROOT_DIR="/Users/nsantos/Qt-Utils/openssl" 
-DOPENSSL_USE_STATIC_LIBS=TRUE

Thiago, using openssl linked on Mac was a decision I have made a many years ago 
and I can’t remember the reason. Maybe it is not a good decision anymore. I 
know Apple has its SecureTransport framework. I might need to evaluate it again.

Thanks!

Regards,

Nuno


On 8 Dec 2022, at 08:49, Mårten Nordheim 
<marten.nordh...@qt.io<mailto:marten.nordh...@qt.io>> wrote:

The parameters to cmake (-D*) must be passed after a separating double dash 
(--).
 So, this:
-openssl-linked -DOPENSSL_ROOT_DIR="…"
 Should be like:
-openssl-linked -- -DOPENSSL_ROOT_DIR="…"
 Mårten
 From: Nuno Santos <nuno.san...@imaginando.pt<mailto:nuno.san...@imaginando.pt>>
Sent: onsdag 7. desember 2022 17:40
To: Mårten Nordheim <marten.nordh...@qt.io<mailto:marten.nordh...@qt.io>>
Cc: Qt Interest <interest@qt-project.org<mailto:interest@qt-project.org>>
Subject: Re: [Interest] Qt6 - Fails to compile when openssl-linked enabled
 Marten,
 Tried again without success. Maybe it's the directory layout. I don’t know I’m 
in the dark since the the CMakeOutput.log and CMakeError.log do not even 
mention ssl anywhere. Below is the new configure call:
 ./configure -prefix /Users/nsantos/Qt/6.4.2/macos -static -debug-and-release 
-nomake examples -nomake tests -nomake benchmarks -nomake manual-tests -nomake 
minimal-static-tests -openssl-linked 
-DOPENSSL_ROOT_DIR="/Users/nsantos/Qt-Utils/openssl" -DOPENSSL_USE_STATIC_LIBS
 Where:
 > find /Users/nsantos/Qt-Utils/openssl


gives:
 /Users/nsantos/Qt-Utils/openssl
/Users/nsantos/Qt-Utils/openssl/include
/Users/nsantos/Qt-Utils/openssl/include/crypto
/Users/nsantos/Qt-Utils/openssl/include/crypto/md32_common.h
…
/Users/nsantos/Qt-Utils/openssl/lib
/Users/nsantos/Qt-Utils/openssl/lib/libcrypto.a
/Users/nsantos/Qt-Utils/openssl/lib/libssl.a
 Where can I find more information?
 Thank you!
 Best regards,
 Nuno


On 7 Dec 2022, at 13:50, Mårten Nordheim 
<marten.nordh...@qt.io<mailto:marten.nordh...@qt.io>> wrote:
 Ah, I don’t think OPENSSL_LIBS is in use anymore!
I think it was still left printed at the end of configure, I’m not sure the 
change removing it was merged into 6.4.
Please use the FindOpenSSL cmake find-module variables: 
https://cmake.org/cmake/help/latest/module/FindOpenSSL.html
In your case, passing -DOPENSSL_ROOT_DIR="/Users/nsantos/Qt-Utils/openssl"
at the end of your configure line, something like this:
 ./configure -prefix …. -openssl-linked -- -DOPENSSL_ROOT_DIR="…"
 Mårten
 From: Nuno Santos <nuno.san...@imaginando.pt<mailto:nuno.san...@imaginando.pt>>
Sent: onsdag 7. desember 2022 14:01
To: Mårten Nordheim <marten.nordh...@qt.io<mailto:marten.nordh...@qt.io>>
Cc: Qt Interest <interest@qt-project.org<mailto:interest@qt-project.org>>
Subject: Re: [Interest] Qt6 - Fails to compile when openssl-linked enabled
 Marten,
 Thank you for your reply.
 Yes the patch required? My configure line was:
 ./configure -prefix /Users/nsantos/Qt/6.4.2/macos -static -debug-and-release 
-nomake examples -nomake tests -nomake benchmarks -nomake manual-tests -nomake 
minimal-static-tests -openssl-linked -I/Users/nsantos/Qt-Utils/openssl/include 
OPENSSL_LIBS="/Users/nsantos/Qt-Utils/openssl/lib/libssl.a 
/Users/nsantos/Qt-Utils/openssl/lib/libcrypto.a”
 Best,
 Nuno



On 7 Dec 2022, at 11:59, Mårten Nordheim 
<marten.nordh...@qt.io<mailto:marten.nordh...@qt.io>> wrote:
 [Reply is inline]



-----Original Message-----
From: Nuno Santos <nuno.san...@imaginando.pt<mailto:nuno.san...@imaginando.pt>>
Sent: onsdag 7. desember 2022 11:50
To: Mårten Nordheim <marten.nordh...@qt.io<mailto:marten.nordh...@qt.io>>
Cc: Qt Interest <interest@qt-project.org<mailto:interest@qt-project.org>>
Subject: Re: [Interest] Qt6 - Fails to compile when openssl-linked enabled

Marten,

Thanks for your reply.

I’m on branch 6.4.2 and before any configure I always call:

git submodule foreach --recursive "git clean -dfx" && git clean -dfx

Should I try with another branch?

No, it shouldn't be needed. I just configured 6.4 branch locally and it
works fine. With only
https://codereview.qt-project.org/c/qt/qtbase/+/446542
as the extra patch.
I think this might indicate that the openssl compile test fails, which
could disable the feature. But just to make sure; do you call configure
like `../qt5/configure ... -openssl-linked` ?




Regards,

Nuno



On 7 Dec 2022, at 09:45, Mårten Nordheim 
<marten.nordh...@qt.io<mailto:marten.nordh...@qt.io>>
wrote:



Hey,

If this is a clean build I need to know which branch you are building.
If not then you could try deleting CMakeCache.txt and reconfiguring,
there were some changes around configuration of openssl recently
which may be conflicting with values in the cache.

Mårten



-----Original Message-----
From: Interest 
<interest-boun...@qt-project.org<mailto:interest-boun...@qt-project.org>> On 
Behalf Of Nuno
Santos
Sent: onsdag 7. desember 2022 10:28
To: Qt Interest <interest@qt-project.org<mailto:interest@qt-project.org>>
Subject: [Interest] Qt6 - Fails to compile when openssl-linked enabled

Hi,

I’m trying to compile Qt 6 with openssl-linked but I’m having this error and
I’m not being able to interpret it.

What is failing? Can you please help me here?

Thanks in advance!

Regards,

Nuno


Configuring submodule 'qtbase'
CMake Error at qtbase/cmake/QtBuildInformation.cmake:490 (message):
Feature "openssl": Forcing to "ON" breaks its condition:

    QT_FEATURE_openssl_runtime OR QT_FEATURE_openssl_linked

Condition values dump:

    QT_FEATURE_openssl_runtime = "OFF"
    QT_FEATURE_openssl_linked = "OFF"

Call Stack (most recent call first):
qtbase/cmake/QtFeature.cmake:281 (qt_configure_add_report_error)
qtbase/cmake/QtFeature.cmake:403
(qt_feature_check_and_save_internal_value)
qtbase/cmake/QtFeature.cmake:155 (qt_evaluate_feature)
qtbase/cmake/QtFeature.cmake:349 (qt_evaluate_config_expression)
qtbase/cmake/QtFeature.cmake:606 (qt_evaluate_feature)
qtbase/cmake/QtFeature.cmake:575 (qt_feature_module_end)
qtbase/src/CMakeLists.txt:9 (qt_feature_evaluate_features)


-- Could NOT find md4c (missing: md4c_DIR)
-- Could NOT find md4c (missing: md4c_DIR)
CMake Error at qtbase/cmake/QtTargetHelpers.cmake:832 (message):
WrapOpenSSLHeaders::WrapOpenSSLHeaders is not a valid target.
Call Stack (most recent call first):
qtbase/src/plugins/tls/openssl/CMakeLists.txt:54
(qt_internal_add_target_include_dirs)


-- Configuring incomplete, errors occurred!
_______________________________________________
Interest mailing list
Interest@qt-project.org<mailto:Interest@qt-project.org>
https://lists.qt-project.org/listinfo/interest


_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to