[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Re: Review Request 121762: Fix build on FreeBSD
From:       "Alex Richardson" <arichardson.kde () gmail ! com>
Date:       2015-01-18 20:00:30
Message-ID: 20150118200030.28747.52746 () probe ! kde ! org
[Download RAW message or body]

--===============5077705602086874600==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121762/
-----------------------------------------------------------

(Updated Jan. 18, 2015, 8 p.m.)


Review request for Plasma and Raphael Kubo da Costa.


Repository: plasma-desktop


Description
-------

5 Commits:

---

Fix compilation of geometry_parser.cpp with clang 3.4

Apparently the default instantiation depth of 256 (with clang 3.4) is not
enough to compile geometry_parser.cpp. It produces the following error:

/usr/local/include/boost/type_traits/is_reference.hpp:38:62: fatal error: recursive \
template instantiation exceeded maximum depth of 256 \
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,::boost::detail::is_reference_impl<T>::value)
  ^
/usr/local/include/boost/type_traits/detail/bool_trait_def.hpp:69:30: note: expanded \
from macro 'BOOST_TT_AUX_BOOL_TRAIT_DEF1'  BOOST_TT_AUX_BOOL_C_BASE(C) \
                             ^
/usr/local/include/boost/type_traits/detail/bool_trait_def.hpp:63:81: note: expanded \
from macro 'BOOST_TT_AUX_BOOL_C_BASE'

And after that a few hundred lines of template instantiation details.
Rasing the limit to 512 allows successfully compiling these files.

---


Fix build of kbpreviewframe.cpp with clang

Clang doesn't allow variable length arrays of non-POD type

---

Add missing includes of cmath and cstdlib

---

Fix build of kapplymousetheme if X11 isn't installed to /usr

---

Use a proper CMake find module for libcanberra instead of pkg_check_modules

This fixes the build on e.g. FreeBSD where libcanberra is not in /usr/lib
but /usr/local/lib so that the linker complains that it cannot find
-lcanberra since the CMake variable from pkg_check_modules does not contain
an absolute path.

The CMake module was copied from the KMix repository. If there are any more
users of libcanberra it might make sense to add this to extra-cmake-modules


Diffs (updated)
-----

  kcms/keyboard/CMakeLists.txt 3db5dc3f938bbe25259067783bda4fdd882f60f6 
  kcms/keyboard/kcmmisc.cpp 9aed7de2a8a63aa546dc9484eea0edadcc64ec66 
  kcms/keyboard/preview/kbpreviewframe.cpp 9735eb02ac6875bb3905fb0bf8183a9d97e0e3e4 
  kcms/keyboard/tests/CMakeLists.txt bd62c7d281766bc5c04b0b1e933861d258241cf7 
  kcms/phonon/CMakeLists.txt 8f964e2041cc812bf70f6a48e2915427f088b990 
  cmake/modules/FindCanberra.cmake PRE-CREATION 
  containments/folder/plugin/positioner.cpp c24827197bf20b4cb55a6b885f023074f179159c 
  kcms/input/CMakeLists.txt a2b72a45a3b694b7fa367abf33d0752b0dc9734b 

Diff: https://git.reviewboard.kde.org/r/121762/diff/


Testing
-------

compiles


Thanks,

Alex Richardson


--===============5077705602086874600==
MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 7bit




<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 \
solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">  \
<tr>  <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/121762/">https://git.reviewboard.kde.org/r/121762/</a>
  </td>
    </tr>
   </table>
   <br />





<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: \
1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; \
-webkit-border-radius: 6px;">  <tr>
  <td>

<div>Review request for Plasma and Raphael Kubo da Costa.</div>
<div>By Alex Richardson.</div>


