list(APPEND linux_INCLUDES ui_interfaces/x11/XcbInterface.cpp ui_interfaces/x11/XcbEventInterface.cpp ui_interfaces/x11/XcbWindow.cpp ui_interfaces/x11/XcbScreen.cpp ui_interfaces/x11/XcbWindowInterface.cpp ui_interfaces/x11/XcbLayerInterface.cpp ui_interfaces/x11/XcbTextInterface.cpp ui_interfaces/x11/XcbKeyboard.cpp ui_interfaces/x11/GlxInterface.cpp) list(APPEND windows_LIB_INCLUDES managers/WindowManager.cpp managers/DesktopManager.cpp managers/EventManager.cpp) # add the library add_library(windows SHARED ${windows_LIB_INCLUDES} ${linux_INCLUDES}) target_include_directories(windows PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/managers" "${CMAKE_CURRENT_SOURCE_DIR}/ui_interfaces/x11" "${PROJECT_SOURCE_DIR}/src/geometry" "${PROJECT_SOURCE_DIR}/src/graphics" "${PROJECT_SOURCE_DIR}/src/ui_elements" "${PROJECT_SOURCE_DIR}/src/ui_elements/widgets" ) target_link_libraries(windows PUBLIC X11 X11-xcb xcb core geometry graphics ui_elements) set_property(TARGET windows PROPERTY FOLDER src) set_target_properties( windows PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON )