Extending pluggable arch for templates
authorRomain Forlot <romain.forlot@iot.bzh>
Thu, 10 Aug 2017 16:25:48 +0000 (18:25 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Wed, 16 Aug 2017 16:40:34 +0000 (18:40 +0200)
Idea is to be able to use custom templates from home dir and system dir

Change-Id: I74b48458f3dcc26b49f8144e042c213691028167
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
20 files changed:
cmake/cmake.d/01-variables.cmake
cmake/cmake.d/02-macros.cmake
cmake/cmake.d/03-extra_targets.cmake
samples.d/CMakeLists.txt.sample [moved from cmake/CMakeLists.txt.sample with 100% similarity]
samples.d/config.cmake.sample [moved from cmake/config.cmake.sample with 100% similarity]
samples.d/config.xml.in.sample [moved from wgt/config.xml.in.sample with 100% similarity]
samples.d/xds-config.env.sample [moved from xds/xds-config.env.sample with 100% similarity]
template.d/autobuild/agl/autobuild.in [moved from autobuild/agl/autobuild.in with 100% similarity]
template.d/autobuild/linux/autobuild.in [moved from autobuild/linux/autobuild.in with 100% similarity]
template.d/config.xml.in [moved from wgt/config.xml.in with 100% similarity]
template.d/deb-config.dsc.in [moved from deb/deb-config.dsc.in with 100% similarity]
template.d/deb-config.install.in [moved from deb/deb-config.install.in with 100% similarity]
template.d/debian.changelog.in [moved from deb/debian.changelog.in with 100% similarity]
template.d/debian.compat.in [moved from deb/debian.compat.in with 100% similarity]
template.d/debian.control.in [moved from deb/debian.control.in with 100% similarity]
template.d/debian.rules.in [moved from deb/debian.rules.in with 100% similarity]
template.d/gdb-native-target.ini.in [moved from gdb/gdb-native-target.ini.in with 100% similarity]
template.d/install-wgt-on-target.sh.in [moved from wgt/install-wgt-on-target.sh.in with 100% similarity]
template.d/rpm-config.spec.in [moved from rpm/rpm-config.spec.in with 100% similarity]
template.d/start-on-target.sh.in [moved from ssh/start-on-target.sh.in with 100% similarity]

index 5118b57..867a723 100644 (file)
@@ -116,14 +116,11 @@ endif()
 
 # Paths to templates files
 set (PKG_TEMPLATE_PREFIX ${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR} CACHE PATH "Default Package Templates Directory")
-set(SSH_TEMPLATE_DIR "${PKG_TEMPLATE_PREFIX}/ssh" CACHE PATH "Subpath to a directory where are stored needed files to launch on remote target to debuging purposes")
-set(GDB_TEMPLATE_DIR "${PKG_TEMPLATE_PREFIX}/gdb" CACHE PATH "Subpath to a directory where are stored needed files to launch debuging server on a remote target. Use gdbserver.")
-set(WGT_TEMPLATE_DIR "${PKG_TEMPLATE_PREFIX}/wgt" CACHE PATH "Subpath to a directory where are stored needed files to build widget")
+set(TEMPLATE_DIR "${PKG_TEMPLATE_PREFIX}/cmake/template.d" CACHE PATH "Subpath to a directory where are stored needed files to launch on remote target to debuging purposes")
+
 if(NOT WIDGET_CONFIG_TEMPLATE)
-       set(WIDGET_CONFIG_TEMPLATE ${WGT_TEMPLATE_DIR}/config.xml.in CACHE PATH "Path to widget config file template (config.xml.in)")
+       set(WIDGET_CONFIG_TEMPLATE ${TEMPLATE_DIR}/config.xml.in CACHE PATH "Path to widget config file template (config.xml.in)")
 endif()
-set(RPM_TEMPLATE_DIR "${PKG_TEMPLATE_PREFIX}/rpm" CACHE PATH "Subpath to a directory where are stored needed files to build rpm package")
-set(DEB_TEMPLATE_DIR "${PKG_TEMPLATE_PREFIX}/deb" CACHE PATH "Subpath to a directory where are stored needed files to build deb package")
 
 string(REGEX REPLACE "^(.*)/.*$" "\\1" ENTRY_POINT "${PKG_TEMPLATE_PREFIX}")
 set(PROJECT_PKG_ENTRY_POINT ${ENTRY_POINT}/packaging CACHE PATH "Where package build files, like rpm.spec file or config.xml, are write.")
index e116d2e..3787817 100644 (file)
@@ -185,8 +185,8 @@ macro(remote_targets_populate)
                        endif()
                endif()
 
-               configure_files_in_dir(${SSH_TEMPLATE_DIR})
-               configure_files_in_dir(${GDB_TEMPLATE_DIR})
+               configure_files_in_dir(${TEMPLATE_DIR})
+               configure_files_in_dir(${TEMPLATE_DIR})
 
                add_custom_target(remote-target-populate
                        COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR}/target/*.sh
@@ -201,8 +201,8 @@ macro(wgt_package_build)
        if(NOT EXISTS ${WIDGET_CONFIG_TEMPLATE})
                MESSAGE(FATAL_ERROR "${Red}WARNING ! Missing mandatory files to build widget file.\nYou need a config.xml template: please specify WIDGET_CONFIG_TEMPLATE correctly.${ColourReset}")
        endif()
-       if(NOT EXISTS ${WGT_TEMPLATE_DIR}/icon-default.png)
-               MESSAGE(FATAL_ERROR "${Red}WARNING ! Missing mandatory files to build widget file.\nYou need ${PROJECT_ICON} file in ${WGT_TEMPLATE_DIR} folder.${ColourReset}")
+       if(NOT EXISTS ${TEMPLATE_DIR}/icon-default.png)
+               MESSAGE(FATAL_ERROR "${Red}WARNING ! Missing mandatory files to build widget file.\nYou need ${PROJECT_ICON} file in ${TEMPLATE_DIR} folder.${ColourReset}")
        endif()
     if(NOT WIDGET_TYPE)
         MESSAGE(FATAL_ERROR "WIDGET_TYPE must be set in your config.cmake.\neg.: set(WIDGET_TYPE application/vnd.agl.service)")
@@ -214,15 +214,15 @@ macro(wgt_package_build)
 
        add_custom_command(OUTPUT ${PROJECT_PKG_BUILD_DIR}/config.xml
                COMMAND ${CMAKE_COMMAND} -DINFILE=${WIDGET_CONFIG_TEMPLATE} -DOUTFILE=${PROJECT_PKG_BUILD_DIR}/config.xml -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
-               COMMAND cp ${WGT_TEMPLATE_DIR}/icon-default.png ${PROJECT_PKG_BUILD_DIR}/${PROJECT_ICON}
+               COMMAND cp ${TEMPLATE_DIR}/icon-default.png ${PROJECT_PKG_BUILD_DIR}/${PROJECT_ICON}
 
        )
        add_custom_target(packaging_wgt DEPENDS ${PROJECT_PKG_BUILD_DIR}/config.xml)
 
        # Fulup ??? copy any extra file in wgt/etc into populate package before building the widget
-       file(GLOB PROJECT_CONF_FILES "${WGT_TEMPLATE_DIR}/etc/*")
+       file(GLOB PROJECT_CONF_FILES "${TEMPLATE_DIR}/etc/*")
        if(${PROJECT_CONF_FILES})
-               file(COPY "${WGT_TEMPLATE_DIR}/etc/*" DESTINATION ${PROJECT_PKG_BUILD_DIR}/etc/)
+               file(COPY "${TEMPLATE_DIR}/etc/*" DESTINATION ${PROJECT_PKG_BUILD_DIR}/etc/)
        endif(${PROJECT_CONF_FILES})
 
        add_custom_command(OUTPUT ${PROJECT_NAME}.wgt
@@ -241,7 +241,7 @@ macro(wgt_package_build)
                        COMMAND exit -1
                )
        else()
-       configure_files_in_dir(${WGT_TEMPLATE_DIR})
+       configure_files_in_dir(${TEMPLATE_DIR})
        add_custom_target(widget-target-install
        DEPENDS widget
        COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR}/target/install-wgt-on-${RSYNC_TARGET}.sh
@@ -279,15 +279,15 @@ macro(deb_package_build)
 endmacro(deb_package_build)
 
 macro(project_package_build)
-       if(EXISTS ${RPM_TEMPLATE_DIR})
+       if(EXISTS ${TEMPLATE_DIR})
                rpm_package_build()
        endif()
 
-       if(EXISTS ${WGT_TEMPLATE_DIR})
+       if(EXISTS ${TEMPLATE_DIR})
                wgt_package_build()
        endif()
 
-       if(EXISTS ${DEB_TEMPLATE_DIR})
+       if(EXISTS ${TEMPLATE_DIR})
                deb_package_build()
        endif()
 endmacro(project_package_build)
index 61f5adb..2c635db 100644 (file)
@@ -93,8 +93,8 @@ foreach (PKG_CONFIG ${PKG_REQUIRED_LIST})
        endif()
 endforeach()
 
-if(NOT EXISTS ${RPM_TEMPLATE_DIR}/rpm-config.spec.in)
-       MESSAGE(FATAL_ERROR "${Red}Missing mandatory files: you need rpm-config.spec.in in ${RPM_TEMPLATE_DIR} folder.${ColourReset}")
+if(NOT EXISTS ${TEMPLATE_DIR}/rpm-config.spec.in)
+       MESSAGE(FATAL_ERROR "${Red}Missing mandatory files: you need rpm-config.spec.in in ${TEMPLATE_DIR} folder.${ColourReset}")
 endif()
 
 # Because the tool "dpkg" is used on the packages db to find the
@@ -102,25 +102,25 @@ endif()
 # to test the OS release package type
 # Only doable within a native environment not under SDK
 if(OSRELEASE MATCHES "debian" AND NOT DEFINED ENV{SDKTARGETSYSROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
-       add_custom_target(packaging_deb DEPENDS ${DEB_TEMPLATE_DIR}/debian.compat.in
-                               ${DEB_TEMPLATE_DIR}/debian.changelog.in
-                               ${DEB_TEMPLATE_DIR}/deb-config.dsc.in
-                               ${DEB_TEMPLATE_DIR}/deb-config.install.in
-                               ${DEB_TEMPLATE_DIR}/debian.control.in
-                               ${DEB_TEMPLATE_DIR}/debian.rules.in
-               COMMAND ${CMAKE_COMMAND} -DINFILE=${DEB_TEMPLATE_DIR}/debian.compat.in          -DOUTFILE=${PACKAGING_DEB_OUTPUT_COMPAT}        -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
-               COMMAND ${CMAKE_COMMAND} -DINFILE=${DEB_TEMPLATE_DIR}/debian.changelog.in       -DOUTFILE=${PACKAGING_DEB_OUTPUT_CHANGELOG}     -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
-               COMMAND ${CMAKE_COMMAND} -DINFILE=${DEB_TEMPLATE_DIR}/deb-config.dsc.in         -DOUTFILE=${PACKAGING_DEB_OUTPUT_DSC}           -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
-               COMMAND ${CMAKE_COMMAND} -DINFILE=${DEB_TEMPLATE_DIR}/deb-config.install.in     -DOUTFILE=${PACKAGING_DEB_OUTPUT_INSTALL}       -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
-               COMMAND ${CMAKE_COMMAND} -DINFILE=${DEB_TEMPLATE_DIR}/debian.control.in         -DOUTFILE=${PACKAGING_DEB_OUTPUT_CONTROL}       -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
-               COMMAND ${CMAKE_COMMAND} -DINFILE=${DEB_TEMPLATE_DIR}/debian.rules.in           -DOUTFILE=${PACKAGING_DEB_OUTPUT_RULES}         -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
+       add_custom_target(packaging_deb DEPENDS ${TEMPLATE_DIR}/debian.compat.in
+                               ${TEMPLATE_DIR}/debian.changelog.in
+                               ${TEMPLATE_DIR}/deb-config.dsc.in
+                               ${TEMPLATE_DIR}/deb-config.install.in
+                               ${TEMPLATE_DIR}/debian.control.in
+                               ${TEMPLATE_DIR}/debian.rules.in
+               COMMAND ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/debian.compat.in              -DOUTFILE=${PACKAGING_DEB_OUTPUT_COMPAT}        -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
+               COMMAND ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/debian.changelog.in   -DOUTFILE=${PACKAGING_DEB_OUTPUT_CHANGELOG}     -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
+               COMMAND ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/deb-config.dsc.in             -DOUTFILE=${PACKAGING_DEB_OUTPUT_DSC}           -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
+               COMMAND ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/deb-config.install.in -DOUTFILE=${PACKAGING_DEB_OUTPUT_INSTALL}       -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
+               COMMAND ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/debian.control.in             -DOUTFILE=${PACKAGING_DEB_OUTPUT_CONTROL}       -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
+               COMMAND ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/debian.rules.in               -DOUTFILE=${PACKAGING_DEB_OUTPUT_RULES}         -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}        -P      ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
        )
 endif()
 
 add_custom_target(packaging)
 set(PACKAGING_SPEC_OUTPUT ${PROJECT_PKG_ENTRY_POINT}/${NPKG_PROJECT_NAME}.spec)
-add_custom_target(packaging_rpm DEPENDS ${RPM_TEMPLATE_DIR}/rpm-config.spec.in
-       COMMAND ${CMAKE_COMMAND} -DINFILE=${RPM_TEMPLATE_DIR}/rpm-config.spec.in -DOUTFILE=${PACKAGING_SPEC_OUTPUT} -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
+add_custom_target(packaging_rpm DEPENDS ${TEMPLATE_DIR}/rpm-config.spec.in
+       COMMAND ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/rpm-config.spec.in -DOUTFILE=${PACKAGING_SPEC_OUTPUT} -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
 )
 add_dependencies(packaging packaging_rpm)
 if(TARGET packaging_wgt)
@@ -152,8 +152,8 @@ endforeach()
 #                                Autobuild target
 # ----------------------------------------------------------------------------
 
-add_custom_target(autobuild ALL DEPENDS ${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/autobuild/agl/autobuild.in
-       ${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/autobuild/linux/autobuild.in
-       COMMAND ${CMAKE_COMMAND} -DINFILE=${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/autobuild/agl/autobuild.in -DOUTFILE=${PROJECT_TEMPLATE_AGL_AUTOBUILD_DIR}/autobuild -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
-       COMMAND ${CMAKE_COMMAND} -DINFILE=${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/autobuild/agl/autobuild.in -DOUTFILE=${PROJECT_TEMPLATE_LINUX_AUTOBUILD_DIR}/autobuild -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
+add_custom_target(autobuild ALL DEPENDS ${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/template.d/autobuild/agl/autobuild.in
+       ${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/template.d/autobuild/linux/autobuild.in
+       COMMAND ${CMAKE_COMMAND} -DINFILE=${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/template.d/autobuild/agl/autobuild.in -DOUTFILE=${PROJECT_TEMPLATE_AGL_AUTOBUILD_DIR}/autobuild -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
+       COMMAND ${CMAKE_COMMAND} -DINFILE=${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/template.d/autobuild/agl/autobuild.in -DOUTFILE=${PROJECT_TEMPLATE_LINUX_AUTOBUILD_DIR}/autobuild -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
 )
similarity index 100%
rename from wgt/config.xml.in
rename to template.d/config.xml.in