Skip to content

Commit

Permalink
CMake: Work around building dbus 'controller' example with qmake
Browse files Browse the repository at this point in the history
Similar to what has been done in 5138a97, we need to adjust the
remotecontrolledcar/controller dbus example to be built with qmake.

In the CI we first build the examples with CMake in the source
directory. That creates some generated source files in the dbus example
dir.

Then, the examples are (will be) built ouf of source with qmake, and
those generated source files will be placed in the build directory.

When building with MSVC, there's a peculiarity with nmake/jom's
inference rules that lead to picking up the generated car_interface.cpp
from the source directory, instead of the build directory.
See QTBUG-13496 for details.

car_interface.cpp, built with CMake is generated to include
car_interface.moc.
car_interface.cpp, built with qmake does not have this include, but the
build system calls moc on car_interface.h.

All this leads to duplication of the meta object for
OrgExampleExamplesCarInterfaceInterface, preventing successful linking.

Work around this issue by turning off the generation of nmake/jom
inference rules.

Task-number: QTBUG-85986
Change-Id: I0a6ca9f880b63f05a4e9f2032e44d3b391d8a756
Reviewed-by: Alexandru Croitor <[email protected]>
  • Loading branch information
jobor committed Nov 30, 2020
1 parent d4e9f0e commit b71c043
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions examples/dbus/remotecontrolledcar/controller/controller.pro
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ FORMS += controller.ui
HEADERS += controller.h
SOURCES += main.cpp controller.cpp

# Work-around CI issue. Not needed in user code.
CONFIG += no_batch

# install
target.path = $$[QT_INSTALL_EXAMPLES]/dbus/remotecontrolledcar/controller
INSTALLS += target

0 comments on commit b71c043

Please sign in to comment.