Date: Mon, 29 Jan 2018 11:40:33 +0000 (UTC) From: Raphael Kubo da Costa <rakuco@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r460285 - head/x11/antimicro/files Message-ID: <201801291140.w0TBeXaa087811@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: rakuco Date: Mon Jan 29 11:40:33 2018 New Revision: 460285 URL: https://svnweb.freebsd.org/changeset/ports/460285 Log: Add a patch to drop CMake calls to QT5_WRAP_CPP(). The USE_QT5 code path already unconditionally sets CMAKE_AUTOMOC to on. Calling QT5_WRAP_CPP() used to be just redundant, as antimicro_HEADERS_MOC was never actually added as a source dependency of the antimicro target. In other words, CMake's own automoc infrastructure was actually being used and the moc invocations from QT5_WRAP_CPP() were not being made at all. Starting with Qt 5.9.4, calling QT5_WRAP_CPP() disables the AUTOMOC property on the macro's input files, which means neither CMake's automoc infrastructure not QT5_WRAP_CPP()'s code were being used and we ended up with several 'undefined reference to vtable' errors when linking. Sent upstream: https://github.com/AntiMicro/antimicro/pull/207 PR: 225436 Added: head/x11/antimicro/files/patch-CMakeLists.txt (contents, props changed) Added: head/x11/antimicro/files/patch-CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/x11/antimicro/files/patch-CMakeLists.txt Mon Jan 29 11:40:33 2018 (r460285) @@ -0,0 +1,36 @@ +Submitted upstream: https://github.com/AntiMicro/antimicro/pull/207 + +From e5d2c880ac336bc9ff558c43fe5ed7d47df28bbe Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <rakuco@FreeBSD.org> +Date: Mon, 29 Jan 2018 12:19:55 +0100 +Subject: [PATCH] cmake: Stop calling QT5_WRAP_CPP(). + +The USE_QT5 code path already unconditionally sets CMAKE_AUTOMOC to on. + +Calling QT5_WRAP_CPP() used to be just redundant, as antimicro_HEADERS_MOC +was never actually added as a source dependency of the antiword target. In +other words, CMake's own automoc infrastructure was actually being used and +the moc invocations from QT5_WRAP_CPP() were not being made at all. + +Starting with Qt 5.9.4, calling QT5_WRAP_CPP() disables the AUTOMOC property +on the macro's input files, which means neither CMake's automoc +infrastructure not QT5_WRAP_CPP()'s code were being used and we ended up +with several 'undefined reference to vtable' errors when linking. +--- CMakeLists.txt.orig 2016-11-06 01:23:03 UTC ++++ CMakeLists.txt +@@ -499,7 +499,6 @@ if (UNIX) + find_package(Qt5Network REQUIRED) + find_package(Qt5LinguistTools REQUIRED) + +- QT5_WRAP_CPP(antimicro_HEADERS_MOC ${antimicro_HEADERS}) + QT5_WRAP_UI(antimicro_FORMS_HEADERS ${antimicro_FORMS}) + QT5_ADD_RESOURCES(antimicro_RESOURCES_RCC ${antimicro_RESOURCES}) + add_subdirectory("share/antimicro/translations") +@@ -550,7 +549,6 @@ elseif(WIN32) + find_package(Qt5Network REQUIRED) + find_package(Qt5LinguistTools REQUIRED) + +- QT5_WRAP_CPP(antimicro_HEADERS_MOC ${antimicro_HEADERS}) + QT5_WRAP_UI(antimicro_FORMS_HEADERS ${antimicro_FORMS}) + QT5_ADD_RESOURCES(antimicro_RESOURCES_RCC ${antimicro_RESOURCES}) + add_subdirectory("share/antimicro/translations")
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801291140.w0TBeXaa087811>