X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=cmake%2Fcmake.d%2F02-macros.cmake;h=9da4464d7897fd7a40ca708144bc330784063302;hb=2d053aafe099919d12b58df0634cbeb18b845d3e;hp=2a014a1a515eb821c96a96e8204a4192c35d90aa;hpb=8c2d06a6f814450caa7c9dffbb487415507f209f;p=staging%2Fxdg-launcher.git diff --git a/cmake/cmake.d/02-macros.cmake b/cmake/cmake.d/02-macros.cmake index 2a014a1..9da4464 100644 --- a/cmake/cmake.d/02-macros.cmake +++ b/cmake/cmake.d/02-macros.cmake @@ -44,7 +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(ADDITIONAL_MAKE_CLEAN_FILES, "${destinationfile}") + set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/target/${destinationfile}") endforeach() endmacro(configure_files_in_dir) @@ -79,39 +79,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 +118,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 +136,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) @@ -187,7 +197,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}") @@ -221,7 +231,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