PROJECT(QtEvents) FIND_PACKAGE(VTK) IF(NOT VTK_DIR) MESSAGE(FATAL_ERROR "Please set VTK_DIR.") ENDIF(NOT VTK_DIR) INCLUDE(${VTK_USE_FILE}) # use what QVTK built with SET(QT_QMAKE_EXECUTABLE ${VTK_QT_QMAKE_EXECUTABLE} CACHE FILEPATH "") SET(QT_MOC_EXECUTABLE ${VTK_QT_MOC_EXECUTABLE} CACHE FILEPATH "") SET(QT_UIC_EXECUTABLE ${VTK_QT_UIC_EXECUTABLE} CACHE FILEPATH "") SET(DESIRED_QT_VERSION ${VTK_DESIRED_QT_VERSION} CACHE FILEPATH "") FIND_PACKAGE(Qt) IF(QT_USE_FILE) SET(QT_USE_QT3SUPPORT TRUE) INCLUDE(${QT_USE_FILE}) ELSE(QT_USE_FILE) SET(QT_LIBRARIES ${QT_QT_LIBRARY}) ENDIF(QT_USE_FILE) SET (SRCS main.cxx ) # Use the include path and library for Qt that is used by VTK. INCLUDE_DIRECTORIES( ${QT_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) IF(DESIRED_QT_VERSION MATCHES 4) # instead of a complete port to Qt4, lets try out uic3 and Qt3Support STRING(REGEX REPLACE "uic" "uic3" QT_UIC3_EXECUTABLE "${QT_UIC_EXECUTABLE}") ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/GUI.h COMMAND ${QT_UIC3_EXECUTABLE} ARGS -o ${CMAKE_CURRENT_BINARY_DIR}/GUI.h ${CMAKE_CURRENT_SOURCE_DIR}/GUI.ui DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/GUI.ui ) ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/GUI.cxx COMMAND ${QT_UIC3_EXECUTABLE} ARGS -impl ${CMAKE_CURRENT_BINARY_DIR}/GUI.h -o ${CMAKE_CURRENT_BINARY_DIR}/GUI.cxx ${CMAKE_CURRENT_SOURCE_DIR}/GUI.ui DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/GUI.ui ${CMAKE_CURRENT_BINARY_DIR}/GUI.h ) GET_DIRECTORY_PROPERTY(moc_includes_tmp INCLUDE_DIRECTORIES) SET(moc_includes) FOREACH(it ${moc_includes_tmp}) SET(moc_includes ${moc_includes} "-I${it}") ENDFOREACH(it) ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/moc_GUI.cxx COMMAND ${QT_MOC_EXECUTABLE} ARGS ${moc_includes} -o ${CMAKE_CURRENT_BINARY_DIR}/moc_GUI.cxx ${CMAKE_CURRENT_BINARY_DIR}/GUI.h DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/GUI.h) SET(UI_SRCS GUI.cxx moc_GUI.cxx) ELSE(DESIRED_QT_VERSION MATCHES 4) QT_WRAP_UI( qtevents UI_HDRS UI_SRCS GUI.ui ) # help cmake with Qt depends SET_SOURCE_FILES_PROPERTIES(main.cxx PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/GUI.h) ENDIF(DESIRED_QT_VERSION MATCHES 4) SET_SOURCE_FILES_PROPERTIES(GUI.cxx PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/GUI.ui.h) ADD_EXECUTABLE( qtevents MACOSX_BUNDLE ${SRCS} ${UI_SRCS}) TARGET_LINK_LIBRARIES( qtevents QVTK ${QT_LIBRARIES} vtkRendering vtkGraphics vtkIO vtkCommon )