summaryrefslogtreecommitdiff
path: root/dev-libs/libayatana-appindicator-glib/files/cmake/FindVala.cmake
blob: 01684478f625cfe7a95a4c0f11d7ffc1741555b6 (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
find_program(VALA_COMPILER NAMES valac)
find_program(VAPI_GEN NAMES vapigen)

if (NOT VALA_COMPILER OR NOT VAPI_GEN)
    file(GLOB _vala_bins "/usr/bin/valac-*")
    file(GLOB _vapigen_bins "/usr/bin/vapigen-*")

    if (_vala_bins)
        list(SORT _vala_bins)
        list(REVERSE _vala_bins)
        list(GET _vala_bins 0 VALA_COMPILER)
    endif()

    if (_vapigen_bins)
        list(SORT _vapigen_bins)
        list(REVERSE _vapigen_bins)
        list(GET _vapigen_bins 0 VAPI_GEN)
    endif()
endif()

if (VALA_COMPILER AND VAPI_GEN)
    set(VALA_FOUND TRUE)
    execute_process(
        COMMAND "${VALA_COMPILER}" --version
        OUTPUT_VARIABLE _vala_version
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )
    string(REGEX MATCH "[0-9]+\\.[0-9]+" VALA_VERSION "${_vala_version}")
    message(STATUS "Found Vala: ${VALA_COMPILER} and ${VAPI_GEN} (version ${VALA_VERSION})")
else()
    set(VALA_FOUND FALSE)
    message(WARNING "Could not find valac/vapigen on this system!")
endif()

mark_as_advanced(VALA_COMPILER VAPI_GEN)