2016-06-12 56 views
1

在qtcreator中,模板qt项目有一个简单的.pro配置文件。 从.pro文件QMAKE实用程序生成的Makefile每个都包含大量的包括所有的Qt依赖源文件:如何在Qt项目中使用qmake以外的构建系统?

release/moc_MainWindow.cpp: src/controller/Controller.hpp \ 
... 
     ../../../../Qt/5.6/mingw49_32/include/QtWidgets/QMainWindow \ 
     ../../../../Qt/5.6/mingw49_32/include/QtWidgets/qmainwindow.h \ 
... 100 lines here ... 
     ../../../../Qt/5.6/mingw49_32/include/QtWidgets/qpushbutton.h \ 
     ../../../../Qt/5.6/mingw49_32/include/QtWidgets/qabstractbutton.h \ 
     src/view/qt/MainWindow.hpp 

我在配置的.pro文件方面的问题,所以我决定配置QT项目与另一个构建系统: make,automake,cmake等。

是否有办法自动配置任何编译系统以包含大量qt头文件?或者不包括他们,但没有qtcreator构建qt项目?

我的问题是从Using Cmake with Qt Creator不同,因为我并不需要一个Qt Creator的提出解决我的问题

+0

阅读文档:HTTP://doc.qt .io/qtcreator/creator-project-other.html –

+0

[使用Cmake与Qt Creator]可能重复(http://stackoverflow.com/questions/9415761/using-cmake-with-qt-creator) –

+1

Qt Creator是不是构建系统! –

回答

1

我的CMake的模板:

cmake_minimum_required (VERSION 2.8) 

project(qttest) 
set(PROJECT_VERSION 0.0.1) 

if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") 
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y -pthread -fno-permissive -pedantic -Wall -Wextra -fPIC") 
endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") 

set(QT_VERSION_REQ "5.2") 

find_package(Qt5Core ${QT_VERSION_REQ} REQUIRED) 
find_package(Qt5Quick ${QT_VERSION_REQ} REQUIRED) 
find_package(Qt5Widgets ${QT_VERSION_REQ} REQUIRED) 
find_package(Qt5DBus ${QT_VERSION_REQ} REQUIRED) 

set(CMAKE_AUTOMOC ON) 

include_directories(${CMAKE_CURRENT_SOURCE_DIR}) 

list(APPEND SOURCES 
) 

list(APPEND MAIN_SOURCES 
    main.cpp 
    ${SOURCES} 
) 

list(APPEND LIBS 
    Qt5::Core 
    Qt5::Quick 
    Qt5::Widgets 
    Qt5::DBus 
) 

add_executable(${PROJECT_NAME} ${MAIN_SOURCES}) 
target_link_libraries(${PROJECT_NAME} ${LIBS}) 
+0

好的。我接受答案,但也添加用于生成ui文件集的字符串(CMAKE_AUTOUIC ON) include_directories($ {CMAKE_BINARY_DIR}) – Vyacheslav

相关问题