summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2020-07-08 11:35:43 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2020-08-17 08:08:20 +0200
commit584d4be174c6ac8cd0f3395c3852bfe1516f09a5 (patch)
tree9e8aafe467de28bf80c6bb861f6abec139454d29 /src
parent2f9a294252ae44defd4d8ae1b3c09d8e36ee0612 (diff)
CMake: Re-implement configure/qmake's command line handling in CMake
We extend configurejson2cmake to read the "commandline" information from configure.json. This data is then translated to CMake function calls and written it into commandline.cmake files. We extend QtProcessConfigureArgs.cmake to pick up those commandline.cmake files to feed our command line handling code, which is a re-implementation of the command line handling in qt_configure.prf. The command line handler sets INPUT_xxx variables, similar to configure/qmake's config.input.xxx variables. The INPUT_xxx values are translated - to -DFEATURE_xxx=ON/OFF arguments if the input represents a feature, - to corresponding CMake variables if such a variable is known, - or to -DINPUT_xxx=yyy CMake arguments. Configure arguments that have an entry in cmake/configure-cmake-mapping.md are actually implemented. Other arguments are likely to need more work. Task-number: QTBUG-85373 Change-Id: Ia96baa673fc1fb88e73ba05a1afb473aa074b37d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/qt_cmdline.cmake14
-rw-r--r--src/gui/qt_cmdline.cmake36
-rw-r--r--src/network/qt_cmdline.cmake12
-rw-r--r--src/plugins/sqldrivers/qt_cmdline.cmake18
-rw-r--r--src/printsupport/qt_cmdline.cmake1
-rw-r--r--src/sql/qt_cmdline.cmake0
-rw-r--r--src/testlib/qt_cmdline.cmake0
-rw-r--r--src/widgets/qt_cmdline.cmake6
-rw-r--r--src/xml/qt_cmdline.cmake0
9 files changed, 87 insertions, 0 deletions
diff --git a/src/corelib/qt_cmdline.cmake b/src/corelib/qt_cmdline.cmake
new file mode 100644
index 0000000000..b38039f61f
--- /dev/null
+++ b/src/corelib/qt_cmdline.cmake
@@ -0,0 +1,14 @@
+qt_commandline_option(doubleconversion TYPE enum VALUES no qt system)
+qt_commandline_option(eventfd TYPE boolean)
+qt_commandline_option(glib TYPE boolean)
+qt_commandline_option(icu TYPE boolean)
+qt_commandline_option(inotify TYPE boolean)
+qt_commandline_option(journald TYPE boolean)
+qt_commandline_option(libb2 TYPE enum VALUES no qt system)
+qt_commandline_option(mimetype-database TYPE boolean)
+qt_commandline_option(pcre TYPE enum VALUES no qt system)
+qt_commandline_option(posix-ipc TYPE boolean NAME ipc_posix)
+qt_commandline_option(pps TYPE boolean NAME qqnx_pps)
+qt_commandline_option(slog2 TYPE boolean)
+qt_commandline_option(syslog TYPE boolean)
+qt_commandline_option(trace TYPE optionalString VALUES etw lttng no yes)
diff --git a/src/gui/qt_cmdline.cmake b/src/gui/qt_cmdline.cmake
new file mode 100644
index 0000000000..cf8561eef8
--- /dev/null
+++ b/src/gui/qt_cmdline.cmake
@@ -0,0 +1,36 @@
+qt_commandline_option(accessibility TYPE boolean)
+qt_commandline_option(direct2d TYPE boolean)
+qt_commandline_option(directfb TYPE boolean)
+qt_commandline_option(directwrite TYPE boolean)
+qt_commandline_option(egl TYPE boolean)
+qt_commandline_option(eglfs TYPE boolean)
+qt_commandline_option(evdev TYPE boolean)
+qt_commandline_option(fontconfig TYPE boolean)
+qt_commandline_option(freetype TYPE enum VALUES no qt system)
+qt_commandline_option(gbm TYPE boolean)
+qt_commandline_option(gif TYPE boolean)
+qt_commandline_option(harfbuzz TYPE enum VALUES no qt system)
+qt_commandline_option(ico TYPE boolean)
+qt_commandline_option(imf TYPE boolean NAME qqnx_imf)
+qt_commandline_option(kms TYPE boolean)
+qt_commandline_option(lgmon TYPE boolean)
+qt_commandline_option(libinput TYPE boolean)
+qt_commandline_option(libjpeg TYPE enum VALUES no qt system)
+qt_commandline_option(libmd4c TYPE enum VALUES no qt system)
+qt_commandline_option(libpng TYPE enum VALUES no qt system)
+qt_commandline_option(linuxfb TYPE boolean)
+qt_commandline_option(mtdev TYPE boolean)
+qt_commandline_option(opengl TYPE optionalString VALUES no yes desktop es2 dynamic)
+qt_commandline_option(opengl-es-2 TYPE void NAME opengl VALUE es2)
+qt_commandline_option(opengles3 TYPE boolean)
+qt_commandline_option(openvg TYPE boolean)
+qt_commandline_option(qpa TYPE string NAME qpa_default_platform)
+qt_commandline_option(qpa-platform-guard TYPE boolean)
+qt_commandline_option(sm TYPE boolean NAME sessionmanager)
+qt_commandline_option(tslib TYPE boolean)
+qt_commandline_option(vulkan TYPE boolean)
+qt_commandline_option(xcb TYPE boolean)
+qt_commandline_option(bundled-xcb-xinput TYPE boolean)
+qt_commandline_option(xcb-native-painting TYPE boolean)
+qt_commandline_option(xcb-xlib TYPE boolean)
+qt_commandline_option(xkbcommon TYPE boolean)
diff --git a/src/network/qt_cmdline.cmake b/src/network/qt_cmdline.cmake
new file mode 100644
index 0000000000..0a24507788
--- /dev/null
+++ b/src/network/qt_cmdline.cmake
@@ -0,0 +1,12 @@
+qt_commandline_option(libproxy TYPE boolean)
+qt_commandline_option(openssl TYPE optionalString VALUES no yes linked runtime)
+qt_commandline_option(openssl-linked TYPE void NAME openssl VALUE linked)
+qt_commandline_option(openssl-runtime TYPE void NAME openssl VALUE runtime)
+qt_commandline_option(dtls TYPE boolean)
+qt_commandline_option(ocsp TYPE boolean)
+qt_commandline_option(sctp TYPE boolean)
+qt_commandline_option(securetransport TYPE boolean)
+qt_commandline_option(schannel TYPE boolean)
+qt_commandline_option(ssl TYPE boolean)
+qt_commandline_option(system-proxies TYPE boolean)
+qt_commandline_assignment(OPENSSL_PATH openssl.prefix)
diff --git a/src/plugins/sqldrivers/qt_cmdline.cmake b/src/plugins/sqldrivers/qt_cmdline.cmake
new file mode 100644
index 0000000000..91b6f9f767
--- /dev/null
+++ b/src/plugins/sqldrivers/qt_cmdline.cmake
@@ -0,0 +1,18 @@
+qt_commandline_option(mysql_config TYPE string)
+qt_commandline_option(psql_config TYPE string)
+qt_commandline_option(sqlite TYPE enum NAME system-sqlite MAPPING qt no system yes)
+qt_commandline_option(sql-db2 TYPE boolean)
+qt_commandline_option(sql-ibase TYPE boolean)
+qt_commandline_option(sql-mysql TYPE boolean)
+qt_commandline_option(sql-oci TYPE boolean)
+qt_commandline_option(sql-odbc TYPE boolean)
+qt_commandline_option(sql-psql TYPE boolean)
+qt_commandline_option(sql-sqlite TYPE boolean)
+qt_commandline_option(plugin-sql-db2 TYPE void NAME sql-db2)
+qt_commandline_option(plugin-sql-ibase TYPE void NAME sql-ibase)
+qt_commandline_option(plugin-sql-mysql TYPE void NAME sql-mysql)
+qt_commandline_option(plugin-sql-oci TYPE void NAME sql-oci)
+qt_commandline_option(plugin-sql-odbc TYPE void NAME sql-odbc)
+qt_commandline_option(plugin-sql-psql TYPE void NAME sql-psql)
+qt_commandline_option(plugin-sql-sqlite TYPE void NAME sql-sqlite)
+qt_commandline_assignment(MYSQL_PATH mysql.prefix)
diff --git a/src/printsupport/qt_cmdline.cmake b/src/printsupport/qt_cmdline.cmake
new file mode 100644
index 0000000000..dfbe5febe4
--- /dev/null
+++ b/src/printsupport/qt_cmdline.cmake
@@ -0,0 +1 @@
+qt_commandline_option(cups TYPE boolean)
diff --git a/src/sql/qt_cmdline.cmake b/src/sql/qt_cmdline.cmake
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/src/sql/qt_cmdline.cmake
diff --git a/src/testlib/qt_cmdline.cmake b/src/testlib/qt_cmdline.cmake
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/src/testlib/qt_cmdline.cmake
diff --git a/src/widgets/qt_cmdline.cmake b/src/widgets/qt_cmdline.cmake
new file mode 100644
index 0000000000..4cfcbc90a4
--- /dev/null
+++ b/src/widgets/qt_cmdline.cmake
@@ -0,0 +1,6 @@
+qt_commandline_option(gtk TYPE boolean NAME gtk3)
+qt_commandline_option(style-windows TYPE boolean)
+qt_commandline_option(style-windowsvista TYPE boolean)
+qt_commandline_option(style-fusion TYPE boolean)
+qt_commandline_option(style-mac TYPE boolean)
+qt_commandline_option(style-android TYPE boolean)
diff --git a/src/xml/qt_cmdline.cmake b/src/xml/qt_cmdline.cmake
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/src/xml/qt_cmdline.cmake