<p style="color: grey;"><i>Updated Jan. 18, 2015, 8 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
plasma-desktop
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">5 Commits:</p> <hr style="text-rendering: \
inherit;margin: 0;padding: 0;white-space: normal;border: 1px solid #ddd;line-height: \
inherit;" /> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Fix compilation of geometry_parser.cpp with clang \
3.4</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Apparently the default instantiation depth of 256 \
(with clang 3.4) is not enough to compile geometry_parser.cpp. It produces the \
following error:</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: \
inherit;">/usr/local/include/boost/type_traits/is_reference.hpp:38:62: fatal error: \
recursive template instantiation exceeded maximum depth of 256 \
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,::boost::detail::is_reference_impl&lt;T>::value)
 &amp;nbsp;                                                            ^
/usr/local/include/boost/type_traits/detail/bool_trait_def.hpp:69:30: note: expanded \
from macro 'BOOST_TT_AUX_BOOL_TRAIT_DEF1' &amp;nbsp;   BOOST_TT_AUX_BOOL_C_BASE(C) \
&amp;nbsp;                            ^
/usr/local/include/boost/type_traits/detail/bool_trait_def.hpp:63:81: note: expanded \
from macro 'BOOST_TT_AUX_BOOL_C_BASE'</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">And after that a few \
hundred lines of template instantiation details. Rasing the limit to 512 allows \
successfully compiling these files.</p> <hr style="text-rendering: inherit;margin: \
0;padding: 0;white-space: normal;border: 1px solid #ddd;line-height: inherit;" /> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Fix build of kbpreviewframe.cpp with clang</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Clang \
doesn't allow variable length arrays of non-POD type</p> <hr style="text-rendering: \
inherit;margin: 0;padding: 0;white-space: normal;border: 1px solid #ddd;line-height: \
inherit;" /> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Add missing includes of cmath and cstdlib</p> <hr \
style="text-rendering: inherit;margin: 0;padding: 0;white-space: normal;border: 1px \
solid #ddd;line-height: inherit;" /> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">Fix build of \
kapplymousetheme if X11 isn't installed to /usr</p> <hr style="text-rendering: \
inherit;margin: 0;padding: 0;white-space: normal;border: 1px solid #ddd;line-height: \
inherit;" /> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Use a proper CMake find module for libcanberra instead \
of pkg_check_modules</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">This fixes the build on e.g. FreeBSD \
where libcanberra is not in /usr/lib but /usr/local/lib so that the linker complains \
                that it cannot find
-lcanberra since the CMake variable from pkg_check_modules does not contain
an absolute path.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">The CMake module was copied from the KMix repository. \
If there are any more users of libcanberra it might make sense to add this to \
extra-cmake-modules</p></pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">compiles</p></pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> \
(updated)</h1> <ul style="margin-left: 3em; padding-left: 0;">

 <li>kcms/keyboard/CMakeLists.txt <span style="color: \
grey">(3db5dc3f938bbe25259067783bda4fdd882f60f6)</span></li>

 <li>kcms/keyboard/kcmmisc.cpp <span style="color: \
grey">(9aed7de2a8a63aa546dc9484eea0edadcc64ec66)</span></li>

 <li>kcms/keyboard/preview/kbpreviewframe.cpp <span style="color: \
grey">(9735eb02ac6875bb3905fb0bf8183a9d97e0e3e4)</span></li>

 <li>kcms/keyboard/tests/CMakeLists.txt <span style="color: \
grey">(bd62c7d281766bc5c04b0b1e933861d258241cf7)</span></li>

 <li>kcms/phonon/CMakeLists.txt <span style="color: \
grey">(8f964e2041cc812bf70f6a48e2915427f088b990)</span></li>

 <li>cmake/modules/FindCanberra.cmake <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>containments/folder/plugin/positioner.cpp <span style="color: \
grey">(c24827197bf20b4cb55a6b885f023074f179159c)</span></li>

 <li>kcms/input/CMakeLists.txt <span style="color: \
grey">(a2b72a45a3b694b7fa367abf33d0752b0dc9734b)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/121762/diff/" style="margin-left: \
3em;">View Diff</a></p>






  </td>
 </tr>
</table>




  </div>
 </body>
</html>


--===============5077705602086874600==--



_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic