aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/freeglut/vcpkg-cmake-wrapper.cmake
blob: f7f792c3a60612dd629b4d1c91e5fef43837c1a1 (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
_find_package(${ARGS})
if(GLUT_FOUND AND UNIX AND NOT ANDROID)
    cmake_policy(PUSH)
    cmake_policy(SET CMP0012 NEW)
    cmake_policy(SET CMP0054 NEW)
    cmake_policy(SET CMP0057 NEW)

    if(GLUT_LINK_LIBRARIES)
        # Since CMake 3.22, FindGLUT.cmake loads the glut pkg-config module.
        # We need `-lglut` resolved to an absolute path.
        set(GLUT_LIBRARIES "${GLUT_LINK_LIBRARIES}")
    else()
        find_package(X11)
        # Before CMake 3.14, FindX11.cmake doesn't create imported targets.
        # For X11, we simply assume shared linkage of system libs,
        # so order and transitive usage requirements don't matter.
        if(X11_FOUND AND NOT "X11" IN_LIST GLUT_LIBRARIES)
            list(APPEND GLUT_LIBRARIES "${X11_X11_LIB}")
            set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_X11_LIB}")
        endif()
        if(X11_Xrandr_FOUND AND NOT "Xrandr" IN_LIST GLUT_LIBRARIES)
            list(APPEND GLUT_LIBRARIES "${X11_Xrandr_LIB}")
            set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_Xrandr_LIB}")
        endif()
        # X11_xf86vmode_FOUND for CMake < 3.14
        if((X11_Xxf86vm_FOUND OR X11_xf86vmode_FOUND) AND NOT "Xxf86vm" IN_LIST GLUT_LIBRARIES)
            list(APPEND GLUT_LIBRARIES "${X11_Xxf86vm_LIB}")
            set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_Xxf86vm_LIB}")
        endif()
        if(X11_Xi_FOUND AND NOT GLUT_Xi_LIBRARY AND NOT "Xi" IN_LIST GLUT_LIBRARIES)
            list(APPEND GLUT_LIBRARIES "${X11_Xi_LIB}")
            set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_Xi_LIB}")
        endif()
    endif()

    cmake_policy(POP)
endif()