diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d688333..dea66d10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -249,7 +249,7 @@ elseif(WIN32) ${CMAKE_BINARY_DIR}/doc/documentation.wxs ${CMAKE_BINARY_DIR}/misc/misc.wxs ${CMAKE_BINARY_DIR}/misc/dynamic.wxs - ) + ) target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -mwindows -MD) install(DIRECTORY ${CMAKE_BINARY_DIR}/platforms @@ -269,6 +269,10 @@ elseif(WIN32) ${OPENSSL_ROOT_DIR}/bin/libcrypto-${OPENSSL_LIBRARY_MAJOR}-x64.dll DESTINATION ${RUNTIME_DEST} ) + if (OPENSSL_LIBRARY_MAJOR EQUAL 3) + install(FILES ${OPENSSL_ROOT_DIR}/lib/ossl-modules/legacy.dll + DESTINATION ${RUNTIME_DEST}) + endif() install(CODE "execute_process(COMMAND cmake -E chdir \${CMAKE_INSTALL_PREFIX} tar cvf ${RUNTIME_DEST}.zip --format=zip -- ${RUNTIME_DEST})") set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}) diff --git a/lib/main.cpp b/lib/main.cpp index 67ee89f4..5af31d38 100644 --- a/lib/main.cpp +++ b/lib/main.cpp @@ -103,12 +103,6 @@ int main(int argc, char *argv[]) signal(SIGSEGV, segv_handler_gui); #endif -#if (OPENSSL_VERSION_NUMBER >= 0x30000000L) - if (OSSL_PROVIDER_try_load(0, "legacy", 1)) - qDebug() << "Legacy provider loaded"; - else - qWarning() << "Legacy provider NOT loaded"; -#endif bool console_only = arguments::is_console(argc, argv); XcaApplication *gui = nullptr; QCoreApplication *coreApp = nullptr; @@ -124,6 +118,18 @@ int main(int argc, char *argv[]) is_gui_app = true; } +#if (OPENSSL_VERSION_NUMBER >= 0x30000000L) +#if defined(Q_OS_WIN32) + OSSL_PROVIDER_set_default_search_path(NULL, + QCoreApplication::applicationDirPath().toUtf8().data()); + qDebug() << "OSSL_PROVIDER_set_default_search_path" + << QCoreApplication::applicationDirPath(); +#endif + if (OSSL_PROVIDER_try_load(0, "legacy", 1)) + qDebug() << "Legacy provider loaded"; + else + qWarning() << "Legacy provider NOT loaded"; +#endif QSharedPointer uimeth( UI_create_method("xca-method"), UI_destroy_method); UI_method_set_writer(uimeth.data(), uiwriter); diff --git a/misc/dynamic.wxs.in b/misc/dynamic.wxs.in index 132d1948..11f48261 100644 --- a/misc/dynamic.wxs.in +++ b/misc/dynamic.wxs.in @@ -5,6 +5,9 @@ + + + diff --git a/release/build-w64.sh b/release/build-w64.sh index f8d53cc9..c7e944f9 100644 --- a/release/build-w64.sh +++ b/release/build-w64.sh @@ -8,27 +8,26 @@ do_openssl() { test -f "$OSSL".tar.gz || curl -O https://www.openssl.org/source/"$OSSL".tar.gz test -d "$OSSL" || tar zxf "$OSSL".tar.gz cd "$OSSL" - ./Configure mingw64 --prefix=/c/OpenSSL --libdir=lib + ./Configure mingw64 --prefix=$INSTALL_DIR --libdir=lib make -j4 make install } -BUILD=build -OSSL="openssl-3.1.4" +OSSL="openssl-3.1.5" XCA_DIR="$(cd `dirname $0`/.. && pwd)" TOP_DIR="`dirname $XCA_DIR`" -QT_DIR="$TOP_DIR/6.5.3/mingw_64" - +QT_DIR="$TOP_DIR/QT/6.6.0/mingw_64" BUILDDIR="$TOP_DIR/w64-release" - INSTALL_DIR="/c/OpenSSL" JOBS=7 -cd $TOP_DIR +PATH="$TOP_DIR/QT/Tools/mingw1120_64/bin:$INSTALL_DIR/bin:$PATH" +cd $TOP_DIR do_openssl -cmake -B "$BUILDDIR" -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH="$QT_DIR" xca +cd $TOP_DIR +cmake -B "$BUILDDIR" -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH="$QT_DIR:$INSTALL_DIR" xca cmake --build "$BUILDDIR" -j5 cmake --build "$BUILDDIR" -t install cd "$BUILDDIR" && cpack