aboutsummaryrefslogtreecommitdiff
path: root/ports/openssl/vcpkg-cmake-wrapper.cmake.in
blob: f1c3176cf175ae3d16b77b4da6591b0842c71503 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
set(OPENSSL_ROOT_DIR_BAK ${OPENSSL_ROOT_DIR})
get_filename_component(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(OPENSSL_ROOT_DIR "${OPENSSL_ROOT_DIR}" PATH)
get_filename_component(OPENSSL_ROOT_DIR "${OPENSSL_ROOT_DIR}" PATH)

if(CMAKE_HOST_WIN32)
    file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" Z_VCPKG_PROGRAMFILES)
    set(Z_VCPKG_PROGRAMFILESX86_NAME "PROGRAMFILES(x86)")
    file(TO_CMAKE_PATH "$ENV{${Z_VCPKG_PROGRAMFILESX86_NAME}}" Z_VCPKG_PROGRAMFILESX86)
    set(CMAKE_SYSTEM_IGNORE_PATH
        "${Z_VCPKG_PROGRAMFILES}/OpenSSL"
        "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win32"
        "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win64"
        "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win32/lib/VC"
        "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win64/lib/VC"
        "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win32/lib/VC/static"
        "${Z_VCPKG_PROGRAMFILES}/OpenSSL-Win64/lib/VC/static"
        "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL"
        "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win32"
        "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win64"
        "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win32/lib/VC"
        "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win64/lib/VC"
        "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win32/lib/VC/static"
        "${Z_VCPKG_PROGRAMFILESX86}/OpenSSL-Win64/lib/VC/static"
        "C:/OpenSSL/"
        "C:/OpenSSL-Win32/"
        "C:/OpenSSL-Win64/"
        "C:/OpenSSL-Win32/lib/VC"
        "C:/OpenSSL-Win64/lib/VC"
        "C:/OpenSSL-Win32/lib/VC/static"
        "C:/OpenSSL-Win64/lib/VC/static"
    )
endif()

_find_package(${ARGS})

set(OPENSSL_ROOT_DIR ${OPENSSL_ROOT_DIR_BAK})

if(OPENSSL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
    if(WIN32)
        list(APPEND OPENSSL_LIBRARIES Crypt32.lib ws2_32.lib)
        if(TARGET OpenSSL::Crypto)
            set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Crypt32.lib;ws2_32.lib")
        endif()
        if(TARGET OpenSSL::SSL)
            set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Crypt32.lib;ws2_32.lib")
        endif()
    else()
        cmake_policy(PUSH)
        cmake_policy(SET CMP0057 NEW)
        find_library(OPENSSL_DL_LIBRARY NAMES dl)
        if(OPENSSL_DL_LIBRARY)
            list(APPEND OPENSSL_LIBRARIES "dl")
            if(TARGET OpenSSL::Crypto)
                set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dl")
            endif()
        endif()

        if("REQUIRED" IN_LIST ARGS)
           find_package(Threads REQUIRED)
        else()
           find_package(Threads)
        endif()
        list(APPEND OPENSSL_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
        if(TARGET OpenSSL::Crypto)
            set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Threads::Threads")
        endif()
        if(TARGET OpenSSL::SSL)
            set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Threads::Threads")
        endif()
        cmake_policy(POP)
    endif()
endif()