X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=cmake%2Fcmake.d%2F02-macros.cmake;h=5f8e5fa2052059130200b2dfa93c1a5820b952cd;hb=5989f68a47567569a957b81ba64cbd8fef0bccc5;hp=ace7533738bcd529b5e42140fee59215663274ca;hpb=747c39cd66469809d7d79bb08a588eea3ca39892;p=apps%2Fapp-templates.git diff --git a/cmake/cmake.d/02-macros.cmake b/cmake/cmake.d/02-macros.cmake index ace7533..5f8e5fa 100644 --- a/cmake/cmake.d/02-macros.cmake +++ b/cmake/cmake.d/02-macros.cmake @@ -57,7 +57,9 @@ macro(project_targets_populate) set(PACKAGE_HTTPDIR ${PROJECT_PKG_BUILD_DIR}/htdocs) set(PACKAGE_DATADIR ${PROJECT_PKG_BUILD_DIR}/data) - add_custom_target(populate) + add_custom_command(OUTPUT ${PACKAGE_BINDIR} ${PACKAGE_ETCDIR} ${PACKAGE_LIBDIR} ${PACKAGE_HTTPDIR} ${PACKAGE_DATADIR} + COMMAND mkdir -p ${PACKAGE_BINDIR} ${PACKAGE_ETCDIR} ${PACKAGE_LIBDIR} ${PACKAGE_HTTPDIR} ${PACKAGE_DATADIR}) + add_custom_target(populate DEPENDS ${PACKAGE_BINDIR} ${PACKAGE_ETCDIR} ${PACKAGE_LIBDIR} ${PACKAGE_HTTPDIR} ${PACKAGE_DATADIR}) get_property(PROJECT_TARGETS GLOBAL PROPERTY PROJECT_TARGETS) foreach(TARGET ${PROJECT_TARGETS}) get_target_property(T ${TARGET} LABELS) @@ -79,39 +81,36 @@ macro(project_targets_populate) endif() if(${T} STREQUAL "BINDING") - add_custom_command(OUTPUT ${PACKAGE_LIBDIR}/${P}${TARGET}.so - DEPENDS ${TARGET} + list(APPEND BINDINGS_LIST "${P}${OUT}") + add_custom_command(OUTPUT ${PACKAGE_LIBDIR}/${P}${OUT}.so COMMAND mkdir -p ${PACKAGE_LIBDIR} COMMAND cp ${BD}/${P}${OUT}.so ${PACKAGE_LIBDIR} ) add_custom_target(${POPULE_PACKAGE_TARGET} DEPENDS ${PACKAGE_LIBDIR}/${P}${TARGET}.so) - add_dependencies(populate ${POPULE_PACKAGE_TARGET}) + add_dependencies(populate ${POPULE_PACKAGE_TARGET} ${TARGET}) elseif(${T} STREQUAL "EXECUTABLE") - add_custom_command(OUTPUT ${PACKAGE_BINDIR}/${P}${TARGET} - DEPENDS ${TARGET} + add_custom_command(OUTPUT ${PACKAGE_BINDIR}/${P}${OUT} COMMAND mkdir -p ${PACKAGE_BINDIR} COMMAND cp ${BD}/${P}${OUT} ${PACKAGE_BINDIR} ) add_custom_target(${POPULE_PACKAGE_TARGET} DEPENDS ${PACKAGE_BINDIR}/${P}${TARGET}) - add_dependencies(populate ${POPULE_PACKAGE_TARGET}) + add_dependencies(populate ${POPULE_PACKAGE_TARGET} ${TARGET}) elseif(${T} STREQUAL "HTDOCS") add_custom_command(OUTPUT ${PACKAGE_HTTPDIR}-xx - DEPENDS ${TARGET} COMMAND mkdir -p ${PACKAGE_HTTPDIR} COMMAND touch ${PACKAGE_HTTPDIR} COMMAND cp -r ${BD}/${P}${OUT}/* ${PACKAGE_HTTPDIR} ) add_custom_target(${POPULE_PACKAGE_TARGET} DEPENDS ${PACKAGE_HTTPDIR}-xx) - add_dependencies(populate ${POPULE_PACKAGE_TARGET}) + add_dependencies(populate ${POPULE_PACKAGE_TARGET} ${TARGET}) elseif(${T} STREQUAL "DATA") add_custom_command(OUTPUT ${PACKAGE_DATADIR}-xx - DEPENDS ${TARGET} COMMAND mkdir -p ${PACKAGE_DATADIR} COMMAND touch ${PACKAGE_DATADIR} COMMAND cp -r ${BD}/${P}${OUT}/* ${PACKAGE_DATADIR} ) add_custom_target(${POPULE_PACKAGE_TARGET} DEPENDS ${PACKAGE_DATADIR}-xx) - add_dependencies(populate ${POPULE_PACKAGE_TARGET}) + add_dependencies(populate ${POPULE_PACKAGE_TARGET} ${TARGET}) endif(${T} STREQUAL "BINDING") elseif(${CMAKE_BUILD_TYPE} MATCHES "[Dd][Ee][Bb][Uu][Gg]") MESSAGE(".. Warning: ${TARGET} ignored when packaging.") @@ -121,10 +120,10 @@ endmacro(project_targets_populate) macro(remote_targets_populate) if (DEFINED ENV{RSYNC_TARGET}) - set (RSYNC_TARGET $ENV{RSYNC_TARGET}) + set (RSYNC_TARGET $ENV{RSYNC_TARGET}) endif() if (DEFINED ENV{RSYNC_PREFIX}) - set (RSYNC_PREFIX $ENV{RSYNC_PREFIX}) + set (RSYNC_PREFIX $ENV{RSYNC_PREFIX}) endif() set( @@ -139,16 +138,29 @@ macro(remote_targets_populate) COMMAND exit -1 ) else() + set(BINDINGS_REGEX "not_set") + if(DEFINED BINDINGS_LIST) + list(LENGTH BINDINGS_LIST BINDINGS_LIST_LENGTH) + if(BINDINGS_LIST_LENGTH EQUAL 1) + list(GET BINDINGS_LIST 0 BINDINGS_REGEX) + string(APPEND BINDINGS_REGEX ".so") + elseif(BINDINGS_LIST_LENGTH GREATER 1) + foreach(B IN LISTS BINDINGS_LIST) + STRING(APPEND BINDINGS_STR "${B}|") + endforeach() + STRING(REGEX REPLACE "^(.*)\\|$" "(\\1).so" BINDINGS_REGEX ${BINDINGS_STR}) + endif() + endif() configure_files_in_dir(${SSH_TEMPLATE_DIR}) configure_files_in_dir(${GDB_TEMPLATE_DIR}) add_custom_target(remote-target-populate - DEPENDS 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_dependencies(remote-target-populate populate) endif() endmacro(remote_targets_populate)