X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=cmake%2Fcmake.d%2F02-macros.cmake;h=5f8e5fa2052059130200b2dfa93c1a5820b952cd;hb=5989f68a47567569a957b81ba64cbd8fef0bccc5;hp=74442140f3bd0a45d9c7b0b2a5880abc441ef09a;hpb=e475d27e5f67d0efa61f91d3aa971c23226fc318;p=apps%2Fapp-templates.git diff --git a/cmake/cmake.d/02-macros.cmake b/cmake/cmake.d/02-macros.cmake index 7444214..5f8e5fa 100644 --- a/cmake/cmake.d/02-macros.cmake +++ b/cmake/cmake.d/02-macros.cmake @@ -44,6 +44,7 @@ macro(configure_files_in_dir dir) string(REGEX REPLACE "target" "${RSYNC_TARGET}" destinationfile ${filename}) string(REGEX REPLACE ".in$" "" destinationfile ${destinationfile}) configure_file(${file} ${CMAKE_CURRENT_BINARY_DIR}/target/${destinationfile}) + set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/target/${destinationfile}") endforeach() endmacro(configure_files_in_dir) @@ -56,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) @@ -78,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.") @@ -120,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( @@ -138,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) @@ -186,7 +199,7 @@ macro(wgt_package_build) add_custom_target(widget DEPENDS ${PROJECT_NAME}.wgt) add_dependencies(widget populate packaging_wgt) - set(ADDITIONAL_MAKE_CLEAN_FILES, "${PROJECT_NAME}.wgt") + set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.wgt") if(NOT RSYNC_TARGET) message ("${Yellow}.. Warning: RSYNC_TARGET not defined 'make widget-target-install' not instanciated${ColourReset}") @@ -220,7 +233,6 @@ macro(rpm_package_build) add_custom_target(rpm DEPENDS ${NPKG_PROJECT_NAME}.spec) add_dependencies(rpm populate packaging) - set(ADDITIONAL_MAKE_CLEAN_FILES, "${PROJECT_NAME}.spec") if(PACKAGE_MESSAGE) add_custom_command(TARGET rpm