summaryrefslogtreecommitdiffhomepage
path: root/cmake/opentrack-pkg-config.cmake
blob: 0ea92e5639a5863c635ecb39bf4e1837ce01bcb3 (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
include_guard(GLOBAL)
include(FindPkgConfig)

function(_otr_pkgconfig_add target k)
    target_compile_options(${target} PRIVATE "${${k}_CFLAGS}")
    target_link_options(${target} PRIVATE ${${k}_LDFLAGS})
    target_include_directories(${target} SYSTEM PRIVATE ${${k}_INCLUDE_DIRS} ${${k}_INCLUDEDIR})
    target_link_libraries(${target} ${${k}_LIBRARIES})
endfunction()


function(otr_pkgconfig_ ret target)
    set(${ret} 1 PARENT_SCOPE)
    foreach(i ${ARGN})
        set(k pkg-config_${i})
        pkg_check_modules(${k} ${i})
        if(${k}_FOUND)
            _otr_pkgconfig_add(${target} ${k})
        else()
            set(${ret} 0 PARENT_SCOPE)
        endif()
    endforeach()
endfunction()

function(otr_pkgconfig target)
    foreach(i ${ARGN})
        set(k pkg-config_${i})
        pkg_check_modules(${k} ${i})
        if(NOT ${k}_FOUND)
            message(FATAL_ERROR "can't find ${i} for ${target}")
        endif()
        _otr_pkgconfig_add(${target} ${k})
    endforeach()
endfunction()