summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2021-01-11 15:49:30 +0100
committerKarsten Heimrich <karsten.heimrich@qt.io>2021-01-15 12:34:22 +0100
commit66918b6492297e7750621d85d4372bf45e81a86d (patch)
tree161146a97b8863432ddedb629b700f479189d4c8
parentbb26d975c157a70d93e42ddd2748f81440186cf5 (diff)
Qt6: Port module to cmake build system
Fixes: QTBUG-89767 Fixes: QTBUG-89878 Change-Id: I860ae7b9dbb0f79e9e952d594b9737d4c452579a Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--.cmake.conf1
-rw-r--r--CMakeLists.txt36
-rw-r--r--coin/module_config.yaml12
-rw-r--r--configure.cmake21
-rw-r--r--dependencies.yaml2
-rw-r--r--examples/CMakeLists.txt7
-rw-r--r--examples/serialport/CMakeLists.txt13
-rw-r--r--examples/serialport/blockingmaster/CMakeLists.txt41
-rw-r--r--examples/serialport/blockingslave/CMakeLists.txt41
-rw-r--r--examples/serialport/cenumerator/CMakeLists.txt35
-rw-r--r--examples/serialport/creaderasync/CMakeLists.txt36
-rw-r--r--examples/serialport/creadersync/CMakeLists.txt35
-rw-r--r--examples/serialport/cwriterasync/CMakeLists.txt36
-rw-r--r--examples/serialport/cwritersync/CMakeLists.txt35
-rw-r--r--examples/serialport/enumerator/CMakeLists.txt39
-rw-r--r--examples/serialport/master/CMakeLists.txt40
-rw-r--r--examples/serialport/slave/CMakeLists.txt40
-rw-r--r--examples/serialport/terminal/CMakeLists.txt59
-rw-r--r--qt_cmdline.cmake1
-rw-r--r--qtserialport.pro15
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/serialport/CMakeLists.txt72
-rw-r--r--src/serialport/configure.cmake43
-rw-r--r--src/serialport/qt_cmdline.cmake0
-rw-r--r--src/serialport/serialport-lib.pri51
-rw-r--r--src/serialport/serialport.pro12
-rw-r--r--src/src.pro3
-rw-r--r--tests/CMakeLists.txt5
-rw-r--r--tests/auto/CMakeLists.txt6
-rw-r--r--tests/auto/auto.pro5
-rw-r--r--tests/auto/cmake/CMakeLists.txt13
-rw-r--r--tests/auto/cmake/cmake.pro7
-rw-r--r--tests/auto/qserialport/CMakeLists.txt11
-rw-r--r--tests/auto/qserialport/qserialport.pro7
-rw-r--r--tests/auto/qserialportinfo/CMakeLists.txt11
-rw-r--r--tests/auto/qserialportinfo/qserialportinfo.pro5
-rw-r--r--tests/auto/qserialportinfoprivate/CMakeLists.txt11
-rw-r--r--tests/auto/qserialportinfoprivate/qserialportinfoprivate.pro4
-rw-r--r--tests/tests.pro2
39 files changed, 689 insertions, 125 deletions
diff --git a/.cmake.conf b/.cmake.conf
new file mode 100644
index 00000000..93054804
--- /dev/null
+++ b/.cmake.conf
@@ -0,0 +1 @@
+set(QT_REPO_MODULE_VERSION "6.0.0")
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 00000000..1b1c6763
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,36 @@
+cmake_minimum_required(VERSION 3.16)
+
+include(.cmake.conf)
+project(QtSerialPort
+ VERSION "${QT_REPO_MODULE_VERSION}"
+ DESCRIPTION "Qt SerialPort Libraries"
+ HOMEPAGE_URL "https://qt.io/"
+ LANGUAGES CXX C
+)
+
+set(QT_NO_INTERNAL_COMPATIBILITY_FUNCTIONS TRUE)
+
+find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core)
+find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS Gui Widgets)
+
+if(INTEGRITY)
+ message(NOTICE "Skipping the build as the condition \"NOT INTEGRITY\" is not met.")
+ return()
+endif()
+if(VXWORKS)
+ message(NOTICE "Skipping the build as the condition \"NOT VXWORKS\" is not met.")
+ return()
+endif()
+if(WINRT)
+ message(NOTICE "Skipping the build as the condition \"NOT WINRT\" is not met.")
+ return()
+endif()
+if(UIKIT)
+ message(NOTICE "Skipping the build as the condition \"NOT UIKIT\" is not met.")
+ return()
+endif()
+if(EMSCRIPTEN)
+ message(NOTICE "Skipping the build as the condition \"NOT EMSCRIPTEN\" is not met.")
+ return()
+endif()
+qt_build_repo()
diff --git a/coin/module_config.yaml b/coin/module_config.yaml
new file mode 100644
index 00000000..16d158c6
--- /dev/null
+++ b/coin/module_config.yaml
@@ -0,0 +1,12 @@
+version: 2
+accept_configuration:
+ condition: property
+ property: features
+ not_contains_value: Disable
+
+instructions:
+ Build:
+ - !include "{{qt/qtbase}}/coin_module_build_template_v2.yaml"
+
+ Test:
+ - !include "{{qt/qtbase}}/coin_module_test_template_v3.yaml"
diff --git a/configure.cmake b/configure.cmake
new file mode 100644
index 00000000..53e3f110
--- /dev/null
+++ b/configure.cmake
@@ -0,0 +1,21 @@
+
+
+#### Inputs
+
+
+
+#### Libraries
+
+
+
+#### Tests
+
+
+
+#### Features
+
+
+qt_extra_definition("QT_VERSION_STR" "\"${PROJECT_VERSION}\"" PUBLIC)
+qt_extra_definition("QT_VERSION_MAJOR" ${PROJECT_VERSION_MAJOR} PUBLIC)
+qt_extra_definition("QT_VERSION_MINOR" ${PROJECT_VERSION_MINOR} PUBLIC)
+qt_extra_definition("QT_VERSION_PATCH" ${PROJECT_VERSION_PATCH} PUBLIC)
diff --git a/dependencies.yaml b/dependencies.yaml
index 7fec97fa..adf5fbfd 100644
--- a/dependencies.yaml
+++ b/dependencies.yaml
@@ -1,4 +1,4 @@
dependencies:
../qtbase:
- ref: 73f9c514dc01e26735b7162756ee6344ea9ac025
+ ref: 1f53189c29f80c736877333631338670a06ac439
required: true
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 00000000..7d8e3ea7
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,7 @@
+qt_examples_build_begin()
+
+if(NOT QNX)
+ add_subdirectory(serialport)
+endif()
+
+qt_examples_build_end()
diff --git a/examples/serialport/CMakeLists.txt b/examples/serialport/CMakeLists.txt
new file mode 100644
index 00000000..b75c32e2
--- /dev/null
+++ b/examples/serialport/CMakeLists.txt
@@ -0,0 +1,13 @@
+add_subdirectory(cenumerator)
+add_subdirectory(creaderasync)
+add_subdirectory(creadersync)
+add_subdirectory(cwriterasync)
+add_subdirectory(cwritersync)
+if((((NOT QT.widgets.name_ISEMPTY))))
+ add_subdirectory(enumerator)
+ add_subdirectory(terminal)
+ add_subdirectory(blockingmaster)
+ add_subdirectory(blockingslave)
+ add_subdirectory(master)
+ add_subdirectory(slave)
+endif()
diff --git a/examples/serialport/blockingmaster/CMakeLists.txt b/examples/serialport/blockingmaster/CMakeLists.txt
new file mode 100644
index 00000000..4297345e
--- /dev/null
+++ b/examples/serialport/blockingmaster/CMakeLists.txt
@@ -0,0 +1,41 @@
+cmake_minimum_required(VERSION 3.14)
+project(blockingmaster LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/blockingmaster")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(blockingmaster
+ dialog.cpp dialog.h
+ main.cpp
+ masterthread.cpp masterthread.h
+)
+set_target_properties(blockingmaster PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(blockingmaster PRIVATE
+ Qt::Core
+ Qt::Gui
+ Qt::SerialPort
+ Qt::Widgets
+)
+
+install(TARGETS blockingmaster
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/serialport/blockingslave/CMakeLists.txt b/examples/serialport/blockingslave/CMakeLists.txt
new file mode 100644
index 00000000..274b6da5
--- /dev/null
+++ b/examples/serialport/blockingslave/CMakeLists.txt
@@ -0,0 +1,41 @@
+cmake_minimum_required(VERSION 3.14)
+project(blockingslave LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/blockingslave")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(blockingslave
+ dialog.cpp dialog.h
+ main.cpp
+ slavethread.cpp slavethread.h
+)
+set_target_properties(blockingslave PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(blockingslave PRIVATE
+ Qt::Core
+ Qt::Gui
+ Qt::SerialPort
+ Qt::Widgets
+)
+
+install(TARGETS blockingslave
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/serialport/cenumerator/CMakeLists.txt b/examples/serialport/cenumerator/CMakeLists.txt
new file mode 100644
index 00000000..f4aa5a3e
--- /dev/null
+++ b/examples/serialport/cenumerator/CMakeLists.txt
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 3.14)
+project(cenumerator LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/cenumerator")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(cenumerator
+ main.cpp
+)
+set_target_properties(cenumerator PROPERTIES
+ WIN32_EXECUTABLE FALSE
+ MACOSX_BUNDLE FALSE
+)
+target_link_libraries(cenumerator PRIVATE
+ Qt::Core
+ Qt::SerialPort
+)
+
+install(TARGETS cenumerator
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/serialport/creaderasync/CMakeLists.txt b/examples/serialport/creaderasync/CMakeLists.txt
new file mode 100644
index 00000000..e6159c90
--- /dev/null
+++ b/examples/serialport/creaderasync/CMakeLists.txt
@@ -0,0 +1,36 @@
+cmake_minimum_required(VERSION 3.14)
+project(creaderasync LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/creaderasync")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(creaderasync
+ main.cpp
+ serialportreader.cpp serialportreader.h
+)
+set_target_properties(creaderasync PROPERTIES
+ WIN32_EXECUTABLE FALSE
+ MACOSX_BUNDLE FALSE
+)
+target_link_libraries(creaderasync PRIVATE
+ Qt::Core
+ Qt::SerialPort
+)
+
+install(TARGETS creaderasync
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/serialport/creadersync/CMakeLists.txt b/examples/serialport/creadersync/CMakeLists.txt
new file mode 100644
index 00000000..8e449759
--- /dev/null
+++ b/examples/serialport/creadersync/CMakeLists.txt
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 3.14)
+project(creadersync LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/creadersync")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(creadersync
+ main.cpp
+)
+set_target_properties(creadersync PROPERTIES
+ WIN32_EXECUTABLE FALSE
+ MACOSX_BUNDLE FALSE
+)
+target_link_libraries(creadersync PRIVATE
+ Qt::Core
+ Qt::SerialPort
+)
+
+install(TARGETS creadersync
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/serialport/cwriterasync/CMakeLists.txt b/examples/serialport/cwriterasync/CMakeLists.txt
new file mode 100644
index 00000000..6fb467fd
--- /dev/null
+++ b/examples/serialport/cwriterasync/CMakeLists.txt
@@ -0,0 +1,36 @@
+cmake_minimum_required(VERSION 3.14)
+project(cwriterasync LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/cwriterasync")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(cwriterasync
+ main.cpp
+ serialportwriter.cpp serialportwriter.h
+)
+set_target_properties(cwriterasync PROPERTIES
+ WIN32_EXECUTABLE FALSE
+ MACOSX_BUNDLE FALSE
+)
+target_link_libraries(cwriterasync PRIVATE
+ Qt::Core
+ Qt::SerialPort
+)
+
+install(TARGETS cwriterasync
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/serialport/cwritersync/CMakeLists.txt b/examples/serialport/cwritersync/CMakeLists.txt
new file mode 100644
index 00000000..a78140cb
--- /dev/null
+++ b/examples/serialport/cwritersync/CMakeLists.txt
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 3.14)
+project(cwritersync LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/cwritersync")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(cwritersync
+ main.cpp
+)
+set_target_properties(cwritersync PROPERTIES
+ WIN32_EXECUTABLE FALSE
+ MACOSX_BUNDLE FALSE
+)
+target_link_libraries(cwritersync PRIVATE
+ Qt::Core
+ Qt::SerialPort
+)
+
+install(TARGETS cwritersync
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/serialport/enumerator/CMakeLists.txt b/examples/serialport/enumerator/CMakeLists.txt
new file mode 100644
index 00000000..9888b5ab
--- /dev/null
+++ b/examples/serialport/enumerator/CMakeLists.txt
@@ -0,0 +1,39 @@
+cmake_minimum_required(VERSION 3.14)
+project(enumerator LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/enumerator")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(enumerator
+ main.cpp
+)
+set_target_properties(enumerator PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(enumerator PRIVATE
+ Qt::Core
+ Qt::Gui
+ Qt::SerialPort
+ Qt::Widgets
+)
+
+install(TARGETS enumerator
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/serialport/master/CMakeLists.txt b/examples/serialport/master/CMakeLists.txt
new file mode 100644
index 00000000..536a07e7
--- /dev/null
+++ b/examples/serialport/master/CMakeLists.txt
@@ -0,0 +1,40 @@
+cmake_minimum_required(VERSION 3.14)
+project(master LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/master")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(master
+ dialog.cpp dialog.h
+ main.cpp
+)
+set_target_properties(master PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(master PRIVATE
+ Qt::Core
+ Qt::Gui
+ Qt::SerialPort
+ Qt::Widgets
+)
+
+install(TARGETS master
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/serialport/slave/CMakeLists.txt b/examples/serialport/slave/CMakeLists.txt
new file mode 100644
index 00000000..187c9eb3
--- /dev/null
+++ b/examples/serialport/slave/CMakeLists.txt
@@ -0,0 +1,40 @@
+cmake_minimum_required(VERSION 3.14)
+project(slave LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/slave")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(slave
+ dialog.cpp dialog.h
+ main.cpp
+)
+set_target_properties(slave PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(slave PRIVATE
+ Qt::Core
+ Qt::Gui
+ Qt::SerialPort
+ Qt::Widgets
+)
+
+install(TARGETS slave
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/serialport/terminal/CMakeLists.txt b/examples/serialport/terminal/CMakeLists.txt
new file mode 100644
index 00000000..75e44bd1
--- /dev/null
+++ b/examples/serialport/terminal/CMakeLists.txt
@@ -0,0 +1,59 @@
+cmake_minimum_required(VERSION 3.14)
+project(terminal LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+if(NOT DEFINED INSTALL_EXAMPLESDIR)
+ set(INSTALL_EXAMPLESDIR "examples")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/serialport/terminal")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Widgets)
+find_package(Qt6 COMPONENTS SerialPort)
+
+qt_add_executable(terminal
+ console.cpp console.h
+ main.cpp
+ mainwindow.cpp mainwindow.h mainwindow.ui
+ settingsdialog.cpp settingsdialog.h settingsdialog.ui
+)
+set_target_properties(terminal PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(terminal PRIVATE
+ Qt::Core
+ Qt::Gui
+ Qt::SerialPort
+ Qt::Widgets
+)
+
+
+# Resources:
+set(terminal_resource_files
+ "images/application-exit.png"
+ "images/clear.png"
+ "images/connect.png"
+ "images/disconnect.png"
+ "images/settings.png"
+)
+
+qt6_add_resources(terminal "terminal"
+ PREFIX
+ "/"
+ FILES
+ ${terminal_resource_files}
+)
+
+install(TARGETS terminal
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/qt_cmdline.cmake b/qt_cmdline.cmake
new file mode 100644
index 00000000..e58ed67d
--- /dev/null
+++ b/qt_cmdline.cmake
@@ -0,0 +1 @@
+qt_commandline_subconfig(src/serialport)
diff --git a/qtserialport.pro b/qtserialport.pro
deleted file mode 100644
index 5b7cd414..00000000
--- a/qtserialport.pro
+++ /dev/null
@@ -1,15 +0,0 @@
-lessThan(QT_MAJOR_VERSION, 5) {
- message("Cannot build current QtSerialPort sources with Qt version $${QT_VERSION}.")
- error("Use at least Qt 5.0.0 or try to download QtSerialPort for Qt4.")
-}
-
-requires(!integrity)
-requires(!vxworks)
-requires(!winrt)
-requires(!uikit)
-requires(!emscripten)
-
-load(configure)
-qtCompileTest(ntddmodm)
-
-load(qt_parts)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 00000000..ebdbadf0
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(serialport)
diff --git a/src/serialport/CMakeLists.txt b/src/serialport/CMakeLists.txt
new file mode 100644
index 00000000..35810e0b
--- /dev/null
+++ b/src/serialport/CMakeLists.txt
@@ -0,0 +1,72 @@
+#####################################################################
+## SerialPort Module:
+#####################################################################
+qt_find_package(Libudev)
+
+qt_internal_add_module(SerialPort
+ SOURCES
+ qserialport.cpp qserialport.h qserialport_p.h
+ qserialportglobal.h
+ qserialportinfo.cpp qserialportinfo.h qserialportinfo_p.h
+ INCLUDE_DIRECTORIES
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ LIBRARIES
+ Qt::CorePrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ PRIVATE_MODULE_INTERFACE
+ Qt::CorePrivate
+)
+
+## Scopes:
+#####################################################################
+
+qt_internal_extend_target(SerialPort CONDITION config_ntddmodm
+ DEFINES
+ QT_NO_REDEFINE_GUID_DEVINTERFACE_MODEM
+)
+
+qt_internal_extend_target(SerialPort CONDITION QT_FEATURE_libudev AND UNIX
+ DEFINES
+ LINK_LIBUDEV
+ LIBRARIES
+ PkgConfig::Libudev
+)
+
+qt_internal_extend_target(SerialPort CONDITION WIN32
+ SOURCES
+ qserialport_win.cpp
+ qserialportinfo_win.cpp
+ qtntdll_p.h
+ LIBRARIES
+ advapi32
+ setupapi
+)
+
+qt_internal_extend_target(SerialPort CONDITION UNIX
+ SOURCES
+ qserialport_unix.cpp
+)
+
+qt_internal_extend_target(SerialPort CONDITION MACOS
+ SOURCES
+ qserialportinfo_osx.cpp
+ LIBRARIES
+ ${FWCoreFoundation}
+ ${FWIOKit}
+)
+
+qt_internal_extend_target(SerialPort CONDITION FREEBSD
+ SOURCES
+ qserialportinfo_freebsd.cpp
+)
+
+qt_internal_extend_target(SerialPort CONDITION UNIX AND NOT FREEBSD AND NOT MACOS
+ SOURCES
+ qserialportinfo_unix.cpp
+)
+
+qt_internal_add_docs(SerialPort
+ doc/qtserialport.qdocconf
+)
+
diff --git a/src/serialport/configure.cmake b/src/serialport/configure.cmake
new file mode 100644
index 00000000..a9ce0492
--- /dev/null
+++ b/src/serialport/configure.cmake
@@ -0,0 +1,43 @@
+
+
+#### Inputs
+
+
+
+#### Libraries
+
+
+
+#### Tests
+
+# ntddmodm
+qt_config_compile_test(ntddmodm
+ LABEL "ntddmodm"
+ CODE
+"
+#include <windows.h>
+#include <ntddmodm.h>
+
+int main(int argc, char **argv)
+{
+ (void)argc; (void)argv;
+ /* BEGIN TEST: */
+GUID guid = GUID_DEVINTERFACE_MODEM;
+ /* END TEST: */
+ return 0;
+}
+")
+
+
+
+#### Features
+
+qt_feature("ntddmodm" PRIVATE
+ LABEL "ntddmodm"
+ CONDITION TEST_ntddmodm
+ DISABLE INPUT_ntddmodm STREQUAL 'no'
+)
+qt_feature_definition("ntddmodm" "QT_NO_REDEFINE_GUID_DEVINTERFACE_MODEM" NEGATE)
+qt_configure_add_summary_section(NAME "Serial Port")
+qt_configure_add_summary_entry(ARGS "ntddmodm")
+qt_configure_end_summary_section() # end of "Serial Port" section
diff --git a/src/serialport/qt_cmdline.cmake b/src/serialport/qt_cmdline.cmake
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/src/serialport/qt_cmdline.cmake
diff --git a/src/serialport/serialport-lib.pri b/src/serialport/serialport-lib.pri
deleted file mode 100644
index b9b3c83b..00000000
--- a/src/serialport/serialport-lib.pri
+++ /dev/null
@@ -1,51 +0,0 @@
-INCLUDEPATH += $$PWD
-
-unix:qtConfig(libudev) {
- DEFINES += LINK_LIBUDEV
- INCLUDEPATH += $$QMAKE_INCDIR_LIBUDEV
- LIBS_PRIVATE += $$QMAKE_LIBS_LIBUDEV
-}
-
-PUBLIC_HEADERS += \
- $$PWD/qserialportglobal.h \
- $$PWD/qserialport.h \
- $$PWD/qserialportinfo.h
-
-PRIVATE_HEADERS += \
- $$PWD/qserialport_p.h \
- $$PWD/qserialportinfo_p.h
-
-SOURCES += \
- $$PWD/qserialport.cpp \
- $$PWD/qserialportinfo.cpp
-
-win32 {
- SOURCES += \
- $$PWD/qserialport_win.cpp \
- $$PWD/qserialportinfo_win.cpp \
-
- PRIVATE_HEADERS += \
- $$PWD/qtntdll_p.h
-
- LIBS_PRIVATE += -lsetupapi -ladvapi32
-}
-
-unix {
- SOURCES += \
- $$PWD/qserialport_unix.cpp
-
- osx {
- SOURCES += \
- $$PWD/qserialportinfo_osx.cpp
-
- LIBS_PRIVATE += -framework IOKit -framework CoreFoundation
- } else:freebsd {
- SOURCES += \
- $$PWD/qserialportinfo_freebsd.cpp
- } else {
- SOURCES += \
- $$PWD/qserialportinfo_unix.cpp
- }
-}
-
-HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS
diff --git a/src/serialport/serialport.pro b/src/serialport/serialport.pro
deleted file mode 100644
index 194958a3..00000000
--- a/src/serialport/serialport.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-TARGET = QtSerialPort
-QT = core-private
-
-QMAKE_DOCS = $$PWD/doc/qtserialport.qdocconf
-
-config_ntddmodm: DEFINES += QT_NO_REDEFINE_GUID_DEVINTERFACE_MODEM
-
-include($$PWD/serialport-lib.pri)
-
-load(qt_module)
-
-PRECOMPILED_HEADER =
diff --git a/src/src.pro b/src/src.pro
deleted file mode 100644
index 1426d64e..00000000
--- a/src/src.pro
+++ /dev/null
@@ -1,3 +0,0 @@
-TEMPLATE = subdirs
-
-SUBDIRS = serialport
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 00000000..2e6270ae
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,5 @@
+if(QT_BUILD_STANDALONE_TESTS)
+ # Add qt_find_package calls for extra dependencies that need to be found when building
+ # the standalone tests here.
+endif()
+qt_build_tests()
diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt
new file mode 100644
index 00000000..97f8f2a2
--- /dev/null
+++ b/tests/auto/CMakeLists.txt
@@ -0,0 +1,6 @@
+add_subdirectory(qserialport)
+add_subdirectory(qserialportinfo)
+add_subdirectory(cmake)
+if(QT_FEATURE_private_tests)
+ add_subdirectory(qserialportinfoprivate)
+endif()
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
deleted file mode 100644
index 6c0bcec0..00000000
--- a/tests/auto/auto.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS += qserialport qserialportinfo qserialportinfoprivate cmake
-
-!qtConfig(private_tests): SUBDIRS -= \
- qserialportinfoprivate
diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt
index 597f0d37..8b137891 100644
--- a/tests/auto/cmake/CMakeLists.txt
+++ b/tests/auto/cmake/CMakeLists.txt
@@ -1,14 +1 @@
-cmake_minimum_required(VERSION 2.8)
-
-project(qmake_cmake_files)
-
-enable_testing()
-
-find_package(Qt5Core REQUIRED)
-
-include("${_Qt5CTestMacros}")
-
-test_module_includes(
- SerialPort QSerialPort
-)
diff --git a/tests/auto/cmake/cmake.pro b/tests/auto/cmake/cmake.pro
deleted file mode 100644
index 65964972..00000000
--- a/tests/auto/cmake/cmake.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-
-# Cause make to do nothing.
-TEMPLATE = subdirs
-
-CMAKE_QT_MODULES_UNDER_TEST = serialport
-
-CONFIG += ctest_testcase
diff --git a/tests/auto/qserialport/CMakeLists.txt b/tests/auto/qserialport/CMakeLists.txt
new file mode 100644
index 00000000..90438899
--- /dev/null
+++ b/tests/auto/qserialport/CMakeLists.txt
@@ -0,0 +1,11 @@
+#####################################################################
+## tst_qserialport Binary:
+#####################################################################
+
+qt_internal_add_test(tst_qserialport
+ SOURCES
+ tst_qserialport.cpp
+ PUBLIC_LIBRARIES
+ Qt::SerialPort
+ Qt::Test
+)
diff --git a/tests/auto/qserialport/qserialport.pro b/tests/auto/qserialport/qserialport.pro
deleted file mode 100644
index 5435fa39..00000000
--- a/tests/auto/qserialport/qserialport.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-QT = core testlib
-TARGET = tst_qserialport
-#CONFIG += testcase
-
-QT += serialport
-
-SOURCES = tst_qserialport.cpp
diff --git a/tests/auto/qserialportinfo/CMakeLists.txt b/tests/auto/qserialportinfo/CMakeLists.txt
new file mode 100644
index 00000000..4ae3910e
--- /dev/null
+++ b/tests/auto/qserialportinfo/CMakeLists.txt
@@ -0,0 +1,11 @@
+#####################################################################
+## tst_qserialportinfo Binary:
+#####################################################################
+
+qt_internal_add_test(tst_qserialportinfo
+ SOURCES
+ tst_qserialportinfo.cpp
+ PUBLIC_LIBRARIES
+ Qt::SerialPort
+ Qt::Test
+)
diff --git a/tests/auto/qserialportinfo/qserialportinfo.pro b/tests/auto/qserialportinfo/qserialportinfo.pro
deleted file mode 100644
index 0cf4c1d5..00000000
--- a/tests/auto/qserialportinfo/qserialportinfo.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-QT = core testlib serialport
-TARGET = tst_qserialportinfo
-#CONFIG += testcase
-
-SOURCES = tst_qserialportinfo.cpp
diff --git a/tests/auto/qserialportinfoprivate/CMakeLists.txt b/tests/auto/qserialportinfoprivate/CMakeLists.txt
new file mode 100644
index 00000000..20e45a97
--- /dev/null
+++ b/tests/auto/qserialportinfoprivate/CMakeLists.txt
@@ -0,0 +1,11 @@
+#####################################################################
+## tst_qserialportinfoprivate Binary:
+#####################################################################
+
+qt_internal_add_test(tst_qserialportinfoprivate
+ SOURCES
+ tst_qserialportinfoprivate.cpp
+ PUBLIC_LIBRARIES
+ Qt::SerialPortPrivate
+ Qt::Test
+)
diff --git a/tests/auto/qserialportinfoprivate/qserialportinfoprivate.pro b/tests/auto/qserialportinfoprivate/qserialportinfoprivate.pro
deleted file mode 100644
index f479a298..00000000
--- a/tests/auto/qserialportinfoprivate/qserialportinfoprivate.pro
+++ /dev/null
@@ -1,4 +0,0 @@
-QT = core testlib serialport-private
-TARGET = tst_qserialportinfoprivate
-#CONFIG += testcase
-SOURCES = tst_qserialportinfoprivate.cpp
diff --git a/tests/tests.pro b/tests/tests.pro
deleted file mode 100644
index 157ef345..00000000
--- a/tests/tests.pro
+++ /dev/null
@@ -1,2 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS += auto