aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2018-12-27 12:04:59 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2018-12-27 17:06:17 +0100
commitf430407fd34ec2897359245a6e1ff951e5da5bc6 (patch)
tree243270e7e1c834bda5e13a29477aafa49ea34266
parent9cdebd57cf048c1c9ba89943f6ec2f9012bad6fc (diff)
Split the Qt part of the afb-helperssandbox/claneys/shared-lib
Split the Qt part of the afb-helpers in another library with only Qt helpers functions that could be enabled using the CMake option: AFB_HELPERS_QT=ON Bug-AGL: SPEC-1689 Change-Id: I761fef574ea61235226f3a1cb1663ddebec41c6d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
-rw-r--r--CMakeLists.txt102
-rw-r--r--afb-helpers-qt.pc.in30
2 files changed, 93 insertions, 39 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3477ff3..c54809b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,11 +18,11 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.3)
include(GNUInstallDirs)
+
set(TARGET_NAME "afb-helpers")
set(PROJECT_PRETTY_NAME "Afb Helpers")
-set(PROJECT_DESCRIPTION "afb helpers")
-set(PROJECT_URL "https://github.com/iotbzh/4a-softmixer")
-set(PROJECT_URL "https://gerrit.automotivelinux.org:29418/apps/app-afb-helpers-submodule.git")
+set(PROJECT_DESCRIPTION "Library providing some helpful functions for apps using Application Framework Binder")
+set(PROJECT_URL "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/src/libafb-helpers")
set(PROJECT_AUTHOR "Ar Foll, Fulup")
set(PROJECT_AUTHOR_MAIL "fulup@iot.bzh")
set(PROJECT_LICENSE "APL2.0")
@@ -35,12 +35,19 @@ set(CMAKE_AUTORCC ON)
if(NOT CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr")
endif()
+
add_definitions(-DAFB_BINDING_VERSION=3)
+ADD_COMPILE_OPTIONS(-DCONTROL_SUPPORT_LUA -Wall -Wextra -Wconversion -Wno-unused-parameter -Wno-sign-compare -Wno-sign-conversion -Werror=maybe-uninitialized -Werror=implicit-function-declaration -ffunction-sections -fdata-sections -fPIC)
+
+option(AFB_HELPERS "Enable the basics helpers functions for the Application Framework Binders" ON)
+option(AFB_HELPERS_QT "Enable the Qt helpers functions for the Application Framework Binders" OFF)
INCLUDE(FindPkgConfig)
set (PKG_REQUIRED_LIST
afb-daemon
- )
+)
+
+find_package(CURL REQUIRED)
# Loop on required package and add options
foreach (PKG_CONFIG ${PKG_REQUIRED_LIST})
@@ -52,48 +59,65 @@ foreach (PKG_CONFIG ${PKG_REQUIRED_LIST})
add_compile_options (${${XPREFIX}_CFLAGS})
endforeach(PKG_CONFIG)
-set(AFB_HELPERS_SRCS wrap-json.c filescan-utils.c escape.c afb-timer.c)
-
-option(AFB_HELPERS_QTWSCLIENT "Enable the Qt's websocket client to Application Framework Binders" ON)
-find_package(CURL REQUIRED)
+if(${AFB_HELPERS})
+ set(AFB_HELPERS_SRCS wrap-json.c filescan-utils.c escape.c afb-timer.c curl-wrap.c)
-set(AFB_HELPERS_HEADERS afb-helpers-utils.h curl-wrap.h escape.h
- filescan-utils.h qafbwebsocketclient.h wrap-json.h afb-timer.h
+ set(AFB_HELPERS_HEADERS afb-helpers-utils.h curl-wrap.h escape.h
+ filescan-utils.h wrap-json.h afb-timer.h
)
-set(AFB_HELPERS_SRCS ${AFB_HELPERS_SRCS} qafbwebsocketclient.cpp qafbwebsocketclient.h)
-find_package(Qt5WebSockets REQUIRED)
-include_directories(${Qt5WebSockets_INCLUDE_DIRS})
-
-set(AFB_HELPERS_SRCS ${AFB_HELPERS_SRCS} curl-wrap.c)
+ # Define targets
+ ADD_LIBRARY(${TARGET_NAME} STATIC ${AFB_HELPERS_SRCS})
+
+ target_link_libraries(${TARGET_NAME} curl)
+
+ # Define target includes
+ TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME}
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+
+ CONFIGURE_FILE(afb-helpers.pc.in afb-helpers.pc @ONLY)
+ INSTALL(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/afb-helpers.pc
+ DESTINATION
+ ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+ )
+ INSTALL(TARGETS ${TARGET_NAME}
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+ INSTALL(FILES ${AFB_HELPERS_HEADERS}
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ )
+endif()
-# Define targets
-ADD_LIBRARY(${TARGET_NAME} STATIC ${AFB_HELPERS_SRCS})
+if(${AFB_HELPERS_QT})
+ find_package(Qt5WebSockets REQUIRED)
-target_link_libraries(${TARGET_NAME} Qt5::WebSockets)
+ set(AFB_HELPERS_QT_HEADERS qafbwebsocketclient.h)
-target_link_libraries(${TARGET_NAME} curl)
+ set(AFB_HELPERS_QT_SRCS qafbwebsocketclient.cpp)
-# Library properties
-SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
- OUTPUT_NAME ${TARGET_NAME}
- )
+ # Define Qt targets
+ ADD_LIBRARY(${TARGET_NAME}-qt STATIC ${AFB_HELPERS_QT_SRCS})
-# Define target includes
-TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME}
- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
- )
+ include_directories(${Qt5WebSockets_INCLUDE_DIRS})
+ target_link_libraries(${TARGET_NAME}-qt Qt5::WebSockets)
-CONFIGURE_FILE(afb-helpers.pc.in afb-helpers.pc @ONLY)
-INSTALL(FILES
- ${CMAKE_CURRENT_BINARY_DIR}/afb-helpers.pc
- DESTINATION
- ${CMAKE_INSTALL_LIBDIR}/pkgconfig
- )
+ # Define Qt target includes
+ TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME}-qt
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+ )
-INSTALL(TARGETS ${TARGET_NAME}
- DESTINATION ${CMAKE_INSTALL_LIBDIR}
- )
-INSTALL(FILES ${AFB_HELPERS_HEADERS}
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
- )
+ CONFIGURE_FILE(afb-helpers-qt.pc.in afb-helpers-qt.pc @ONLY)
+ INSTALL(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/afb-helpers-qt.pc
+ DESTINATION
+ ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+ )
+ INSTALL(TARGETS ${TARGET_NAME}-qt
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+ INSTALL(FILES ${AFB_HELPERS_QT_HEADERS}
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ )
+endif()
diff --git a/afb-helpers-qt.pc.in b/afb-helpers-qt.pc.in
new file mode 100644
index 0000000..9bda785
--- /dev/null
+++ b/afb-helpers-qt.pc.in
@@ -0,0 +1,30 @@
+##
+## Copyright (C) 2016, 2017, 2018 "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.
+##
+
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: @TARGET_NAME@-qt
+Description: @PROJECT_DESCRIPTION@ and Qt
+Version: @PROJECT_VERSION@
+URL: @PROJECT_URL@
+Libs.private:
+Libs: -L@CMAKE_INSTALL_LIBDIR@ -l@TARGET_NAME@-qt
+Cflags: -I${includedir}