aboutsummaryrefslogtreecommitdiff
path: root/ports/librdkafka/vcpkg-cmake-wrapper.cmake
blob: 6f32a4521392b0258ae81ec7f641fb2a84cdaccc (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
include(SelectLibraryConfigurations)

list(REMOVE_ITEM ARGS "NO_MODULE")
list(REMOVE_ITEM ARGS "CONFIG")
list(REMOVE_ITEM ARGS "MODULE")

_find_package(${ARGS} CONFIG)

if(RdKafka_FOUND)
    if(TARGET RdKafka::rdkafka)
        set(TARGET_NAME RdKafka::rdkafka)
    else(TARGET RdKafka::rdkafka++)
        set(TARGET_NAME RdKafka::rdkafka++)
    endif()

    if(TARGET ${TARGET_NAME} AND NOT DEFINED RdKafka_INCLUDE_DIRS)
        get_target_property(_RdKafka_INCLUDE_DIRS ${TARGET_NAME} INTERFACE_INCLUDE_DIRECTORIES)
        get_target_property(_RdKafka_LINK_LIBRARIES ${TARGET_NAME} INTERFACE_LINK_LIBRARIES)

        if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
            get_target_property(_RdKafka_LIBRARY_DEBUG ${TARGET_NAME} IMPORTED_IMPLIB_DEBUG)
            get_target_property(_RdKafka_LIBRARY_RELEASE ${TARGET_NAME} IMPORTED_IMPLIB_RELEASE)
        endif()

        if(NOT _RdKafka_LIBRARY_DEBUG AND NOT _RdKafka_LIBRARY_RELEASE)
            get_target_property(_RdKafka_LIBRARY_DEBUG ${TARGET_NAME} IMPORTED_LOCATION_DEBUG)
            get_target_property(_RdKafka_LIBRARY_RELEASE ${TARGET_NAME} IMPORTED_LOCATION_RELEASE)
        endif()

        set(RdKafka_INCLUDE_DIR "${_RdKafka_INCLUDE_DIRS}")
        set(RdKafka_LIBRARY_DEBUG "${_RdKafka_LIBRARY_DEBUG}")
        set(RdKafka_LIBRARY_RELEASE "${_RdKafka_LIBRARY_RELEASE}")

        select_library_configurations(RdKafka)

        list(APPEND RdKafka_LIBRARIES ${_RdKafka_LINK_LIBRARIES})
        list(APPEND RdKafka_LIBRARY ${_RdKafka_LINK_LIBRARIES})

        unset(_RdKafka_INCLUDE_DIRS)
        unset(_RdKafka_LINK_LIBRARIES)
        unset(_RdKafka_LIBRARY_DEBUG)
        unset(_RdKafka_LIBRARY_DEBUG)
        unset(TARGET_NAME)
    endif() 
endif()