Am Dienstag, 24. März 2020, 07:48:22 CET schrieb Friedrich W. H. Kossebau: > Am Montag, 23. März 2020, 20:30:59 CET schrieb Friedrich W. H. Kossebau: > > Am Sonntag, 22. März 2020, 10:50:39 CET schrieb David Faure: > > > The CI for ECM has been failing ever since the tests were re-enabled. > > > > > > https://build.kde.org/job/Frameworks/view/Platform%20-%20SUSEQt5.12/job/ > > > ex > > > tr a-cmake-modules/job/kf5-qt5%20SUSEQt5.12/103/console shows that > > > ECMPoQmToolsTest fails with "tr_thread_test.moc: No such file or > > > directory". > > > > > > I have been trying to reproduce this locally, but no such luck. > > > > Reason seems to be that on CI the target tr_thread_test is handled before > > tr_thread_test_2, while for us locally the order is the other way around. > > And with tr_thread_test_2 the file tr_thread_test.moc is generated first, > > so present in build dir afterwards, while with tr_thread_test the automoc > > seems not happening, other than what the code hopes (perhaps some cmake > > policy change since that code was written?). > > > > In general the test setup here seems bogus a bit, as one would expect that > > the two different test cases (1 & 2) should not share the same url for the > > generated moc file and have them in respective exclusive include dirs. > > > > I might have a closer look later tonight, if no-one else would work on > > this. > Seems the reason is that the same source file is reused for both targets, > and the variant without automoc, explicitly calling qt5_generate_moc() on > the source file, with target tr_thread_test_2, also sees this call (with > infile being the source file): > set_source_files_properties(${infile} PROPERTIES SKIP_AUTOMOC ON) > > That property is not bound to any target, but global for the source file. > And as result enabling automoc with the other target tr_thread_test, by > set_target_properties(tr_thread_test PROPERTIES AUTOMOC ON) > will still keep cmake not doing any automoc for the very source file. > > So when tr_thread_test is handled first, the moc file is not yet generated, > and thus the include of it fails.
https://phabricator.kde.org/D28253 would be some approach to this, without changing things too much, and just ensuring working flags. Pretty messy, so not really happy, but no really better/cleaner idea right now. Cheers Friedrich
