<feed xmlns='http://www.w3.org/2005/Atom'>
<title>extra-cmake-modules.git/find-modules, branch v5.54.0</title>
<subtitle>hurd extra-cmake-modules.git</subtitle>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/'/>
<entry>
<title>Add find module for Google's libphonenumber</title>
<updated>2018-12-04T16:47:13+00:00</updated>
<author>
<name>Volker Krause</name>
<email>vkrause@kde.org</email>
</author>
<published>2018-11-17T11:09:20+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/commit/?id=ebb05ecafb02294c2ed471638c35576d2852b456'/>
<id>ebb05ecafb02294c2ed471638c35576d2852b456</id>
<content type='text'>
Summary:
This is currently in use by plasma-phone-components, but will also be
needed by KItinerary.

Reviewers: #build_system, #frameworks, cgiboudeaux

Reviewed By: cgiboudeaux

Subscribers: cgiboudeaux, kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D16954
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
This is currently in use by plasma-phone-components, but will also be
needed by KItinerary.

Reviewers: #build_system, #frameworks, cgiboudeaux

Reviewed By: cgiboudeaux

Subscribers: cgiboudeaux, kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D16954
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename FindExiv2 to FindLibExiv2.</title>
<updated>2018-11-20T13:36:01+00:00</updated>
<author>
<name>Christophe Giboudeaux</name>
<email>christophe@krop.fr</email>
</author>
<published>2018-11-20T13:34:59+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/commit/?id=19e6a585a7aecbead7aed851ddabbb940155b446'/>
<id>19e6a585a7aecbead7aed851ddabbb940155b446</id>
<content type='text'>
New users can use this module instead of adding a copy of the old FindExiv2.cmake module.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
New users can use this module instead of adding a copy of the old FindExiv2.cmake module.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add FindExiv2.cmake to ECM</title>
<updated>2018-11-20T12:27:21+00:00</updated>
<author>
<name>Christophe Giboudeaux</name>
<email>christophe@krop.fr</email>
</author>
<published>2018-11-20T12:27:21+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/commit/?id=fe22302d2d4dbf2d47f27e36814cd10784d97a41'/>
<id>fe22302d2d4dbf2d47f27e36814cd10784d97a41</id>
<content type='text'>
According to lxr, we have 8 copies of this module in different repositories (+kdelib4support and a playground repo).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
According to lxr, we have 8 copies of this module in different repositories (+kdelib4support and a playground repo).
</pre>
</div>
</content>
</entry>
<entry>
<title>FindQHelpGenerator: try to find Qt5Help instead of Qt5Core</title>
<updated>2018-11-18T08:57:20+00:00</updated>
<author>
<name>Pino Toscano</name>
<email>pino@kde.org</email>
</author>
<published>2018-11-17T07:57:09+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/commit/?id=96d169b87292d935646b1924952829b0f4d5d669'/>
<id>96d169b87292d935646b1924952829b0f4d5d669</id>
<content type='text'>
Summary:
The Qt5Help CMake modules contain the Qt5::qhelpgenerator target, so
look for that instead of Qt5Core.  Otherwise, the Qt5::qhelpgenerator
is available only if Qt5Help was searched previously (which does not
happen often).

Using the Qt5::qhelpgenerator is more reliable than the search for the
qhelpgenerator executable based on the qmake path.

Test Plan:
build some framework with -DBUILD_QCH=ON, and notice that
the right path of qhelpgenerator is found directly with the
Qt5::qhelpgenerator target.

Reviewers: kossebau

Reviewed By: kossebau

Subscribers: kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D16938
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
The Qt5Help CMake modules contain the Qt5::qhelpgenerator target, so
look for that instead of Qt5Core.  Otherwise, the Qt5::qhelpgenerator
is available only if Qt5Help was searched previously (which does not
happen often).

Using the Qt5::qhelpgenerator is more reliable than the search for the
qhelpgenerator executable based on the qmake path.

