From d2758a873a848fc4113a4087d53446f73c6543cb Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Tue, 7 Sep 2021 01:25:17 +0200 Subject: Split X11 and Lomiri backends - CMakeLists.txt: Add separate dependencies for the X11 backend - src/keyboard.c: Fork into keyboard-x11.c and keyboard-lomiri.c - src/CMakeLists.txt: Build backend libraries - src/keyboard-lomiri.c: Add some mock defaults for Lomiri - src/service.c: Load appropriate backend during runtime - data/org.ayatana.indicator.keyboard: Move icon to leftmost position --- src/CMakeLists.txt | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) (limited to 'src/CMakeLists.txt') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6efa4677..e4ca3439 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,28 +1,30 @@ -cmake_minimum_required(VERSION 2.8.12) -set (SERVICE_LIB "ayatanaindicatorkeyboardservice") -set (SERVICE_EXEC "ayatana-indicator-keyboard-service") +cmake_minimum_required(VERSION 3.13) -add_definitions(-DG_LOG_DOMAIN="ayatana-indicator-keyboard") +# libayatana-keyboard-backend-x11.so -# handwritten sources -set(SERVICE_MANUAL_SOURCES keyboard.c service.c) +add_library("ayatana-keyboard-x11" SHARED keyboard-x11.c) +target_link_libraries("ayatana-keyboard-x11" ${SERVICE_DEPS_LIBRARIES} ${X11_DEPS_LIBRARIES}) +set_target_properties("ayatana-keyboard-x11" PROPERTIES VERSION 0.0.0 SOVERSION 0) +install(TARGETS "ayatana-keyboard-x11" DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) -# generated sources -set(SERVICE_GENERATED_SOURCES) +# libayatana-keyboard-backend-lomiri.so -# add the bin dir to our include path so the code can find the generated header files -include_directories(${CMAKE_CURRENT_BINARY_DIR}) +add_library("ayatana-keyboard-lomiri" SHARED keyboard-lomiri.c) +target_link_libraries("ayatana-keyboard-lomiri" ${SERVICE_DEPS_LIBRARIES}) +set_target_properties("ayatana-keyboard-lomiri" PROPERTIES VERSION 0.0.0 SOVERSION 0) +install(TARGETS "ayatana-keyboard-lomiri" DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) -# add warnings/coverage info on handwritten files but not the autogenerated ones... -set_source_files_properties(${SERVICE_MANUAL_SOURCES} PROPERTIES COMPILE_FLAGS "${C_WARNING_ARGS} -g -std=c99") +# libayatanaindicatorkeyboardservice.a -# the service library for tests to link against (basically, everything except main()) -add_library(${SERVICE_LIB} STATIC ${SERVICE_MANUAL_SOURCES} ${SERVICE_GENERATED_SOURCES}) +add_definitions(-DG_LOG_DOMAIN="ayatana-indicator-keyboard") +set_source_files_properties(service.c PROPERTIES COMPILE_FLAGS "-std=c99") +add_library("ayatanaindicatorkeyboardservice" STATIC service.c) include_directories(${CMAKE_SOURCE_DIR}) link_directories(${SERVICE_DEPS_LIBRARY_DIRS}) -# the executable: lib + main() -add_executable (${SERVICE_EXEC} main.c) -set_source_files_properties(${SERVICE_SOURCES} main.c PROPERTIES COMPILE_FLAGS "${C_WARNING_ARGS} -std=c99") -target_link_libraries (${SERVICE_EXEC} ${SERVICE_LIB} ${SERVICE_DEPS_LIBRARIES}) -install (TARGETS ${SERVICE_EXEC} RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_PKGLIBEXECDIR}) +# ayatana-indicator-keyboard-service + +add_executable("ayatana-indicator-keyboard-service" main.c) +set_source_files_properties(service.c main.c PROPERTIES COMPILE_FLAGS "-std=c99") +target_link_libraries("ayatana-indicator-keyboard-service" "ayatanaindicatorkeyboardservice" "${SERVICE_DEPS_LIBRARIES} -ldl") +install(TARGETS "ayatana-indicator-keyboard-service" RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_PKGLIBEXECDIR}") -- cgit v1.2.3