diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2018-12-13 14:42:49 +0100 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2018-12-17 10:04:07 +0100 |
commit | eaf644db7106061481710adb75023122ce4bc150 (patch) | |
tree | 9b06621a42861997b96a6f0921a0b33dc685d654 /ctl-lib/CMakeLists.txt | |
parent | eaf8c0808d54d987a532254887919822438b7848 (diff) |
Shared library: update to a v3 shared library
- AFB_BINDING_VERSION = 3
- remove preprocessor variables
- mandatory lua
- name of library is ctl-utilities
- does not work with v2 versions
- remove afb-definitions.h
- use of the GNUinstalldirs module to set the destination directories.
Change-Id: Ifdf12885ffad5003ecbbcf3639af63060f0ebc7e
Signed-off-by: Clément Bénier <clement.benier@iot.bzh>
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'ctl-lib/CMakeLists.txt')
-rw-r--r-- | ctl-lib/CMakeLists.txt | 93 |
1 files changed, 71 insertions, 22 deletions
diff --git a/ctl-lib/CMakeLists.txt b/ctl-lib/CMakeLists.txt index 3ab0774..48684e0 100644 --- a/ctl-lib/CMakeLists.txt +++ b/ctl-lib/CMakeLists.txt @@ -15,29 +15,78 @@ # See the License for the specific language governing permissions and # limitations under the License. ########################################################################### +set(TARGET_NAME "ctl-utilities") +set(PROJECT_PRETTY_NAME "Controller") +set(PROJECT_DESCRIPTION "controller") +set(PROJECT_URL "https://gerrit.automotivelinux.org:29418/apps/app-controller-submodule") +set(PROJECT_AUTHOR "Ar Foll, Fulup") +set(PROJECT_AUTHOR_MAIL "fulup@iot.bzh") +set(PROJECT_LICENSE "APL2.0") +set(PROJECT_LANGUAGES "C") -# Include LUA only when requested -if(CONTROL_SUPPORT_LUA) - message(STATUS "Notice: LUA Controler Support Selected") - set(CTL_LUA_SOURCE ctl-lua.c ctl-timer.c ctl-lua-utils.c) - ADD_COMPILE_OPTIONS(-DCONTROL_SUPPORT_LUA) -else(CONTROL_SUPPORT_LUA) - message(STATUS "Warning: LUA Without Support ") -endif(CONTROL_SUPPORT_LUA) - -# Add target to project dependency list -PROJECT_TARGET_ADD(ctl-utilities) - - # Define project Targets - ADD_LIBRARY(${TARGET_NAME} STATIC ctl-action.c ctl-config.c ctl-onload.c ctl-plugin.c ctl-control.c ctl-event.c ${CTL_LUA_SOURCE}) - - # Library dependencies (include updates automatically) - TARGET_LINK_LIBRARIES(${TARGET_NAME} - afb-helpers - ${link_libraries} +if(NOT CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr") +endif() +add_definitions(-DAFB_BINDING_VERSION=3) +add_definitions(-DLUA_GLOB_PATTERN="/var/?.lua\\\;") +add_definitions(-DSUSE_LUA_INCDIR) + + +INCLUDE(FindPkgConfig) +set (PKG_REQUIRED_LIST + afb-daemon + afb-helpers + lua + ) + +# Loop on required package and add options +foreach (PKG_CONFIG ${PKG_REQUIRED_LIST}) + string(REGEX REPLACE "[<>]?=.*$" "" XPREFIX ${PKG_CONFIG}) + PKG_CHECK_MODULES(${XPREFIX} REQUIRED ${PKG_CONFIG}) + + INCLUDE_DIRECTORIES(${${XPREFIX}_INCLUDE_DIRS}) + list(APPEND link_libraries ${${XPREFIX}_LDFLAGS}) + add_compile_options (${${XPREFIX}_CFLAGS}) +endforeach(PKG_CONFIG) + + +set(CTL_LUA_SOURCE ctl-lua.c ctl-lua-utils.c) +ADD_COMPILE_OPTIONS(-DCONTROL_SUPPORT_LUA) + +set(CONTROLLER_HEADERS + ctl-config.h + ctl-lua.h + ctl-plugin.h ) - # Define target includes for this target client - TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME} - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} +# Define project Targets +ADD_LIBRARY(${TARGET_NAME} SHARED ctl-action.c ctl-config.c ctl-onload.c ctl-plugin.c ctl-control.c ctl-event.c ${CTL_LUA_SOURCE}) + +# Library dependencies (include updates automatically) +TARGET_LINK_LIBRARIES(${TARGET_NAME} + afb-helpers + ${link_libraries} + ) + +# Define target includes for this target client +TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME} + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} + ) + +CONFIGURE_FILE(${TARGET_NAME}.pc.in ${TARGET_NAME}.pc @ONLY) +INSTALL(FILES + ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.pc + DESTINATION + ${CMAKE_INSTALL_LIBDIR}/pkgconfig + ) + +INSTALL(FILES + ${CMAKE_CURRENT_BINARY_DIR}/lib${TARGET_NAME}.so + DESTINATION + ${CMAKE_INSTALL_LIBDIR} + ) +INSTALL(FILES + ${CONTROLLER_HEADERS} + DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR} ) |