Test Plan:
build some framework with -DBUILD_QCH=ON, and notice that
the right path of qhelpgenerator is found directly with the
Qt5::qhelpgenerator target.

Reviewers: kossebau

Reviewed By: kossebau

Subscribers: kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D16938
</pre>
</div>
</content>
</entry>
<entry>
<title>Bindings: Support using sys paths for python install directory</title>
<updated>2018-10-28T13:33:06+00:00</updated>
<author>
<name>Stefan Brüns</name>
<email>stefan.bruens@rwth-aachen.de</email>
</author>
<published>2018-09-30T20:48:39+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/commit/?id=258d6e412435f372a004c8704245a540fdd1e537'/>
<id>258d6e412435f372a004c8704245a540fdd1e537</id>
<content type='text'>
Summary:
The correct install directory is distro and arch specific, and should
match the configuration of the python installation the binding is
generated for. These directories can be queried using pythons
distutils.sysconfig.

When determining the install directory, it mimics the logic from
KDE_INSTALL_USE_QT_SYS_PATHS. When the python PREFIX is the same
as CMAKE_INSTALL_PREFIX, it defaults to using the path from
distutils.sysconfig, otherwise it keeps the current scheme, installing
below CMAKE_INSTALL_PREFIX.

The default behaviour can be changed by setting KDE_INSTALL_PYTHON{2,3}DIR
or by switching KDE_INSTALL_USE_PYTHON{2,3}_SYS_PATH ON or OFF.

Test Plan:
On a distro where sitearch is not below /usr/lib/pythonM.m/, but
/usr/lib64/pythonM.m/ (e.g. RH, SUSE 64bit), try to do:

cmake ..; make; install

Without the patch, the binding are installed into the wrong directory,
afterwards the correct path is used.

This should also yield the correct path on Debian and derivatives,
where dist-packages instead of site-packages is used (untested).

other test cases:
Keep current scheme: `cmake -DCMAKE_INSTALL_PREFIX=/opt ..`
Default to sys path: `cmake -DCMAKE_INSTALL_PREFIX=/usr ..`
Force sys path: `cmake -DCMAKE_INSTALL_PREFIX=/opt -DKDE_INSTALL_USE_PYTHON3_SYS_PATHS=ON ..`

Reviewers: #frameworks

Subscribers: bcooksley, kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D15070
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
The correct install directory is distro and arch specific, and should
match the configuration of the python installation the binding is
generated for. These directories can be queried using pythons
distutils.sysconfig.

When determining the install directory, it mimics the logic from
KDE_INSTALL_USE_QT_SYS_PATHS. When the python PREFIX is the same
as CMAKE_INSTALL_PREFIX, it defaults to using the path from
distutils.sysconfig, otherwise it keeps the current scheme, installing
below CMAKE_INSTALL_PREFIX.

The default behaviour can be changed by setting KDE_INSTALL_PYTHON{2,3}DIR
or by switching KDE_INSTALL_USE_PYTHON{2,3}_SYS_PATH ON or OFF.

Test Plan:
On a distro where sitearch is not below /usr/lib/pythonM.m/, but
/usr/lib64/pythonM.m/ (e.g. RH, SUSE 64bit), try to do:

cmake ..; make; install

Without the patch, the binding are installed into the wrong directory,
afterwards the correct path is used.

This should also yield the correct path on Debian and derivatives,
where dist-packages instead of site-packages is used (untested).

other test cases:
Keep current scheme: `cmake -DCMAKE_INSTALL_PREFIX=/opt ..`
Default to sys path: `cmake -DCMAKE_INSTALL_PREFIX=/usr ..`
Force sys path: `cmake -DCMAKE_INSTALL_PREFIX=/opt -DKDE_INSTALL_USE_PYTHON3_SYS_PATHS=ON ..`

Reviewers: #frameworks

