Added populate binding config files
[apps/app-templates.git] / cmake / cmake.d / 03-macros.cmake
index 6e223b2..6e807c9 100644 (file)
@@ -123,19 +123,29 @@ endmacro(configure_files_in_dir)
 
 # Create custom target dedicated for HTML5 and DATA AGL target type
 macro(add_input_files INPUT_FILES)
-       set(XML_LIST ${INPUT_FILES})
-       set(LUA_LIST ${INPUT_FILES})
-       set(JSON_LIST ${INPUT_FILES})
+       if(NOT DEFINED XML_FILES)
+               set(ext_reg "xml$")
+               set(XML_LIST ${INPUT_FILES})
+               list_filter(XML_LIST ext_reg)
+       endif()
+       if(NOT DEFINED LUA_LIST)
+               set(ext_reg "lua$")
+               set(LUA_LIST ${INPUT_FILES})
+               list_filter(LUA_LIST ext_reg)
+       endif()
+       if(NOT DEFINED JSON_FILES)
+               set(ext_reg "json$")
+               set(JSON_LIST ${INPUT_FILES})
+               list_filter(JSON_LIST ext_reg)
+       endif()
+
        # These are v3.6 subcommand. Not used as default for now as
        # many dev use Ubuntu 16.04 which have only 3.5 version
        #list(FILTER XML_LIST INCLUDE REGEX "xml$")
        #list(FILTER LUA_LIST INCLUDE REGEX "lua$")
        #list(FILTER JSON_LIST INCLUDE REGEX "json$")
-       list_filter(XML_LIST "xml$")
-       list_filter(LUA_LIST "lua$")
-       list_filter(JSON_LIST "json$")
 
-       add_custom_target(${TARGET_NAME} 
+       add_custom_target(${TARGET_NAME} ALL
        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}
        )
 
@@ -289,6 +299,22 @@ macro(project_targets_populate)
                        )
                        add_dependencies(populate ${POPULE_PACKAGE_TARGET})
                        add_dependencies(${POPULE_PACKAGE_TARGET} ${TARGET})
+                       elseif(${T} STREQUAL "BINDING-CONFIG")
+                       # Generate list of output files instead of just one output directory
+                       get_target_property(SF ${TARGET} SOURCES)
+                       foreach(file ${SF})
+                               get_filename_component(JUST_FILENAME ${file} NAME)
+                               list(APPEND OUTPUT_FILES ${PACKAGE_ETCDIR}/${JUST_FILENAME})
+                       endforeach()
+                       add_custom_target(${POPULE_PACKAGE_TARGET})
+                       add_custom_command(TARGET ${POPULE_PACKAGE_TARGET}
+                               POST_BUILD
+                               COMMAND mkdir -p ${PACKAGE_ETCDIR}
+                               COMMAND touch ${PACKAGE_ETCDIR}
+                               COMMAND cp -r ${BD}/${TARGET} ${PACKAGE_ETCDIR}
+                       )
+                       add_dependencies(populate ${POPULE_PACKAGE_TARGET})
+                       add_dependencies(${POPULE_PACKAGE_TARGET} ${TARGET})
                endif(${T} STREQUAL "BINDING")
                elseif(${CMAKE_BUILD_TYPE} MATCHES "[Dd][Ee][Bb][Uu][Gg]")
                        MESSAGE("${Yellow}.. Warning: ${TARGET} ignored when packaging.${ColourReset}")
@@ -336,8 +362,13 @@ macro(remote_targets_populate)
                add_custom_target(remote-target-populate
                        COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR}/target/*.sh
                        COMMAND rsync -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --archive --delete ${PROJECT_PKG_BUILD_DIR}/ ${RSYNC_TARGET}:${RSYNC_PREFIX}/${PROJECT_NAME}
-                       COMMENT "${REMOTE_LAUNCH}"
                )
+
+               add_custom_command(TARGET remote-target-populate
+               POST_BUILD
+               COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --green --bold ${REMOTE_LAUNCH}
+               )
+
                add_dependencies(remote-target-populate populate)
        endif()
 endmacro(remote_targets_populate)
@@ -476,7 +507,7 @@ macro(project_closing_msg)
                add_custom_target(${PROJECT_NAME}_build_done ALL
                        COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "++ ${CLOSING_MESSAGE}"
                )
-                add_dependencies(${PROJECT_NAME}_build_done
-                       ${DEPENDENCIES_TARGET} ${PROJECT_TARGETS})
+               add_dependencies(${PROJECT_NAME}_build_done
+                       ${PROJECT_TARGETS} populate)
        endif()
 endmacro()