mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-10 08:38:20 +00:00
aa9dbe654d
This allows us to build with libdecor enabled as the selection to use it is decided upon at runtime if the compositor `gnome-shell` is detected. If the libdecor development headers are installed, by default it will now be compiled in unless overridden by the user at compile time.
51 lines
1.8 KiB
CMake
51 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.0)
|
|
project(displayservers LANGUAGES C)
|
|
|
|
set(DISPLAYSERVER_H "${CMAKE_BINARY_DIR}/include/dynamic/displayservers.h")
|
|
set(DISPLAYSERVER_C "${CMAKE_BINARY_DIR}/src/displayservers.c")
|
|
|
|
file(WRITE ${DISPLAYSERVER_H} "#include \"interface/displayserver.h\"\n\n")
|
|
file(APPEND ${DISPLAYSERVER_H} "extern struct LG_DisplayServerOps * LG_DisplayServers[];\n\n")
|
|
|
|
file(WRITE ${DISPLAYSERVER_C} "#include \"interface/displayserver.h\"\n\n")
|
|
file(APPEND ${DISPLAYSERVER_C} "#include <stddef.h>\n\n")
|
|
|
|
set(DISPLAYSERVERS "_")
|
|
set(DISPLAYSERVERS_LINK "_")
|
|
function(add_displayserver name)
|
|
set(DISPLAYSERVERS "${DISPLAYSERVERS};${name}" PARENT_SCOPE)
|
|
set(DISPLAYSERVERS_LINK "${DISPLAYSERVERS_LINK};displayserver_${name}" PARENT_SCOPE)
|
|
add_subdirectory(${name})
|
|
endfunction()
|
|
|
|
option(ENABLE_WAYLAND "Build with Wayland support" ON)
|
|
add_feature_info(ENABLE_WAYLAND ENABLE_WAYLAND "Wayland support.")
|
|
|
|
# Add/remove displayservers here!
|
|
if (ENABLE_WAYLAND)
|
|
add_displayserver(Wayland)
|
|
endif()
|
|
|
|
if (ENABLE_X11)
|
|
add_displayserver(X11)
|
|
endif()
|
|
|
|
list(REMOVE_AT DISPLAYSERVERS 0)
|
|
list(REMOVE_AT DISPLAYSERVERS_LINK 0)
|
|
|
|
list(LENGTH DISPLAYSERVERS DISPLAYSERVER_COUNT)
|
|
file(APPEND ${DISPLAYSERVER_H} "#define LG_DISPLAYSERVER_COUNT ${DISPLAYSERVER_COUNT}\n")
|
|
|
|
foreach(displayserver ${DISPLAYSERVERS})
|
|
file(APPEND ${DISPLAYSERVER_C} "extern struct LG_DisplayServerOps LGDS_${displayserver};\n")
|
|
endforeach()
|
|
|
|
file(APPEND ${DISPLAYSERVER_C} "\nconst struct LG_DisplayServerOps * LG_DisplayServers[] =\n{\n")
|
|
foreach(displayserver ${DISPLAYSERVERS})
|
|
file(APPEND ${DISPLAYSERVER_C} " &LGDS_${displayserver},\n")
|
|
endforeach()
|
|
file(APPEND ${DISPLAYSERVER_C} " NULL\n};")
|
|
|
|
add_library(displayservers STATIC ${DISPLAYSERVER_C})
|
|
target_link_libraries(displayservers ${DISPLAYSERVERS_LINK})
|