summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2016-05-27 17:15:21 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2016-05-27 17:15:21 +0200
commit13a8c36f354376b622cebb3348f2500d87b980a9 (patch)
treee43c967a07cfc908d8c0e7a4afeb7fb112d31f45
parent18439204034fca982b3b65c2d581f80a9ee62f56 (diff)
Adds the library libafbwsc.so
This library is intended to be used by C clients to connect to the binder and access to its fetures through the websocket. An example of integration is given by afb-client-demo.c It is known that it introduces an unwanted dependency to afb-common. This is a temporary issue. Change-Id: Ie0a395f116f6ee05679525a6399ef23ef245c944 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r--CMakeLists.txt4
-rw-r--r--afb-wsc.pc.in31
-rw-r--r--src/CMakeLists.txt23
-rw-r--r--src/afb-client-demo.c2
-rw-r--r--src/export-afbwsc.map9
5 files changed, 66 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6089f282..c5094bb8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -67,11 +67,13 @@ ADD_SUBDIRECTORY(include)
ADD_SUBDIRECTORY(plugins)
############################################################
-# installs the pkgconfig file
+# installs the pkgconfig files
CONFIGURE_FILE(afb-daemon.pc.in afb-daemon.pc @ONLY)
+CONFIGURE_FILE(afb-wsc.pc.in afb-wsc.pc @ONLY)
INSTALL(FILES
${CMAKE_CURRENT_BINARY_DIR}/afb-daemon.pc
+ ${CMAKE_CURRENT_BINARY_DIR}/afb-wsc.pc
DESTINATION
${CMAKE_INSTALL_LIBDIR}/pkgconfig
)
diff --git a/afb-wsc.pc.in b/afb-wsc.pc.in
new file mode 100644
index 00000000..a8b29d71
--- /dev/null
+++ b/afb-wsc.pc.in
@@ -0,0 +1,31 @@
+##
+## Copyright (C) 2016 "IoT.bzh"
+## Author: José Bollo <jose.bollo@iot.bzh>
+##
+## This file is part of afb-daemon project.
+##
+## Licensed under the Apache License, Version 2.0 (the "License");
+## you may not use this file except in compliance with the License.
+## You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+##
+
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+
+Name: @PROJECT_PRETTY_NAME@
+Description: @PROJECT_DESCRIPTION@
+Version: @PROJECT_VERSION@
+URL: @PROJECT_URL@
+
+Requires: json-c libsystemd
+Cflags: -I${includedir}
+Libs: -L${libdir} -lafbwsc
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3b3c6fd4..f41a3a88 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -51,6 +51,9 @@ ADD_LIBRARY(afb-lib STATIC
websock.c
)
+###########################################
+# build and install afb-daemon
+###########################################
ADD_EXECUTABLE(afb-daemon main.c)
TARGET_LINK_LIBRARIES(afb-daemon
afb-lib
@@ -66,11 +69,29 @@ TARGET_LINK_LIBRARIES(afb-daemon
INSTALL(TARGETS afb-daemon
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+###########################################
+# build and install libafbwsc
+###########################################
+ADD_LIBRARY(afbwsc SHARED afb-ws.c afb-ws-client.c afb-wsj1.c websock.c afb-common.c)
+TARGET_LINK_LIBRARIES(afbwsc
+ ${libsystemd_LIBRARIES}
+ -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/export-afbwsc.map
+ -Wl,--as-needed
+ -Wl,--gc-sections
+)
+INSTALL(TARGETS afbwsc LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+INSTALL(FILES afb-wsj1.h afb-ws-client.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/afb)
+
+###########################################
+# build and install afb-client-demo
+###########################################
ADD_EXECUTABLE(afb-client-demo afb-client-demo.c)
TARGET_LINK_LIBRARIES(afb-client-demo
- afb-lib
+ afbwsc
${link_libraries}
${libsystemd_LIBRARIES}
)
INSTALL(TARGETS afb-client-demo
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+
diff --git a/src/afb-client-demo.c b/src/afb-client-demo.c
index 349a0274..6344d6a3 100644
--- a/src/afb-client-demo.c
+++ b/src/afb-client-demo.c
@@ -30,7 +30,7 @@
#include <systemd/sd-event.h>
-#include "afb-common.h"
+#include "afb-common.h" /* TODO: remove dependency to afb-common.h */
#include "afb-wsj1.h"
#include "afb-ws-client.h"
diff --git a/src/export-afbwsc.map b/src/export-afbwsc.map
new file mode 100644
index 00000000..c775a16f
--- /dev/null
+++ b/src/export-afbwsc.map
@@ -0,0 +1,9 @@
+{
+global:
+ afb_ws_client_connect_wsj1;
+ afb_wsj1_*;
+ afb_common_*;
+local:
+ *;
+};
+