CMake: remove test for eventfd, replace with __has_include
This also removes the configure option and therefore makes the feature not disable-able. Saves 350 ms of CMake time. Change-Id: Ifbf974a4d10745b099b1fffd17775528767595d4 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
This commit is contained in:
parent
9c70e11711
commit
a93f02e3ad
@ -113,7 +113,6 @@ The following table describes the mapping of configure options to CMake argument
|
|||||||
| -doubleconversion | -DFEATURE_doubleconversion=ON | |
|
| -doubleconversion | -DFEATURE_doubleconversion=ON | |
|
||||||
| | -DFEATURE_system_doubleconversion=ON/OFF | |
|
| | -DFEATURE_system_doubleconversion=ON/OFF | |
|
||||||
| -glib | -DFEATURE_glib=ON | |
|
| -glib | -DFEATURE_glib=ON | |
|
||||||
| -eventfd | -DFEATURE_eventfd=ON | |
|
|
||||||
| -inotify | -DFEATURE_inotify=ON | |
|
| -inotify | -DFEATURE_inotify=ON | |
|
||||||
| -icu | -DFEATURE_icu=ON | |
|
| -icu | -DFEATURE_icu=ON | |
|
||||||
| -pcre | -DFEATURE_pcre2=ON | |
|
| -pcre | -DFEATURE_pcre2=ON | |
|
||||||
|
@ -221,7 +221,6 @@ Core options:
|
|||||||
-doubleconversion .... Select used double conversion library [system/qt/no]
|
-doubleconversion .... Select used double conversion library [system/qt/no]
|
||||||
No implies use of sscanf_l and snprintf_l (imprecise).
|
No implies use of sscanf_l and snprintf_l (imprecise).
|
||||||
-glib ................ Enable Glib support [no; auto on Unix]
|
-glib ................ Enable Glib support [no; auto on Unix]
|
||||||
-eventfd ............. Enable eventfd support
|
|
||||||
-inotify ............. Enable inotify support
|
-inotify ............. Enable inotify support
|
||||||
-icu ................. Enable ICU support [auto]
|
-icu ................. Enable ICU support [auto]
|
||||||
-pcre ................ Select used libpcre2 [system/qt/no]
|
-pcre ................ Select used libpcre2 [system/qt/no]
|
||||||
|
@ -172,24 +172,6 @@ int main(void)
|
|||||||
}"
|
}"
|
||||||
)
|
)
|
||||||
|
|
||||||
# eventfd
|
|
||||||
qt_config_compile_test(eventfd
|
|
||||||
LABEL "eventfd"
|
|
||||||
CODE
|
|
||||||
"#include <sys/eventfd.h>
|
|
||||||
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
/* BEGIN TEST: */
|
|
||||||
eventfd_t value;
|
|
||||||
int fd = eventfd(0, EFD_CLOEXEC);
|
|
||||||
eventfd_read(fd, &value);
|
|
||||||
eventfd_write(fd, value);
|
|
||||||
/* END TEST: */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
")
|
|
||||||
|
|
||||||
# futimens
|
# futimens
|
||||||
qt_config_compile_test(futimens
|
qt_config_compile_test(futimens
|
||||||
LABEL "futimens()"
|
LABEL "futimens()"
|
||||||
@ -501,10 +483,6 @@ qt_feature("dladdr" PRIVATE
|
|||||||
LABEL "dladdr"
|
LABEL "dladdr"
|
||||||
CONDITION QT_FEATURE_dlopen AND TEST_dladdr
|
CONDITION QT_FEATURE_dlopen AND TEST_dladdr
|
||||||
)
|
)
|
||||||
qt_feature("eventfd" PRIVATE
|
|
||||||
LABEL "eventfd"
|
|
||||||
CONDITION NOT WASM AND TEST_eventfd
|
|
||||||
)
|
|
||||||
qt_feature("futimens" PRIVATE
|
qt_feature("futimens" PRIVATE
|
||||||
LABEL "futimens()"
|
LABEL "futimens()"
|
||||||
CONDITION NOT WIN32 AND TEST_futimens
|
CONDITION NOT WIN32 AND TEST_futimens
|
||||||
|
@ -19,8 +19,11 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#if QT_CONFIG(eventfd)
|
#if __has_include(<sys/eventfd.h>)
|
||||||
# include <sys/eventfd.h>
|
# include <sys/eventfd.h>
|
||||||
|
static constexpr bool UsingEventfd = true;
|
||||||
|
#else
|
||||||
|
static constexpr bool UsingEventfd = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(Q_OS_VXWORKS)
|
#if defined(Q_OS_VXWORKS)
|
||||||
@ -54,7 +57,7 @@ QThreadPipe::~QThreadPipe()
|
|||||||
if (fds[0] >= 0)
|
if (fds[0] >= 0)
|
||||||
close(fds[0]);
|
close(fds[0]);
|
||||||
|
|
||||||
if (!QT_CONFIG(eventfd) && fds[1] >= 0)
|
if (!UsingEventfd && fds[1] >= 0)
|
||||||
close(fds[1]);
|
close(fds[1]);
|
||||||
|
|
||||||
#if defined(Q_OS_VXWORKS)
|
#if defined(Q_OS_VXWORKS)
|
||||||
@ -104,10 +107,10 @@ bool QThreadPipe::init()
|
|||||||
fds[1] = fds[0];
|
fds[1] = fds[0];
|
||||||
#else
|
#else
|
||||||
int ret;
|
int ret;
|
||||||
# if QT_CONFIG(eventfd)
|
# ifdef EFD_CLOEXEC
|
||||||
ret = fds[0] = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
|
ret = fds[0] = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
|
||||||
# endif
|
# endif
|
||||||
if (!QT_CONFIG(eventfd))
|
if (!UsingEventfd)
|
||||||
ret = qt_safe_pipe(fds, O_NONBLOCK);
|
ret = qt_safe_pipe(fds, O_NONBLOCK);
|
||||||
if (ret == -1) {
|
if (ret == -1) {
|
||||||
perror("QThreadPipe: Unable to create pipe");
|
perror("QThreadPipe: Unable to create pipe");
|
||||||
@ -126,7 +129,7 @@ pollfd QThreadPipe::prepare() const
|
|||||||
void QThreadPipe::wakeUp()
|
void QThreadPipe::wakeUp()
|
||||||
{
|
{
|
||||||
if ((wakeUps.fetchAndOrAcquire(1) & 1) == 0) {
|
if ((wakeUps.fetchAndOrAcquire(1) & 1) == 0) {
|
||||||
#if QT_CONFIG(eventfd)
|
# ifdef EFD_CLOEXEC
|
||||||
eventfd_write(fds[0], 1);
|
eventfd_write(fds[0], 1);
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
@ -149,11 +152,11 @@ int QThreadPipe::check(const pollfd &pfd)
|
|||||||
::read(fds[0], c, sizeof(c));
|
::read(fds[0], c, sizeof(c));
|
||||||
::ioctl(fds[0], FIOFLUSH, 0);
|
::ioctl(fds[0], FIOFLUSH, 0);
|
||||||
#else
|
#else
|
||||||
# if QT_CONFIG(eventfd)
|
# ifdef EFD_CLOEXEC
|
||||||
eventfd_t value;
|
eventfd_t value;
|
||||||
eventfd_read(fds[0], &value);
|
eventfd_read(fds[0], &value);
|
||||||
# endif
|
# endif
|
||||||
if (!QT_CONFIG(eventfd)) {
|
if (!UsingEventfd) {
|
||||||
while (::read(fds[0], c, sizeof(c)) > 0) {}
|
while (::read(fds[0], c, sizeof(c)) > 0) {}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
# SPDX-License-Identifier: BSD-3-Clause
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
qt_commandline_option(doubleconversion TYPE enum VALUES no qt system)
|
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(glib TYPE boolean)
|
||||||
qt_commandline_option(icu TYPE boolean)
|
qt_commandline_option(icu TYPE boolean)
|
||||||
qt_commandline_option(inotify TYPE boolean)
|
qt_commandline_option(inotify TYPE boolean)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user