2017-05-03 33 views
2

我在我的項目中有一個.pro文件,但現在我想將它移植到CMakeLists.txt文件中,我該怎麼做?如何將qmake轉換爲cmake?

QT += core 
QT -= gui 
CONFIG += c++11 
TARGET = test 
CONFIG += console 
CONFIG -= app_bundle 
TEMPLATE = app 
QT += network 
SOURCES += main.cpp \ 
    test_interface.cpp \ 
    motomanlibrary.cpp \ 
    processing.cpp 
SOURCES += main.cpp \ 
    test_interface.h \ 
    motomanlibrary.h \ 
    processing.h 
+0

http://www.executionunit.com/blog/2014/01/22/moving-from-qmake-to-cmake/ – Antonio

+0

@Antonio,奇怪的是,作者進一步的細節的博客文章沒有找到與cmake一起使用Qt Creator的方式 –

回答

10

QMake:所需的庫。

QT += core 
QT -= gui 
QT += network 

CMake:只有添加是必要的。

find_package(Qt5Core REQUIRED) 
find_package(Qt5Network REQUIRED) 

QMAKE:其它編譯器選項:

CONFIG += c++11 

CMake的:擴展編譯器選項的列表,需要

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") 

QMAKE:源文件

SOURCES += main.cpp \ 
    test_interface.cpp \ 
    motomanlibrary.cpp \ 
    processing.cpp 

的CMake :創建一個酸的列表CE文件

set(SOURCES 
    main.cpp 
    test_interface.cpp 
    motomanlibrary.cpp 
    processing.cpp 
) 

QMAKE:頭包括:

SOURCES += main.cpp \ 
    test_interface.h \ 
    motomanlibrary.h \ 
    processing.h 

CMake的:只顯示其中的頭文件

include_directory(.) # or include_directory(${CMAKE_CURRENT_SOURCE_DIR}) 

QMAKE:目標內置:

TARGET = test 

CMake:設置名稱的目標,添加源,鏈接所需的庫。

add_executable(test ${SOURCES}) 
qt5_use_modules(test Core Network) # This macro depends from Qt version 

# Should not be necessary 
#CONFIG += console 
#CONFIG -= app_bundle 
#TEMPLATE = app 

查看Convert qmake to cmake