cmake配置vs+qt+vtk


開發圖形相關的軟件時,qt+vtk是一個不錯的搭配,qt負責gui,vtk負責底層圖形渲染。初步嘗試用cmake來構建解決方案,cmakelists.txt如下。

cmake_minimum_required(VERSION 3.3)

project(testproject)

# Instruct CMake to run moc automatically when needed
set(CMAKE_AUTOMOC ON)
# Create code from a list of Qt designer ui files
set(CMAKE_AUTOUIC ON)

# cmake通常找不到qt5的路徑,這里手動設置一下吧,當然也可以在cmake-gui上根據報錯的提示來設置
#set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "c:\\Qt\\Qt5.12.2\\5.12.2\\msvc2017_64\\lib\\cmake\\Qt5")

# Find the needed Qt libraries
find_package(Qt5 COMPONENTS
Core Gui Widgets REQUIRED)

# VTK相關target
find_package(VTK REQUIRED)
# 該命令是必須的,否則構建出的項目運行時會有初始化的問題
include(${VTK_USE_FILE})

# support for out-of-source build
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)

# Populate a CMake variable with the sources
set(SRC
test.h test.cpp
test.ui test.qrc
main.cpp
)

set(UI test.ui)
set(RCC test.qrc)

# Assign filters. Optional, but useful.
# 對於使用visiual studio加qt-vsaddin開發來說,形成相應的過濾器
source_group("Form Files" FILES ${UI})
source_group("Resource Files" FILES ${RCC})
# 讓這個過濾器為空吧。因為用vs+vsaddin直接建立qt項目時,會產生這個過濾器,但也不會自動添加產生的moc文件,不知道原因,
# 因此就空着吧。
source_group("Generated Files")

# 添加target的所有相關源文件
# WIN32也是必須的,This makes it a GUI executable instead of a console application.
add_executable(testproject WIN32 ${SRC})
# 添加target對QT和VTK的所有依賴庫,包括相應的頭文件,這里會自動識別。
target_link_libraries(testproject ${QT_LIBRARIES} ${VTK_LIBRARIES})

 

 

可以成功生成qt+vtk的visiual studio解決方案。但存在一個問題,生成的項目和vs直接新建的qt項目不同,沒有帶有qt相關的信息,例如在項目上點右鍵,沒有qt相關的信息,例如添加class等。這條路適合打包已有完整的解決方案,但不太適合從零開始構建一個項目。

其實想想也正常,cmake只負責qt和vtk形成visiual studio的解決方案,而vs和qt的項目屬性級別的深度集成是 Qt VS Tools(qt-vsaddin)負責的,cmake無從知道這些信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM