VTK/Tutorials/CMakeListsFileForQt4

From KitwarePublic
Jump to navigationJump to search

CMakeLists.txt

<source lang=cmake> project(application)

cmake_minimum_required(VERSION 2.8.0)

find_package(VTK REQUIRED) include(${VTK_USE_FILE})

find_package(Qt4 REQUIRED) include(${QT_USE_FILE})

  1. support for out-of-source build

INCLUDE_DIRECTORIES(

 ${CMAKE_CURRENT_BINARY_DIR}
 ${CMAKE_CURRENT_SOURCE_DIR}

)

set(SRC

   optionsDialog.h optionsDialog.cpp
   main.cpp
   mainwindow.h mainwindow.cpp
   application.qrc

)

set(MOC optionsDialog.h mainwindow.h ) set(UI optionsDialog.ui mainwindow.ui) set(RCC application.qrc )

qt4_wrap_cpp(MOC_GENERATED ${MOC}) qt4_wrap_ui(UI_GENERATED ${UI}) qt4_add_resources(RCC_GENERATED ${RCC})

source_group("Form Files" FILES ${UI} ) source_group("Resource Files" FILES ${RCC} ) source_group("Generated Files" FILES ${MOC_GENERATED} ${UI_GENERATED} ${RCC_GENERATED} )

add_executable(application WIN32

   ${SRC}
   ${MOC_GENERATED}   ${UI_GENERATED}  ${RCC_GENERATED} )

target_link_libraries(application ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY} QVTK vtkHybrid)

</source>


Here is the descriptions for selected lines:


Make cmake to find VTK and Qt4 library and include UseVTK.cmake and UseQt4.cmake, where useful settings are defined.

<source lang=cmake> find_package(VTK REQUIRED) include(${VTK_USE_FILE})

find_package(Qt4 REQUIRED) include(${QT_USE_FILE}) </source>

Tell cmake we want to compile Test.cpp into a binary called Test. <source lang=cmake> ADD_EXECUTABLE(Test Test.cpp) </source>

Tell cmake we need to link Test against vtkHybrid. This is the "catch all" VTK library. If you don't know what to link to, most of the time vtkHybrid will have what you need. <source lang=cmake> TARGET_LINK_LIBRARIES(Test vtkHybrid) </source>