From 02c5418b9e34fcfae16004f86679da4a05afdd9c Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Fri, 11 Oct 2024 12:10:03 -0400 Subject: [PATCH] build(cmake): Require SSL 1.1.1 or higher Link using OpenSSL provided alises Remove Windows specifc check ssl macro for simpler check --- .github/workflows/ci.yml | 4 +++- CMakePresets.json | 3 ++- cmake/Libraries.cmake | 31 ++++++++++--------------------- src/lib/net/CMakeLists.txt | 2 +- 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index da6096b7e..7da8ac62a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -149,10 +149,12 @@ jobs: - name: Install dependencies env: - VCPKG_ROOT: "" # Unset deliberately to suppress 'already installed' warning. + VCPKG_ROOT: ${{github.workspace}}/vcpkg run: python ./scripts/install_deps.py - name: Configure + env: + VCPKG_ROOT: ${{github.workspace}}/vcpkg run: cmake -B build --preset=windows-release - name: Build diff --git a/CMakePresets.json b/CMakePresets.json index 6367aafd1..09c74b469 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -23,7 +23,8 @@ "generator": "Ninja", "cacheVariables": { "CMAKE_C_COMPILER": "cl.exe", - "CMAKE_CXX_COMPILER": "cl.exe" + "CMAKE_CXX_COMPILER": "cl.exe", + "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" }, "architecture": { "value": "x64", diff --git a/cmake/Libraries.cmake b/cmake/Libraries.cmake index 6f9308753..e75b0b8dd 100644 --- a/cmake/Libraries.cmake +++ b/cmake/Libraries.cmake @@ -485,28 +485,10 @@ macro(configure_windows_libs) configure_file(${PROJECT_SOURCE_DIR}/res/win/version.rc.in ${PROJECT_BINARY_DIR}/src/version.rc @ONLY) - configure_windows_openssl() + configure_openssl() endmacro() -macro(configure_windows_openssl) - set(OPENSSL_ROOT_DIR ${PROJECT_SOURCE_DIR}/vcpkg_installed/x64-windows) - set(OPENSSL_EXE_DIR ${OPENSSL_ROOT_DIR}/tools/openssl) - - if(EXISTS ${OPENSSL_EXE_DIR}) - message(VERBOSE "OpenSSL exe dir: ${OPENSSL_EXE_DIR}") - add_definitions(-DOPENSSL_EXE_DIR="${OPENSSL_EXE_DIR}") - else() - message(FATAL_ERROR "OpenSSL exe dir not found: ${OPENSSL_EXE_DIR}") - endif() - - if(EXISTS ${OPENSSL_ROOT_DIR}) - message(VERBOSE "OpenSSL root dir: ${OPENSSL_ROOT_DIR}") - else() - message(FATAL_ERROR "OpenSSL root dir not found: ${OPENSSL_ROOT_DIR}") - endif() -endmacro() - macro(configure_python) if(WIN32) find_package(Python REQUIRED QUIET) @@ -538,8 +520,15 @@ macro(configure_openssl) set(OPENSSL_USE_STATIC_LIBS TRUE) endif() - find_package(OpenSSL REQUIRED) - include_directories(${OPENSSL_INCLUDE_DIR}) + find_package(OpenSSL 1.1.1 REQUIRED COMPONENTS SSL Crypto) + if(WIN32) #Used for dev in TLS and WIX + cmake_path(SET OPENSSL_ROOT_DIR NORMALIZE + "${CMAKE_BINARY_DIR}/vcpkg_installed/x64-windows") + message(STATUS "SET OPENSSL ROOT: ${OPENSSL_ROOT_DIR}") + set(OPENSSL_EXE_DIR "${OPENSSL_ROOT_DIR}/tools/openssl") + add_definitions(-DOPENSSL_EXE_DIR="${OPENSSL_ROOT_DIR}") + endif() + endmacro() macro(configure_gtest) diff --git a/src/lib/net/CMakeLists.txt b/src/lib/net/CMakeLists.txt index 74282fd00..017837a70 100644 --- a/src/lib/net/CMakeLists.txt +++ b/src/lib/net/CMakeLists.txt @@ -25,7 +25,7 @@ add_library(net STATIC ${sources}) target_link_libraries( net - PUBLIC ${OPENSSL_LIBRARIES} + PUBLIC OpenSSL::SSL OpenSSL::Crypto PRIVATE mt io) if(WIN32)