cmake: add eldbus.
authorGustavo Sverzut Barbieri <barbieri@profusion.mobi>
Thu, 26 Jan 2017 18:16:15 +0000 (16:16 -0200)
committerGustavo Sverzut Barbieri <barbieri@profusion.mobi>
Thu, 26 Jan 2017 18:16:15 +0000 (16:16 -0200)
CMakeLists.txt
cmake/config/eldbus.cmake [new file with mode: 0644]
cmake/helpers/EflMacros.cmake
src/bin/eldbus/CMakeLists.txt [new file with mode: 0644]
src/lib/eldbus/CMakeLists.txt [new file with mode: 0644]
src/tests/eldbus/CMakeLists.txt [new file with mode: 0644]

index e2cb016..0fbd5db 100644 (file)
@@ -38,6 +38,7 @@ EFL_LIB(efl)
 EFL_LIB(emile)
 EFL_LIB(eet)
 EFL_LIB(ecore)
+EFL_LIB(eldbus)
 
 EFL_OPTIONS_SUMMARY()
 
diff --git a/cmake/config/eldbus.cmake b/cmake/config/eldbus.cmake
new file mode 100644 (file)
index 0000000..cb8eeaa
--- /dev/null
@@ -0,0 +1 @@
+pkg_check_modules(DBUS dbus-1 REQUIRED)
index 7699db3..8b8711f 100644 (file)
@@ -810,6 +810,8 @@ define_property(TARGET PROPERTY EFL_EO_PUBLIC
 #  - DEFINITIONS: target_compile_definitions()
 #  - PUBLIC_EO_FILES: the eo files will be used to build that lib, and will be installed to the filesystem
 #  - EO_FILES: the eo files will be used to build that lib but not installed.
+#  - COMPILE_FLAGS: extra CFLAGS to append.
+#  - LINK_FLAGS: extra LDFLAGS to append.
 #
 # Defines the following variables that can be used within the included files:
 #  - EFL_LIB_CURRENT to ${Name}
@@ -881,6 +883,8 @@ function(EFL_LIB _target)
   set(DEFINITIONS)
   set(PUBLIC_EO_FILES)
   set(EO_FILES)
+  set(COMPILE_FLAGS)
+  set(LINK_FLAGS)
 
   string(TOUPPER "${_target}" _target_uc)
 
@@ -911,8 +915,8 @@ function(EFL_LIB _target)
 
   EFL_PKG_CONFIG_EVAL(${_target} "${PKG_CONFIG_REQUIRES_PRIVATE}" "${PKG_CONFIG_REQUIRES}")
 
-  set(__link_flags ${${_target}_PKG_CONFIG_REQUIRES_PRIVATE_LDFLAGS} ${${_target}_PKG_CONFIG_REQUIRES_LDFLAGS})
-  set(__compile_flags ${${_target}_PKG_CONFIG_REQUIRES_PRIVATE_CFLAGS} ${${_target}_PKG_CONFIG_REQUIRES_CFLAGS} -DPACKAGE_DATA_DIR=\\"${CMAKE_INSTALL_FULL_DATADIR}/${_target}/\\")
+  set(__link_flags ${${_target}_PKG_CONFIG_REQUIRES_PRIVATE_LDFLAGS} ${${_target}_PKG_CONFIG_REQUIRES_LDFLAGS} ${LINK_FLAGS})
+  set(__compile_flags ${${_target}_PKG_CONFIG_REQUIRES_PRIVATE_CFLAGS} ${${_target}_PKG_CONFIG_REQUIRES_CFLAGS} -DPACKAGE_DATA_DIR=\\"${CMAKE_INSTALL_FULL_DATADIR}/${_target}/\\" ${COMPILE_FLAGS})
 
   set(_link_flags)
   foreach(_l ${__link_flags})
@@ -1031,6 +1035,8 @@ endfunction()
 #  - LIBRARIES: results in target_link_libraries()
 #  - DEFINITIONS: target_compile_definitions()
 #  - INSTALL_DIR: defaults to bin. If empty, won't install.
+#  - COMPILE_FLAGS: extra CFLAGS to append.
+#  - LINK_FLAGS: extra LDFLAGS to append.
 #
 # NOTE: it's meant to be called by files included by EFL_LIB() or similar,
 # otherwise you need to prepare the environment yourself.
@@ -1051,6 +1057,8 @@ function(EFL_BIN _binname)
   set(INSTALL_DIR bin)
   set(PKG_CONFIG_REQUIRES)
   set(PKG_CONFIG_REQUIRES_PRIVATE)
+  set(COMPILE_FLAGS)
+  set(LINK_FLAGS)
 
   if(_binname STREQUAL ${EFL_LIB_CURRENT})
     set(_binsrcdir "${EFL_BIN_SOURCE_DIR}")
@@ -1112,12 +1120,12 @@ function(EFL_BIN _binname)
   endif()
 
   set(_link_flags)
-  foreach(_l ${${_bintarget}_PKG_CONFIG_REQUIRES_PRIVATE_LDFLAGS})
+  foreach(_l ${${_bintarget}_PKG_CONFIG_REQUIRES_PRIVATE_LDFLAGS} ${LINK_FLAGS})
     set(_link_flags "${_link_flags} ${_l}")
   endforeach()
 
   set(_compile_flags)
-  foreach(_c ${${_bintarget}_PKG_CONFIG_REQUIRES_PRIVATE_CFLAGS})
+  foreach(_c ${${_bintarget}_PKG_CONFIG_REQUIRES_PRIVATE_CFLAGS} ${COMPILE_FLAGS})
     set(_compile_flags "${_compile_flags} ${_c}")
   endforeach()
 
@@ -1147,6 +1155,8 @@ endfunction()
 #    ${EFL_LIB_CURRENT}-modules
 #  - LIBRARIES: results in target_link_libraries()
 #  - DEFINITIONS: target_compile_definitions()
+#  - COMPILE_FLAGS: extra CFLAGS to append.
+#  - LINK_FLAGS: extra LDFLAGS to append.
 #
 # NOTE: it's meant to be called by files included by EFL_LIB() or similar,
 # otherwise you need to prepare the environment yourself.
@@ -1170,6 +1180,8 @@ function(EFL_TEST _testname)
   set(DEFINITIONS)
   set(PKG_CONFIG_REQUIRES)
   set(PKG_CONFIG_REQUIRES_PRIVATE)
+  set(COMPILE_FLAGS)
+  set(LINK_FLAGS)
 
   if(_testname STREQUAL ${EFL_LIB_CURRENT})
     set(_testsrcdir "${EFL_TESTS_SOURCE_DIR}")
@@ -1236,12 +1248,12 @@ function(EFL_TEST _testname)
   endif()
 
   set(_link_flags)
-  foreach(_l ${${_testtarget}_PKG_CONFIG_REQUIRES_PRIVATE_LDFLAGS})
+  foreach(_l ${${_testtarget}_PKG_CONFIG_REQUIRES_PRIVATE_LDFLAGS} ${LINK_FLAGS})
     set(_link_flags "${_link_flags} ${_l}")
   endforeach()
 
   set(_compile_flags)
-  foreach(_c ${${_testtarget}_PKG_CONFIG_REQUIRES_PRIVATE_CFLAGS})
+  foreach(_c ${${_testtarget}_PKG_CONFIG_REQUIRES_PRIVATE_CFLAGS} ${COMPILE_FLAGS})
     set(_compile_flags "${_compile_flags} ${_c}")
   endforeach()
 
@@ -1279,6 +1291,8 @@ endfunction()
 #  - PKG_CONFIG_REQUIRES_PRIVATE: results in
 #    ${Name}_PKG_CONFIG_REQUIRES_PRIVATE. Elements after 'OPTIONAL'
 #    keyword are optional.
+#  - COMPILE_FLAGS: extra CFLAGS to append.
+#  - LINK_FLAGS: extra LDFLAGS to append.
 #
 # NOTE: since the file will be included it shouldn't mess with global variables!
 function(EFL_MODULE _modname)
@@ -1314,6 +1328,8 @@ function(EFL_MODULE _modname)
   set(INSTALL_DIR ${_modoutdir})
   set(PKG_CONFIG_REQUIRES)
   set(PKG_CONFIG_REQUIRES_PRIVATE)
+  set(COMPILE_FLAGS)
+  set(LINK_FLAGS)
 
   _EFL_INCLUDE_OR_DETECT("Module ${_modtarget}" ${_modsrcdir})
 
@@ -1358,12 +1374,12 @@ function(EFL_MODULE _modname)
   target_compile_definitions(${_modtarget} PRIVATE ${DEFINITIONS})
 
   set(_link_flags)
-  foreach(_l ${${_modtarget}_PKG_CONFIG_REQUIRES_PRIVATE_LDFLAGS})
+  foreach(_l ${${_modtarget}_PKG_CONFIG_REQUIRES_PRIVATE_LDFLAGS} ${LINK_FLAGS})
     set(_link_flags "${_link_flags} ${_l}")
   endforeach()
 
   set(_compile_flags)
-  foreach(_c ${${_modtarget}_PKG_CONFIG_REQUIRES_PRIVATE_CFLAGS})
+  foreach(_c ${${_modtarget}_PKG_CONFIG_REQUIRES_PRIVATE_CFLAGS} ${COMPILE_FLAGS})
     set(_compile_flags "${_compile_flags} ${_c}")
   endforeach()
 
diff --git a/src/bin/eldbus/CMakeLists.txt b/src/bin/eldbus/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f83a09a
--- /dev/null
@@ -0,0 +1,15 @@
+set(OUTPUT_NAME eldbus-codegen)
+
+set(LIBRARIES
+  eina
+  ecore
+)
+
+set(SOURCES
+  client.c
+  codegen.h
+  dbus.c
+  parser.c
+  source_client.c
+  utils.c
+)
diff --git a/src/lib/eldbus/CMakeLists.txt b/src/lib/eldbus/CMakeLists.txt
new file mode 100644 (file)
index 0000000..ecbea4c
--- /dev/null
@@ -0,0 +1,70 @@
+set(DESCRIPTION "D-Bus access from Ecore")
+
+set(PKG_CONFIG_REQUIRES_PRIVATE
+  dbus-1
+)
+
+set(LIBRARIES
+  eina
+  eo
+  efl
+  ecore
+)
+
+set(PUBLIC_EO_FILES
+  eldbus_model_arguments.eo
+  eldbus_model_connection.eo
+  eldbus_model_method.eo
+  eldbus_model_object.eo
+  eldbus_model_proxy.eo
+  eldbus_model_signal.eo
+  eldbus_types.eot
+)
+
+set(PUBLIC_HEADERS
+  Eldbus.h
+  eldbus_connection.h
+  eldbus_freedesktop.h
+  eldbus_introspection.h
+  eldbus_message.h
+  eldbus_message_eina_value.h
+  eldbus_message_helper.h
+  Eldbus_Model.h
+  eldbus_object.h
+  eldbus_pending.h
+  eldbus_proxy.h
+  eldbus_service.h
+  eldbus_signal_handler.h
+)
+
+set(SOURCES
+  eldbus_core.c
+  eldbus_freedesktop.c
+  eldbus_introspection.c
+  eldbus_message.c
+  eldbus_message_from_eina_value.c
+  eldbus_message_helper.c
+  eldbus_message_to_eina_value.c
+  eldbus_model_arguments.c
+  eldbus_model_arguments_private.h
+  eldbus_model_connection.c
+  eldbus_model_connection_private.h
+  eldbus_model_method.c
+  eldbus_model_method_private.h
+  eldbus_model_object.c
+  eldbus_model_object_private.h
+  eldbus_model_private.h
+  eldbus_model_proxy.c
+  eldbus_model_proxy_private.h
+  eldbus_model_signal.c
+  eldbus_model_signal_private.h
+  eldbus_object.c
+  eldbus_pending.c
+  eldbus_private.h
+  eldbus_private_types.h
+  eldbus_proxy.c
+  eldbus_service.c
+  eldbus_signal_handler.c
+)
+
+set(COMPILE_FLAGS "-include ${CMAKE_BINARY_DIR}/src/lib/efl/config.h")
diff --git a/src/tests/eldbus/CMakeLists.txt b/src/tests/eldbus/CMakeLists.txt
new file mode 100644 (file)
index 0000000..df058f9
--- /dev/null
@@ -0,0 +1,20 @@
+set(SOURCES
+  eldbus_fake_server.c
+  eldbus_fake_server.h
+  eldbus_suite.c
+  eldbus_suite.h
+  eldbus_test_eldbus_init.c
+  eldbus_test_eldbus_model.c
+  eldbus_test_eldbus_model.h
+  eldbus_test_eldbus_model_connection.c
+  eldbus_test_eldbus_model_method.c
+  eldbus_test_eldbus_model_object.c
+  eldbus_test_eldbus_model_proxy.c
+  eldbus_test_eldbus_model_signal.c
+  eldbus_test_fake_server_eldbus_model_proxy.c
+)
+
+set(LIBRARIES
+  ecore
+  eina
+)