[KDE/Mac] Review Request 122114: [OS X] adaptations of the build system (CMake files) to MacPorts

René J.V. Bertin rjvbertin at gmail.com
Sun Jan 18 15:42:17 UTC 2015



> On Jan. 17, 2015, 11:49 p.m., Friedrich W. H. Kossebau wrote:
> > CMakeLists.txt, line 98
> > <https://git.reviewboard.kde.org/r/122114/diff/1/?file=342455#file342455line98>
> >
> >     What does this line do exactly? And what can it break? Putting it here with no explanation comment and for every build on every system seems risky for me, when it is "just" some MacPort builds?
> >     
> >     Can you please give more details about it? Perhaps it can be ifdef'ed?

Dropping this because the change turns out to be redundant.

The details (copied from MacPorts' ticketing system):
```
 When you build Qt4 on OS X (or Linux) using gcc or clang, `configure`
 prints a notice when done about how these compilers will by default
 include the infrastructure required for C++ exceptions, how that adds
 considerable overhead, and that it is possible to build Qt without that
 support, resulting in an ABI-compatible install because exceptions aren't
 used internally.

 That latter part is not 100% true: the resulting installation is only ABI
 compatible for software that doesn't require QtXMLPatterns and the full
 QtConcurrent.

 The variant presented here does result in an installation that should be
 100% ABI compatible by undoing the effect of configure's `-no-exceptions`
 for QtCore (and thus QtConcurrent) and QtXMLPatterns. It would have been
 better if QtConcurrent (and XMLPatterns) could be built *with* exceptions
 and the rest without, but that requires much more invasive hacking of the
 build system.
 ```

The -DQT_EXCEPTIONS change was necessary with an earlier version of the MacPorts Qt4 variant, before I noticed a section in QtCore/qconfig.h that isn't there in a standard build, and that defines `QT_NO_EXCEPTIONS` unless `QT_EXCEPTIONS` is already defined.

Adding `-DQT_EXCEPTIONS` to the compilerflags when building client code that links against a standard Qt4 variant is nothing more than stating the default. I haven't checked whether calligra uses code from Qt4 libraries (as opposed to Qt4 *headers*) that requires exceptions, so I cannot tell what line 98 (or its absence) do when building against a Qt that's been built with the stock -no-exceptions.


- René J.V.


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


On Jan. 17, 2015, 11:04 p.m., René J.V. Bertin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/122114/
> -----------------------------------------------------------
> 
> (Updated Jan. 17, 2015, 11:04 p.m.)
> 
> 
> Review request for Calligra and KDE Software on Mac OS X.
> 
> 
> Repository: calligra
> 
> 
> Description
> -------
> 
> This patch adapts the build system to OS X with KDE4, Qt4 and other dependencies installed through MacPorts. 
> 
> In order of appearance in the patch file:
> - `-DQT_EXCEPTIONS`: this is for use with Qt built with its -no-exceptions option, which MacPorts provides as an optional variant.
> - Newer OS X variants only provide the clang compiler
> - The default install location for MacPorts is `/opt/local`, but this can be changed by the user. The header and library search paths required for OpenJPEG, libpqxx and OpenVC are added using `//opt//local//` which is of course equivalent to `/opt/local` but easier to search-and-replace with the true install location in MacPorts' post-patch stage.
> - the product set for OS X has been extended to all applications and features that build and make sense. (Calligra Gemini builds, but does not function properly.)
> 
> A "Portfile" and accompanying patches that don't have the vocation to be included "upstream" in calligra will be uploaded to MacPorts' trac system soon.
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt facb5f9 
>   cmake/modules/FindOpenJPEG.cmake 6bfd93c 
>   cmake/modules/FindPqxx.cmake 3e24a0c 
>   cmake/modules/FindVc.cmake bb9823f 
>   cmake/productsets/osx.cmake 1fe8f1c 
> 
> Diff: https://git.reviewboard.kde.org/r/122114/diff/
> 
> 
> Testing
> -------
> 
> On OS X 10.9.5 with kdelibs 4.14.4 and Qt 4.8.6 installed through MacPorts.
> 
> 
> Thanks,
> 
> René J.V. Bertin
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-mac/attachments/20150118/d47e5383/attachment.html>


More information about the kde-mac mailing list