Qt QML 杂记Qt

如何转换 qmake 到 CMake

2020-06-08  本文已影响0人  赵者也

本文非原创,参考链接:How to convert QMake to CMake

假设我们想要将以下 qmake 的 .pro 文件转换为 cmake:

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

将 qmake 的 .pro 的内容复制到 CMakeLists.txt 中并开始转换。

qmake 所需的库:

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

在 CMake 中处理上面的设置时只需要添加库。因为 CMake 中没有像 qmake 那样的默认设置。因此没有必要有删除库的步骤:

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 \
    interface.cpp \
    library.cpp \
    processing.cpp

CMake 中创建资源文件列表:

set(SOURCES
    main.cpp
    interface.cpp
    library.cpp
    processing.cpp
)

qmake 中的头文件引入:

HEADERS += interface.h \
    library.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
上一篇下一篇

猜你喜欢

热点阅读