CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(interface C) #INCLUDE(FindPkgConfig) # Set required packages INCLUDE(FindPkgConfig) pkg_check_modules(pkgs REQUIRED glib-2.0 gio-2.0 gio-unix-2.0 tcore iniparser) FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${CMAKE_CURRENT_SOURCE_DIR}/../include/ ) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wextra -fvisibility=hidden -fPIC") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wmissing-declarations -Wcast-align") ### Purge unused code ### SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdata-sections -ffunction-sections -Wl,--gc-sections") SET(INTROSPECTION_PATH "${CMAKE_CURRENT_SOURCE_DIR}/introspection") ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/generated-code.c COMMAND gdbus-codegen --interface-prefix com.tcore.ps. --generate-c-code generated-code --c-namespace PacketService --c-generate-object-manager --generate-docbook generated-docs ${INTROSPECTION_PATH}/master.xml ${INTROSPECTION_PATH}/modem.xml ${INTROSPECTION_PATH}/service.xml ${INTROSPECTION_PATH}/context.xml COMMENT "Generating GDBus .c/.h") ADD_CUSTOM_TARGET(generated_code DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/generated-code.c) SET(INTERFACE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/src/ps_master_interface.c ${CMAKE_CURRENT_SOURCE_DIR}/src/ps_modem_interface.c ${CMAKE_CURRENT_SOURCE_DIR}/src/ps_service_interface.c ${CMAKE_CURRENT_SOURCE_DIR}/src/ps_context_interface.c #${CMAKE_CURRENT_BINARY_DIR}/generated-code.c PARENT_SCOPE )