Subscribers: bcooksley, kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D15070
</pre>
</div>
</content>
</entry>
<entry>
<title>Bindings: Remove INSTALL_DIR_SUFFIX from ecm_generate_python_binding</title>
<updated>2018-10-16T01:25:00+00:00</updated>
<author>
<name>Stefan Brüns</name>
<email>stefan.bruens@rwth-aachen.de</email>
</author>
<published>2018-09-30T20:30:47+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/commit/?id=c2639d5698dcb5e024dd1e91e5631aa654dc0914'/>
<id>c2639d5698dcb5e024dd1e91e5631aa654dc0914</id>
<content type='text'>
Summary:
The option is no longer used from any framework, and was always defaulting
to site-packages previously, as INSTALL_DIR_SUFFIX was empty.

Also see D15558, D15845.

Test Plan: build e.g kcoreaddons

Reviewers: #frameworks, apol, lbeltrame

Reviewed By: lbeltrame

Subscribers: lbeltrame, kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D15867
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
The option is no longer used from any framework, and was always defaulting
to site-packages previously, as INSTALL_DIR_SUFFIX was empty.

Also see D15558, D15845.

Test Plan: build e.g kcoreaddons

Reviewers: #frameworks, apol, lbeltrame

Reviewed By: lbeltrame

Subscribers: lbeltrame, kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D15867
</pre>
</div>
</content>
</entry>
<entry>
<title>Compile python bindings with the same sip flags used by PyQt</title>
<updated>2018-09-30T20:46:18+00:00</updated>
<author>
<name>Antonio Rojas</name>
<email>arojas@archlinux.org</email>
</author>
<published>2018-09-30T20:46:18+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/commit/?id=05bd97492704029647d442d0f83acb9e6436ed53'/>
<id>05bd97492704029647d442d0f83acb9e6436ed53</id>
<content type='text'>
PyQt&gt;=5.11 is compiled with the 'PyQt5.sip' sipname by default. This causes a sipname mismatch with KF5 bindings and prevents them from loading:

To fix this, we compile KF5 bindings using the same sip flags (name and tags) that PyQt was compiled with. This ensures that we always use the correct sip name. We also stop setting the sip tags in FindPythonModuleGeneration.cmake to avoid duplication, and remove a (seemingly) unnecessary check for the Qt version that was forcing PyQt to be rebuilt for every patch Qt update.

Differential Revision: https://phabricator.kde.org/D15091
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PyQt&gt;=5.11 is compiled with the 'PyQt5.sip' sipname by default. This causes a sipname mismatch with KF5 bindings and prevents them from loading:

To fix this, we compile KF5 bindings using the same sip flags (name and tags) that PyQt was compiled with. This ensures that we always use the correct sip name. We also stop setting the sip tags in FindPythonModuleGeneration.cmake to avoid duplication, and remove a (seemingly) unnecessary check for the Qt version that was forcing PyQt to be rebuilt for every patch Qt update.

Differential Revision: https://phabricator.kde.org/D15091
</pre>
</div>
</content>
</entry>
<entry>
<title>Python bindings: use cmake_parse_arguments, fix documentation</title>
<updated>2018-09-20T12:22:54+00:00</updated>
<author>
<name>Stefan Brüns</name>
<email>stefan.bruens@rwth-aachen.de</email>
</author>
<published>2018-09-16T19:46:01+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/commit/?id=b322901ca22f9c944b07eebbdcb4d45230d74084'/>
<id>b322901ca22f9c944b07eebbdcb4d45230d74084</id>
<content type='text'>
Summary:
Use of positional arguments is error prone, as e.g. switching order
of NAMESPACE and MODULENAME wont have the desired effect, as
the keywords are ignored for the first three arguments.

Parse all arguments with cmake_parse_arguments, and fix the documentation
(list supported arguments) and example (add TARGET keyword).

Test Plan: build bindings

Reviewers: #frameworks, dfaure

Reviewed By: dfaure

Subscribers: kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D15559
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
Use of positional arguments is error prone, as e.g. switching order
of NAMESPACE and MODULENAME wont have the desired effect, as
the keywords are ignored for the first three arguments.

Parse all arguments with cmake_parse_arguments, and fix the documentation
(list supported arguments) and example (add TARGET keyword).

