diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-05-02 17:21:20 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-05-02 17:21:20 +0200 |
commit | 09e762b94a941c9b6f2402c6ea8bf444e13c1574 (patch) | |
tree | 13a999a79e4b7776fa3537d45c2e403271ad196a /CAN-binder/etc | |
parent | 39c3d1c6e78ee2f85b713dec39946c05709c1076 (diff) |
Using new CMake architecture (again...)
Following the new CMake template from https://gerrit.automotivelinux.org/gerrit/apps/app-templates
these CMake files use helpers macros from macros.cmake and project configuration config.cmake.
Change-Id: I2297b6ad6c65cd763d1870d5b62564e8795f4317
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'CAN-binder/etc')
-rw-r--r-- | CAN-binder/etc/config.cmake | 16 | ||||
-rw-r--r-- | CAN-binder/etc/macros.cmake (renamed from CAN-binder/etc/agl.cmake) | 55 |
2 files changed, 33 insertions, 38 deletions
diff --git a/CAN-binder/etc/config.cmake b/CAN-binder/etc/config.cmake index ac06926..54f25da 100644 --- a/CAN-binder/etc/config.cmake +++ b/CAN-binder/etc/config.cmake @@ -20,14 +20,14 @@ # ------------------ set(NAME low-can-project) set(VERSION "1.0") -set(PRETTY_NAME "Low level CAN binding") -set(DESCRIPTION "Expose CAN Low Level APIs through AGL Framework") -set(URL "https://github.com/iotbzh/CAN_signaling") +set(PROJECT_PRETTY_NAME "Low level CAN binding") +set(PROJECT_DESCRIPTION "Expose CAN Low Level APIs through AGL Framework") +set(PROJECT_URL "https://github.com/iotbzh/CAN_signaling") set(PROJECT_ICON "icon.png") # Compilation Mode (DEBUG, RELEASE) # ---------------------------------- -setc(CMAKE_BUILD_TYPE "DEBUG") +set(CMAKE_BUILD_TYPE "DEBUG") # Compiler selection if needed. Overload the detected compiler. # ----------------------------------------------- @@ -53,14 +53,14 @@ set(CMAKE_CXX_FLAGS "-std=c++11") # Print a helper message when every thing is finished # ---------------------------------------------------- -setc(CLOSING_MESSAGE "Test with: afb-daemon --rootdir=\$\$(pwd)/low-can-binding/package --ldpaths=\$\$(pwd)/low-can-binding/package/lib --port=1234 --roothttp=\$\$(pwd)/low-can-binding/package/htdocs --tracereq=common --token=\"\" --verbose") +set(CLOSING_MESSAGE "Test with: afb-daemon --rootdir=\$\$(pwd)/low-can-binding/package --ldpaths=\$\$(pwd)/low-can-binding/package/lib --port=1234 --roothttp=\$\$(pwd)/low-can-binding/package/htdocs --tracereq=common --token=\"\" --verbose") # (BUG!!!) as PKG_CONFIG_PATH does not work [should be an env variable] # --------------------------------------------------------------------- -setc(CMAKE_INSTALL_PREFIX ${HOME}/opt) -setc(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}/lib64/pkgconfig ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) -setc(LD_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib64 ${CMAKE_INSTALL_PREFIX}/lib) +set(CMAKE_INSTALL_PREFIX ${HOME}/opt) +set(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}/lib64/pkgconfig ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) +set(LD_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib64 ${CMAKE_INSTALL_PREFIX}/lib) # Optional dependencies order # --------------------------- diff --git a/CAN-binder/etc/agl.cmake b/CAN-binder/etc/macros.cmake index b05a273..7bacc7f 100644 --- a/CAN-binder/etc/agl.cmake +++ b/CAN-binder/etc/macros.cmake @@ -73,6 +73,7 @@ endfunction(find_source_files) macro(populate_widget) # Declaration of a custom command that will populate widget tree with the target set(POPULE_WIDGET_TARGET "populate_${TARGET_NAME}") + get_target_property(T ${TARGET_NAME} LABELS) if(${T} STREQUAL "BINDING") add_custom_command(OUTPUT ${WIDGET_LIBDIR}/${TARGET_NAME}.so @@ -81,44 +82,51 @@ macro(populate_widget) COMMAND cp ${TARGET_NAME}.so ${WIDGET_LIBDIR} ) add_custom_target(${POPULE_WIDGET_TARGET} ALL DEPENDS ${WIDGET_LIBDIR}/${TARGET_NAME}.so) - endif(${T} STREQUAL "BINDING") - - if(${T} STREQUAL "EXECUTABLE") + elseif(${T} STREQUAL "EXECUTABLE") add_custom_command(OUTPUT ${WIDGET_BINDIR}/${TARGET_NAME} DEPENDS ${TARGET_NAME} COMMAND mkdir -p ${WIDGET_BINDIR} COMMAND cp ${TARGET_NAME} ${WIDGET_BINDIR} ) add_custom_target(${POPULE_WIDGET_TARGET} ALL DEPENDS ${WIDGET_BINDIR}/${TARGET_NAME}) - endif(${T} STREQUAL "EXECUTABLE") - - if(${T} STREQUAL "HTDOCS") + elseif(${T} STREQUAL "HTDOCS") get_target_property(OUT ${TARGET_NAME} OUTPUT_NAME) - MESSAGE(STATUS "${OUT}") add_custom_command(OUTPUT ${WIDGET_HTTPDIR} DEPENDS ${TARGET_NAME} COMMAND cp -r ${OUT} ${WIDGET_HTTPDIR} ) add_custom_target(${POPULE_WIDGET_TARGET} ALL DEPENDS ${WIDGET_HTTPDIR}) - endif(${T} STREQUAL "HTDOCS") - - if(${T} STREQUAL "DATA") + elseif(${T} STREQUAL "DATA") get_target_property(OUT ${TARGET_NAME} OUTPUT_NAME) - MESSAGE(STATUS "${OUT}") add_custom_command(OUTPUT ${WIDGET_DATADIR} DEPENDS ${TARGET_NAME} COMMAND cp -r ${OUT} ${WIDGET_DATADIR} ) add_custom_target(${POPULE_WIDGET_TARGET} ALL DEPENDS ${WIDGET_HTTPDIR}) - endif(${T} STREQUAL "DATA") - + endif(${T} STREQUAL "BINDING") + PROJECT_TARGET_ADD(${POPULE_WIDGET_TARGET}) endmacro(populate_widget) macro(build_widget) - if(NOT EXISTS ${WIDGET_DIR}/config.xml OR NOT EXISTS ${WIDGET_DIR}/icon.png) - configure_file(${PROJECT_WGT_DIR}/config.xml.in ${WIDGET_DIR}/config.xml) - #file(COPY ${PROJECT_WGT_DIR}/icon.png.in ${WIDGET_DIR}/icon.png) - endif(NOT EXISTS ${WIDGET_DIR}/config.xml OR NOT EXISTS ${WIDGET_DIR}/icon.png) + if("${PROJECT_TARGETS}" MATCHES "populate_") + if(NOT EXISTS ${WIDGET_DIR}/config.xml.in OR NOT EXISTS ${WIDGET_DIR}/${PROJECT_ICON}.in) + configure_file(${PROJECT_WGT_DIR}/config.xml.in ${WIDGET_DIR}/config.xml) + file(COPY ${PROJECT_WGT_DIR}/${PROJECT_ICON}.in DESTINATION ${WIDGET_DIR}/${PROJECT_ICON}) + endif(NOT EXISTS ${WIDGET_DIR}/config.xml.in OR NOT EXISTS ${WIDGET_DIR}/${PROJECT_ICON}.in) + + file(GLOB PROJECT_CONF_FILES "${PROJECT_WGT_DIR}/etc/*") + if(${PROJECT_CONF_FILES}) + file(COPY "${PROJECT_WGT_DIR}/etc/*" DESTINATION ${WIDGET_ETCDIR}/) + endif(${PROJECT_CONF_FILES}) + + add_custom_command(OUTPUT ${PROJECT_NAME}.wgt + DEPENDS ${PROJECT_TARGETS} + COMMAND wgtpkg-pack -f -o ${PROJECT_NAME}.wgt ${WIDGET_DIR} + ) + add_custom_target(widget DEPENDS ${PROJECT_NAME}.wgt) + else() + MESSAGE(FATAL_ERROR "Widget tree empty, please populate it by calling populate_widget() macro with target you want to include into it.") + endif("${PROJECT_TARGETS}" MATCHES "populate_") endmacro(build_widget) macro(search_targets) @@ -130,26 +138,17 @@ macro(search_targets) endforeach() endmacro() -CMAKE_MINIMUM_REQUIRED(VERSION 3.3) setc(CMAKE_BUILD_TYPE Debug) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMP0048 1) # Include project configuration # ------------------------------ -include(${CMAKE_CURRENT_SOURCE_DIR}/etc/config.cmake) project(${NAME} VERSION ${VERSION}) -setc(PROJECT_PRETTY_NAME "${PRETTY_NAME}") -setc(PROJECT_DESCRIPTION "${DESCRIPTION}") setc(PROJECT_WGT_DIR "packaging/wgt") setc(PROJECT_LIBDIR "libs") setc(PROJECT_RESOURCES "data") -message(STATUS "") -message(STATUS "Project=${PROJECT_NAME}/${VERSION}[${PRETTY_NAME} ${DESCRIPTION}]") -message(STATUS "") -message(STATUS "gcc/g++ version-${CMAKE_C_VERSION}.x selected") - INCLUDE(FindPkgConfig) INCLUDE(CheckIncludeFiles) INCLUDE(CheckLibraryExists) @@ -230,10 +229,6 @@ if(NOT BINDINGS_LINK_FLAG) set(BINDINGS_LINK_FLAG "-Wl,--version-script=${CMAKE_SOURCE_DIR}/etc/export.map") endif() -# Bindings to compile -# -------------------- -search_targets() - # Add a dummy target to enable global dependency order # ----------------------------------------------------- if(EXTRA_DEPENDENCIES_ORDER) |