<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>34055</bug_id>
          
          <creation_ts>2017-10-23 19:08:25 +0300</creation_ts>
          <short_desc>Сломалась обработка AUTOMOC_MOC_OPTIONS в qt 5.9 и cmake-3.9</short_desc>
          <delta_ts>2017-10-31 22:49:01 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>cmake</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://gitlab.kitware.com/cmake/cmake/issues/17418</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Vitaly Lipatov">lav</assigned_to>
          <cc>aen</cc>
    
    <cc>lav</cc>
    
    <cc>mike</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>166487</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-10-23 19:08:25 +0300</bug_when>
    <thetext>После обновления cmake до 3.9.2 получил при сборке

Generating MOC predefs moc_predefs.h
AutoMoc: Error: moc predefs generation command failed
AutoMoc: Command:
--
AutoMoc: Command output:
x86_64-alt-linux-g++: error: unrecognized command line option &apos;-bTelegram_pch/stdafx.h&apos;

Используется cmake:
$ grep MOC CMakeLists.txt
set(CMAKE_AUTOMOC ON)
set_target_properties(Telegram PROPERTIES AUTOMOC_MOC_OPTIONS -bTelegram_pch/stdafx.h)

Почему-то параметр для moc
-b &lt;file&gt;                Prepend #include &lt;file&gt; (preserve default include).
стал передаваться в компилятор.

Изменение строки на
set(CMAKE_AUTOMOC_MOC_OPTIONS ${CMAKE_AUTOMOC_MOC_OPTIONS} &quot;-b&quot; &quot;Telegram_pch/stdafx.h&quot;)
не помогло.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166488</commentid>
    <comment_count>1</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-10-23 19:12:46 +0300</bug_when>
    <thetext>Откат до cmake-3.6.3-alt0.2  решает проблему.

Проваленное задание на сборку
http://git.altlinux.org/tasks/191932/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166494</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-10-23 21:09:57 +0300</bug_when>
    <thetext>У меня перестало воспроизводится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166504</commentid>
    <comment_count>3</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-10-24 10:02:43 +0300</bug_when>
    <thetext>Разобрался в себе. Проблема появляется, начиная с cmake 3.9.2-alt0.1

* Вт сен 12 2017 L.A. Kostis &lt;lakostis@altlinux.ru&gt; 3.9.2-alt0.1
- 3.9.2:
  + enable server mode by default.
  + update buildreq (added librhash and libuv).

Проваливающееся задание
http://git.altlinux.org/tasks/191956/

[ 16%] Automatic MOC and RCC for target Telegram
Generating MOC predefs moc_predefs.h
AutoMoc: Error: moc predefs generation command failed
AutoMoc: Command:
/usr/bin/c++ -dM -E -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -I/usr/src/RPM/BUILD/telegram-desktop-1.1.23/Telegram -I/usr/src/RPM/BUILD/telegram-desktop-1.1.23/Telegram/Telegram_autogen/include -I/usr/src/RPM/BUILD/telegram-desktop-1.1.23/Telegram/SourceFiles -I/usr/include/qt5/QtCore -I/usr/include/qt5/QtCore/5.9.2 -I/usr/include/qt5/QtCore/5.9.2/QtCore -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtGui/5.9.2 -I/usr/include/qt5/QtGui/5.9.2/QtGui -I/usr/include/libdrm -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng15 -I/usr/include/tgvoip -I/usr/include/opus -I/usr/include/libmicrosoft-gsl -I/usr/src/RPM/BUILD/telegram-desktop-1.1.23/Telegram/ThirdParty/emoji_suggestions -I/usr/include/libvariant -I/usr/include/minizip -I/usr/include/AL -I/usr/include/libappindicator3-0.1 -I/usr/include/libdbusmenu-glib-0.4 -I/usr/src/RPM/BUILD/telegram-desktop-1.1.23/Telegram/generated -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/share/qt5/../../lib/qt5/mkspecs/linux-g++ -I/usr/include/qt5/QtNetwork -I/usr/include -DCUSTOM_API_ID -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQ_OS_LINUX64 -DTDESKTOP_DISABLE_AUTOUPDATE -DTDESKTOP_DISABLE_CRASH_REPORTS -DTDESKTOP_DISABLE_DESKTOP_FILE_GENERATION -DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME -DTDESKTOP_DISABLE_UNITY_INTEGRATION -D__STDC_FORMAT_MACROS -b Telegram_pch/stdafx.h
AutoMoc: Command output:
i586-alt-linux-g++: error: Telegram_pch/stdafx.h: No such file or directory
i586-alt-linux-g++: error: unrecognized command line option &apos;-b&apos;

при строках в CMakeLists.txt:
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOMOC_MOC_OPTIONS ${CMAKE_AUTOMOC_MOC_OPTIONS} &quot;-b&quot; &quot;Telegram_pch/stdafx.h&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166505</commentid>
    <comment_count>4</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-10-24 10:03:46 +0300</bug_when>
    <thetext>Жалоба на подобное поведение с cmake 3.9.2
https://github.com/apitrace/apitrace/issues/528</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166766</commentid>
    <comment_count>5</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-10-30 18:27:37 +0300</bug_when>
    <thetext>Пишут, что с cmake 3.9.4 проблему не испытывают:
https://github.com/apitrace/apitrace/issues/528#issuecomment-340477280</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166778</commentid>
    <comment_count>6</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-10-30 22:56:13 +0300</bug_when>
    <thetext>Собрал cmake из Сизифа в p8 и проверил сборку qt5 5.7.1 and cmake 3.9.2. 
Ошибки нет (правда, проверял на пакете apitrace, в котором такая же проблема).
Выходит, проблема возникла с qt 5.9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166809</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-10-31 15:56:03 +0300</bug_when>
    <thetext>@vitlav You were right, it only happens with the exact combination of CMake 3.9 + Qt 5.9.

I opened a bug report at CMake in order to get some upstream feedback: https://gitlab.kitware.com/cmake/cmake/issues/17418</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166813</commentid>
    <comment_count>8</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-10-31 17:29:45 +0300</bug_when>
    <thetext>Подтвердили
Since CMake 3.9 a common moc_predefs.h file is generated if the Qt version is &gt;= 5.9. Unfortunately the AUTOMOC_MOC_OPTIONS were passed to the compiler command that generates the file.

и исправили
https://gitlab.kitware.com/sebholt/cmake/commit/96d20a4de3420fca0e25a67c24e6f7eaead4420d</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166819</commentid>
    <comment_count>9</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2017-10-31 19:34:46 +0300</bug_when>
    <thetext>cmake-3.9.2-alt1 -&gt; sisyphus:

Tue Oct 31 2017 Vitaly Lipatov &lt;lav@altlinux.ru&gt; 3.9.2-alt1
- autogen: Don&apos;t use AUTOMOC_MOC_OPTIONS in moc-predefs command (ALT bug 34055)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166827</commentid>
    <comment_count>10</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2017-10-31 22:48:21 +0300</bug_when>
    <thetext>На всякий случай добавлю, что проблема касалась сочетания cmake 3.9.x и qt &gt;= 5.9
Разработчик вроде как выпустил 3.9.5 с исправлением, но большого желания у него не было, так что без необходимости лучше не обновлять пакет на что-то меньшее, чем 3.10.0.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>