Test Plan: build bindings

Reviewers: #frameworks, dfaure

Reviewed By: dfaure

Subscribers: kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D15559
</pre>
</div>
</content>
</entry>
<entry>
<title>Bindings: Correct handling of sources containing utf-8</title>
<updated>2018-09-14T12:45:41+00:00</updated>
<author>
<name>Stefan Brüns</name>
<email>stefan.bruens@rwth-aachen.de</email>
</author>
<published>2018-08-19T00:32:14+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/commit/?id=28da9e614f663210f4e5e0790b56055ce517bf38'/>
<id>28da9e614f663210f4e5e0790b56055ce517bf38</id>
<content type='text'>
Summary:
Depending on the locale, python3 may try to decode the source as ASCII
when the file is opened in text mode. This will fail as soon as the
code contains utf-8, e.g. (c) symbols.

While it is possible to specify the encoding when reading the file,
this is bad for several reasons:
- only a very small part of the source is processed via _read_source,
  no need to decode the complete source and store it as string objects
- the clang Cursor.extent.{start,end}.column refers to bytes, not
  multibyte characters.

While python2 processes utf-8 containing sources without error messages,
wrong extent borders are also an issue.

The practical impact is low, as the issue only manifests if there is a
multibyte character in front of *and* on the same line as the read token.

Test Plan:
Python3: Build any bindings which contains sources with non-ASCII codepoints,
e.g. kcoreaddons. Unpatched version fails when using e.g. LANG=C.
Python2: Both versions generate sources successfully.

Bytes vs characters test:
```
#define Q_SLOTS
class foo {
/* a */ public Q_SLOTS:
/* ä */ public Q_SLOTS:
};
```
`sip_generator.py --flags "" /usr/lib64/libclang.so Qt5Ruleset.py  test.h out.sip`
Obviously, both lines should result in the same code, the unfixed version generates `public Q_SLOTS:` vs `public:`.

Reviewers: #frameworks, lbeltrame

Reviewed By: lbeltrame

Subscribers: lbeltrame, bcooksley, jtamate, kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D15068
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
Depending on the locale, python3 may try to decode the source as ASCII
when the file is opened in text mode. This will fail as soon as the
code contains utf-8, e.g. (c) symbols.

While it is possible to specify the encoding when reading the file,
this is bad for several reasons:
- only a very small part of the source is processed via _read_source,
  no need to decode the complete source and store it as string objects
- the clang Cursor.extent.{start,end}.column refers to bytes, not
  multibyte characters.

While python2 processes utf-8 containing sources without error messages,
wrong extent borders are also an issue.

The practical impact is low, as the issue only manifests if there is a
multibyte character in front of *and* on the same line as the read token.

Test Plan:
Python3: Build any bindings which contains sources with non-ASCII codepoints,
e.g. kcoreaddons. Unpatched version fails when using e.g. LANG=C.
Python2: Both versions generate sources successfully.

Bytes vs characters test:
```
#define Q_SLOTS
class foo {
/* a */ public Q_SLOTS:
/* ä */ public Q_SLOTS:
};
```
`sip_generator.py --flags "" /usr/lib64/libclang.so Qt5Ruleset.py  test.h out.sip`
Obviously, both lines should result in the same code, the unfixed version generates `public Q_SLOTS:` vs `public:`.

Reviewers: #frameworks, lbeltrame

Reviewed By: lbeltrame

Subscribers: lbeltrame, bcooksley, jtamate, kde-frameworks-devel, kde-buildsystem

Tags: #frameworks, #build_system

Differential Revision: https://phabricator.kde.org/D15068
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix minor EBN issues</title>
<updated>2018-09-07T06:06:35+00:00</updated>
<author>
<name>Yuri Chornoivan</name>
<email>yurchor@ukr.net</email>
</author>
<published>2018-09-07T06:06:35+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/extra-cmake-modules.git/commit/?id=a519c29e93de84e949ac308831160102cc733e59'/>
<id>a519c29e93de84e949ac308831160102cc733e59</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
