# from /trunk/KDE/kdelibs/cmake/modules/KDE4Macros.cmake # Copyright (c) 2006, Alexander Neundorf, # Copyright (c) 2006, Laurent Montel, # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. GET_FILENAME_COMPONENT(SIM_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH) #create the implementation files from the ui files and add them to the list of sources #usage: KDE4_ADD_UI3_FILES(foo_SRCS ${ui_files}) macro (QT3_ADD_UI_FILES _sources ) foreach (_current_FILE ${ARGN}) get_filename_component(_tmp_FILE ${_current_FILE} ABSOLUTE) get_filename_component(_basename ${_tmp_FILE} NAME_WE) set(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) set(_src ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) set(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp) add_custom_command(OUTPUT ${_header} COMMAND ${CMAKE_COMMAND} -DKDE3_HEADER:BOOL=ON -DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC_EXECUTABLE} -DKDE_UIC_FILE:FILEPATH=${_tmp_FILE} -DKDE_UIC_H_FILE:FILEPATH=${_header} -DKDE_UIC_BASENAME:STRING=${_basename} -DKDE_UIC_PLUGIN_DIR:FILEPATH="." -P ${SIM_MODULE_DIR}/kde4uic.cmake MAIN_DEPENDENCY ${_tmp_FILE} ) # we need to run uic3 and replace some things in the generated file # this is done by executing the cmake script kde4uic.cmake add_custom_command(OUTPUT ${_src} COMMAND ${CMAKE_COMMAND} ARGS -DKDE3_IMPL:BOOL=ON -DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC_EXECUTABLE} -DKDE_UIC_FILE:FILEPATH=${_tmp_FILE} -DKDE_UIC_CPP_FILE:FILEPATH=${_src} -DKDE_UIC_H_FILE:FILEPATH=${_header} -DKDE_UIC_BASENAME:STRING=${_basename} -DKDE_UIC_PLUGIN_DIR:FILEPATH="." -P ${SIM_MODULE_DIR}/kde4uic.cmake MAIN_DEPENDENCY ${_header} ) add_custom_command(OUTPUT ${_moc} COMMAND ${QT_MOC_EXECUTABLE} ARGS ${_header} -o ${_moc} MAIN_DEPENDENCY ${_header} ) list(APPEND ${_sources} ${_src} ${_moc} ) endforeach (_current_FILE) endmacro (QT3_ADD_UI_FILES)