diff --git a/etc/cmake/latest/GuiCommands.cmake b/etc/cmake/latest/GuiCommands.cmake index 7ec6ae199caa20636ff8345e4fa0638656648da7..506878143ab09de26e2f85b4b8c37aa01ba63a2b 100644 --- a/etc/cmake/latest/GuiCommands.cmake +++ b/etc/cmake/latest/GuiCommands.cmake @@ -34,7 +34,7 @@ function(armarx_add_qt_plugin TARGET) set(HEADERS "${AX_HEADERS}") # Auto-generate plugin headers and sources if requested. If not (i.e., if - # AX_MANUAL_QT_PLUGIN_SOURCES is set, this function is not different to + # MANUAL_QT_PLUGIN_SOURCES is set, this function is not different to # `armarx_add_qt_library`, except that the intention of the user is clearer. if(NOT ${AX_MANUAL_QT_PLUGIN_SOURCES}) if(NOT AX_WIDGET_CONTROLLER) @@ -154,146 +154,3 @@ function(armarx_add_qt_library TARGET) COMMENT "Checking Qt MOC includes." ) endfunction() - - -function(armarx_generate_and_add_qt_plugin_sources TARGET) - -endfunction() - - -function(armarx_gui_library PLUGIN_NAME) - - set(single_param) - set(flag_param) - set(multi_param SOURCES QT_MOC_HDRS QT_UIS QT_RESOURCES DEPENDENCIES) - cmake_parse_arguments(AX "${flag_param}" "${single_param}" "${multi_param}" ${ARGN}) - if(DEFINED AX_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "${TARGET}: Unknown arguments `${AX_UNPARSED_ARGUMENTS}`.") - endif() - - # variables that are modified within this context - set(SOURCES ${AX_SOURCES}) - set(DEPENDENCIES ${AX_DEPENDENCIES}) - - armarx_find_qt_base("QtCore;QtGui;QtOpenGL;QtXml;QtScript;QtDesigner" REQUIRED) - - if(NOT "ArmarXGuiBase" STREQUAL "${PLUGIN_NAME}") - if(DEPENDENCIES) - list(APPEND DEPENDENCIES ArmarXCore ArmarXGuiBase ${QT_LIBRARIES}) - else() - set(DEPENDENCIES ArmarXCore ArmarXGuiBase ${QT_LIBRARIES}) - endif() - endif() - - list(APPEND SOURCES ${AX_QT_RESOURCES}) - list(APPEND HEADERS ${AX_QT_MOC_HDRS}) - list(APPEND HEADERS ${AX_QT_UIS}) - - set(GENERATE_BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_NAME}_autogen/include") - - install(DIRECTORY "${GENERATE_BASE_DIR}" DESTINATION "include" COMPONENT headers) - printtarget("${HEADERS}" "${SOURCES}" "${AX_QT_RESOURCES}" "${DEPENDENCIES}") - - armarx_add_library("${PLUGIN_NAME}" - SOURCES "${SOURCES}" - HEADERS "${HEADERS}" - DEPENDENCIES "${DEPENDENCIES}" - ) - target_include_directories("${PLUGIN_NAME}" PUBLIC $<BUILD_INTERFACE:${GENERATE_BASE_DIR}> ) - target_compile_definitions("${PLUGIN_NAME}" PUBLIC -DQ_COMPILER_INITIALIZER_LISTS) - - set_target_properties("${PLUGIN_NAME}" PROPERTIES AUTOMOC ON) - set_target_properties("${PLUGIN_NAME}" PROPERTIES AUTOUIC ON) - set_target_properties("${PLUGIN_NAME}" PROPERTIES AUTORCC ON) - set_target_properties("${PLUGIN_NAME}" PROPERTIES AUTOUIC_SEARCH_PATHS ${${ARMARX_PROJECT_NAME}_SOURCE_DIR}/source) - - file(RELATIVE_PATH CORRECT_INCLUDE "${CMAKE_SOURCE_DIR}/source" ${CMAKE_CURRENT_SOURCE_DIR}) - - message(STATUS "cmake: ${CMAKE_COMMAND} ${PLUGIN_NAME}") - add_custom_command(TARGET ${PLUGIN_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} - ARGS "-DPROJECT_NAME=${PROJECT_NAME}" "-DDIR=${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_NAME}_autogen/include/" - "-DCORRECT_INCLUDE=${CORRECT_INCLUDE}" "-DPROJECT_SOURCE_DIR=${CMAKE_SOURCE_DIR}/source" - "-P" "${ArmarXGui_CMAKE_DIR}/check_qt_moc_includes.cmake" - #COMMENT "Checking qt moc includes" - ) - - - if(${VERBOSE}) - message(STATUS " Gui Library Directories:") - printlist(" " "${ArmarXGui_LIBRARY_DIRS}") - message(STATUS " Include Directories: ") - printlist(" " "${INCLUDE_DIRECTORIES}") - endif() -endfunction() - - -function(armarx_gui_plugin PLUGIN_NAME) - - set(single_param) - set(flag_param) - set(multi_param SOURCES QT_MOC_HDRS QT_UIS QT_RESOURCES DEPENDENCIES) - cmake_parse_arguments(AX "${flag_param}" "${single_param}" "${multi_param}" ${ARGN}) - if(DEFINED AX_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "${TARGET}: Unknown arguments `${AX_UNPARSED_ARGUMENTS}`.") - endif() - - # variables that are modified within this context - set(SOURCES "${AX_SOURCES}") - set(DEPENDENCIES "${AX_DEPENDENCIES}") - - list(APPEND SOURCES ${AX_QT_RESOURCES}) - list(APPEND HEADERS ${AX_QT_MOC_HDRS}) - list(APPEND HEADERS ${AX_QT_UIS}) - - set(GENERATE_BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_NAME}_autogen/include") - - #gui plugin name - # Make sure to remove only the last 'GuiPlugin' otherwise you cannot name your plugins '*GuiPlugin' - string(REGEX REPLACE "GuiPlugin$" "" ARMARX_GUI_PLUGIN_PREFIX "${ARMARX_TARGET_NAME}") - - #autogen header if none was supplied - set(tmp_headers ${HEADERS}) - set(tmp_regex "(^|\\.*/)${ARMARX_GUI_PLUGIN_PREFIX}GuiPlugin\\.h") - list(FILTER tmp_headers INCLUDE REGEX "${tmp_regex}") - list(REMOVE_DUPLICATES tmp_headers) - list(LENGTH tmp_headers tmp_headers_len) - - if("0" STREQUAL "${tmp_headers_len}") - ######################################################################## - #get rel path for subdir - file(RELATIVE_PATH subdir "${PROJECT_SOURCECODE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}") - ######################################################################## - #get the widget controller header - set(tmp_headers ${HEADERS}) - set(tmp_regex "(^|\\.*/)${ARMARX_GUI_PLUGIN_PREFIX}WidgetController\\.h") - list(FILTER tmp_headers INCLUDE REGEX "${tmp_regex}") - list(REMOVE_DUPLICATES tmp_headers) - list(LENGTH tmp_headers tmp_headers_len) - if(NOT "1" STREQUAL "${tmp_headers_len}") - message(FATAL_ERROR "Failed to auto generate the GuiPlugin headers! Error: Can't find the widget controller '${tmp_regex}'") - endif() - list(GET tmp_headers 0 tmp_hdr) - set(ARMARX_GUI_PLUGIN_WIDGET_CONTROLLER_HEDER "${subdir}/${tmp_hdr}") - ######################################################################## - #generate and add files - set(outfile "${GENERATE_BASE_DIR}/${subdir}/${ARMARX_TARGET_NAME}") - foreach(suff h cpp) - # TODO move template to ArmarXGui - configure_file( - "${ArmarXCore_TEMPLATES_DIR}/GuiPluginTemplate/GuiPlugin.tmp.${suff}" - "${outfile}.${suff}" - @ONLY - ) - endforeach() - list(APPEND SOURCES "${outfile}.cpp") - list(APPEND HEADERS "${outfile}.h") - endif() - - armarx_gui_library("${PLUGIN_NAME}" - SOURCES "${SOURCES}" - QT_MOC_HDRS "${HEADERS}" - QT_UIS "" - QT_RESOURCES "${AX_QT_RESOURCES}" - DEPENDENCIES "${AX_DEPENDENCIES}" - ) -endfunction()