How to convert QMake to CMake

CMake会成为Qt6重点发展的编译手段。

1、先看官方文档

https://doc.qt.io/qt-5/cmake-manual.html

https://doc.qt.io/qt-5/cmake-get-started.html

https://doc.qt.io/qt-5/cmake-command-reference.html

2、再来看一篇文档《How to convert QMake to CMake》

http://www.th-thielemann.de/development/cmake/cmake_qmake_to_cmake.html

Assume you want to convert the following qmake .pro file to 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

Copy the content of your qmake .pro into a CMakeLists.txt and start to convert.

QMake: The required libraries.

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

CMake: only add is necessary. The is no default set. Thus the remove of libraries is not necessary.

find_package(Qt5Core REQUIRED)
find_package(Qt5Network REQUIRED)

QMake: Additional Compiler flags:

CONFIG += c++11

CMake: Extend the list of compiler flags as required

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

QMake: The source files

SOURCES += main.cpp \
    interface.cpp \
    library.cpp \
    processing.cpp

CMake: Create a list of source files

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

QMake: The header to include:

SOURCES += main.cpp \
    interface.h \
    library.h \
    processing.h

CMake: Just show where the header files are. Add header files without am cpp-file to SOURCES.

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

QMake: The target to built:

TARGET = test

CMake: Set the name of the target, add the sources, link the required libs.

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

3、最后来看看我在Qt论坛发的帖子

https://forum.qt.io/topic/112403/is-there-a-tool-for-converting-qmake-and-cmake-files-to-each-other-one-click-conversion-easy-to-use

里面有网友说,qt有提供pro2cmake的转换工具:

https://code.qt.io/cgit/qt/qtbase.git/tree/util/cmake/pro2cmake.py

https://code.qt.io/cgit/qt/qtbase.git/tree/util/cmake/run_pro2cmake.py

发布了505 篇原创文章 · 获赞 610 · 访问量 344万+

猜你喜欢

转载自blog.csdn.net/libaineu2004/article/details/104768958