Как преобразовать qmake в cmake?

У меня есть файл .pro в моем проекте, но теперь я хочу перенести его в файл CMakeLists.txt. Как я могу это сделать?

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

Ответ 1

QMake: необходимые библиотеки.

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

CMake: необходимо только добавить. Исключение (QT - = gui) не требуется.

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: создать список исходных файлов

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})
include_directory(some/where/else)

QMake: цель, которую нужно построить:

TARGET = test

CMake: установите имя цели, добавьте источники, свяжите необходимые библиотеки.

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

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

См. дополнительную информацию о конвертации qmake в cmake.