Commit Graph

92 Commits

Author SHA1 Message Date
Marc Chevrier 0202e2b1e7 FindPython: fix erroneous variable handling
Fixes: #21817
2021-02-16 10:46:28 -05:00
Brad King d1e1122371 Merge topic 'FindPython-python2-soabi-suffix-fix' into release-3.19
9516094215 FindPython2: avoid doubling the extension in CPython2 SOABI

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5574
2020-12-08 10:18:28 -05:00
Ben Boeckel 9516094215 FindPython2: avoid doubling the extension in CPython2 SOABI
Commit 5786fac272 (FindPython: manage SOABI for all Python versions,
2020-08-11) extended support for Python2's SOABI variable in order to
support the PyPy interpreter as well. This caused a regression in the
way that the SOABI variable was built up for the CPython interpreter.
This caused the variable to be set to `.so` which ended up causing a
doubling of the resulting `SOABI` variable in the end.

Co-Author: Marc Chevrier <marc.chevrier@gmail.com>
Fixes: #21548
2020-12-04 14:01:27 -05:00
Marc Chevrier 44f079180f cmake_path: remove new command from 3.19
Defer adding this command until post-3.19 development so that it
has more time to mature before being included in a release.

Issue: #21385
2020-11-03 09:55:35 -05:00
Marc Chevrier b6d1f3c3b0 FindPython: Add support of version 3.10 2020-10-16 11:36:53 +02:00
Marc Chevrier 6f4458692b FindPython: Ensure Apple Xcode python 3 is usable
The python 3 distributed as part of Xcode requires the specification
of a 'rpath' pointing at frameowrks root for a correct execution.

Fixes: #21293
2020-10-12 15:45:55 +02:00
Marc Chevrier 46ae13f7a0 FindPython: Add version range support
Fixes: #21107
2020-09-30 14:30:23 +02:00
Marc Chevrier 12c4f87373 FindPython: Fix erroneous regex in ABI check
A regex added by commit b4cdbcd8e8 (FindPython: enhance ABI checks
against include directory, 2020-09-02, v3.18.3~17^2) was missing a
backslash.

Fixes: #21223
2020-09-23 11:37:20 -04:00
Marc Chevrier 4bf76fa8fe FindPython: CMP0012 must be set to NEW
Fixes: #21168
2020-09-07 18:19:30 +02:00
Marc Chevrier b4cdbcd8e8 FindPython: enhance ABI checks against include directory
Fixes: #21149
2020-09-02 15:41:16 +02:00
Marc Chevrier 22f340c56d FindPython: enhance robustness of version extraction from library name
Fixes: #21105
2020-08-18 12:30:47 +02:00
Marc Chevrier 5786fac272 FindPython: manage SOABI for all Python versions
Fixes: #21070
2020-08-11 10:16:40 +02:00
Marc Chevrier f5ccd390f0 FindPython: ensure user's policies are respected
Do not set the policy version before recording our internal macros such
as `__Python_add_library`.  Otherwise callers get our policy version
instead of theirs.  Instead just set the specific policies we need.

Also fix one case in our test suite where we were accidentally
relying on the policy version to be set by `FindPython`.

Fixes: #21042
2020-08-07 09:24:18 -04:00
Marc Chevrier 0126701d4d FindPython: use CMAKE specific variables to look-up debug library
Fixes: #20714
2020-05-18 15:11:19 +02:00
Marc Chevrier da5fecfbf6 FindPython: Add IronPython support on all platforms 2020-05-11 14:02:59 +02:00
Marc Chevrier afcd3c1ee1 FindPython: ensure any specified version is correctly handled
Fixes: #20674
2020-05-07 11:20:43 +02:00
Marc Chevrier 74f6b9f980 FindPython: Add support for 'PyPy' 2020-05-01 15:03:04 +02:00
Marc Chevrier 164260655b FindPython: fix error on FPHSA call 2020-04-29 13:41:56 +02:00
Marc Chevrier f37807652a FindPython: Add capability to specify Python implementations
Through hint Python_FIND_IMPLEMENTATIONS it is possble to specify, as an
ordered list, which implementations must be searched for.
Currently possible values are:
* CPython
* IronPython
2020-04-28 13:56:18 +02:00
Brad King 1a1aace759 Merge topic 'FindPython-reason-failure'
f7bec05166 FindPython: fix reason failure propagation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4660
2020-04-27 10:41:20 -04:00
Marc Chevrier f7bec05166 FindPython: fix reason failure propagation 2020-04-24 15:47:05 +02:00
Brad King 50f56ced0f Merge topic 'FindPython-fix-python-compiler-validation'
8762c3ce72 FindPython: fix python compiler validation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4655
2020-04-24 08:36:17 -04:00
Marc Chevrier 8762c3ce72 FindPython: fix python compiler validation
Ensure also the cache of properties is erased in case of multiple
searches.

Fixes: #20626, #20627
2020-04-23 17:47:22 +02:00
Ben Boeckel 8f7bc8dae8 FindPython: remove unnecessary if check
`list(REMOVE_DUPLICATES)` is safe on empty lists since 3.14.
2020-04-20 10:30:09 -04:00
Ben Boeckel c4be15026d FindPython: fix some indentation 2020-04-17 09:00:26 -04:00
Marc Chevrier 44c76eab75 FindPython: add sub-components to Development component
Fixes: #20425
2020-04-16 14:38:39 +02:00
Brad King 02bd339b13 Merge topic 'FindPython-if-auto-deref'
d55848cb87 FindPython: remove extra dereference
9d6a4e5abc FindPython: avoid autoderef in version comparisons

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4610
2020-04-15 09:38:03 -04:00
Ben Boeckel d55848cb87 FindPython: remove extra dereference
If the version is not found (e.g., missing headers), this causes a CMake
error about `if(blah VERSION_EQUAL)` being an invalid statement.
2020-04-14 11:03:35 -04:00
Ben Boeckel 9d6a4e5abc FindPython: avoid autoderef in version comparisons 2020-04-14 11:03:35 -04:00
Brad King 2281ffbc39 Merge topic 'FindPython-fix-VIRTUALENV-eq-FIRST' into release-3.17
f53edb10bd FindPython: fix handling when FIND_VIRTUALENV == FIRST

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4557
2020-04-02 11:12:54 -04:00
Brad King 2b10678e13 Merge topic 'FindPython-fix-VIRTUALENV-eq-FIRST'
f53edb10bd FindPython: fix handling when FIND_VIRTUALENV == FIRST

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4557
2020-04-02 11:12:54 -04:00
Marc Chevrier f53edb10bd FindPython: fix handling when FIND_VIRTUALENV == FIRST
Fixes: #20525
2020-04-01 10:36:46 -04:00
Marc Chevrier a5fc2ddcc8 FindPython: use 'sysconfig' as alternate to 'distutils.sysconfig'
To support any python installation, if package 'distutils.sysconfig'
is not available, try to use package 'sysconfig'.

Fixes: #20502
2020-03-28 10:51:47 +01:00
Brad King 47a568094e Merge topic 'FindPython-variable-spelling-error'
645bb7ba9d FindPython: fix variable spelling error

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4529
2020-03-27 07:44:12 -04:00
Marc Chevrier 645bb7ba9d FindPython: fix variable spelling error 2020-03-26 18:08:25 +01:00
Brad King bd5b679f1a Merge topic 'FindPython-polish'
1c61057f21 FindPython: misc. fixes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4519
2020-03-25 08:13:07 -04:00
Marc Chevrier 1c61057f21 FindPython: misc. fixes
Help: Fix errors regardings HINTS.
Code: Optimize Python signature cache variable to avoid unecessary searchs.
2020-03-24 18:26:16 +01:00
Brad King ded27d7983 Merge topic 'FindPython-version-validation-fix'
7862db85d5 FindPython: fix regression on version validation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4492
2020-03-18 07:54:23 -04:00
Marc Chevrier 7862db85d5 FindPython: fix regression on version validation
In commit b2e8785e83 (FindPython: reduces consumption of resources,
2020-02-10, v3.17.0-rc1~11^2) we accidentally broke the python
executable version validation when the "LOCATION" strategy is used
with the plain `FindPython` module.  Fix the logic and add test
cases covering those combinations.

Fixes: #20465
2020-03-17 10:08:34 -04:00
Brad King c2e3337eb1 Merge topic 'FindPython-ENV-CMAKE_FRAMEWORK_PATH'
1f312e5546 FindPython: Convert env CMAKE_FRAMEWORK_PATH to CMake path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Marc Chevrier <marc.chevrier@gmail.com>
Merge-request: !4462
2020-03-12 08:18:54 -04:00
Bo Anderson 1f312e5546 FindPython: Convert env CMAKE_FRAMEWORK_PATH to CMake path 2020-03-11 13:35:33 -04:00
Marc Chevrier 443856fc7e FindPython: Add possibility to control scope of artifacts.
Fixes: #20362
2020-03-05 16:44:48 +01:00
Marc Chevrier ce032b7adf FindPython: python_add_library can now manage SOABI suffix.
Fixes: #20408
2020-03-03 13:13:48 +01:00
Marc Chevrier af9b503694 FindPython: Do not cache computed result variables in CMake 3.16
Since commit 5ab1160b9b (FindPython: Add capability to specify directly
artifacts, 2019-08-15, v3.16.0-rc1~157^2) we accidentally add the result
variables `Python*_LIBRARY_RELEASE` and `Python*_LIBRARY_DEBUG` to the
cache.  They are always computed from other results and so should not be
presented to users in cmake-gui and ccmake to edit.

Issue: #20362
2020-02-26 08:09:21 -05:00
Marc Chevrier 70133a5fa6 FindPython: Mark non-public cache entries INTERNAL in CMake 3.16
Since commit 5ab1160b9b (FindPython: Add capability to specify directly
artifacts, 2019-08-15, v3.16.0-rc1~157^2) we accidentally expose cache
entries named `_Python...` to users in cmake-gui and ccmake.  Mark those
entries as `INTERNAL` to hide them.

Issue: #20362
2020-02-26 08:09:16 -05:00
Marc Chevrier 423c5282b8 FindPython: Do not cache computed result variables
Since commit 5ab1160b9b (FindPython: Add capability to specify directly
artifacts, 2019-08-15, v3.16.0-rc1~157^2) we accidentally add the result
variables `Python*_LIBRARY_RELEASE` and `Python*_LIBRARY_DEBUG` to the
cache.  They are always computed from other results and so should not be
presented to users in cmake-gui and ccmake to edit.

Issue: #20362
2020-02-26 08:08:26 -05:00
Marc Chevrier 28f0ffd0ff FindPython: Mark non-public cache entries INTERNAL
Since commit 5ab1160b9b (FindPython: Add capability to specify directly
artifacts, 2019-08-15, v3.16.0-rc1~157^2) we accidentally expose cache
entries named `_Python...` to users in cmake-gui and ccmake.  Mark those
entries as `INTERNAL` to hide them.

Issue: #20362
2020-02-26 08:08:03 -05:00
Marc Chevrier b2e8785e83 FindPython: reduces consumption of resources
Stores more information in the cache to reduce the number
of sub-processes required on subsequent find_package calls.

Fixes: #20337
2020-02-10 12:41:04 +01:00
Brad King 9abea51b1b Merge topic 'python39'
36c633e274 FindPython: Add support for version 3.9

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Marc Chevrier <marc.chevrier@gmail.com>
Acked-by: Björn Esser <besser82@fedoraproject.org>
Merge-request: !4225
2020-01-15 13:36:35 -05:00
Miro Hrončok 36c633e274 FindPython: Add support for version 3.9
Development versions of Python 3.9.0 are already out there.

See PEP 596 -- Python 3.9 Release Schedule:
https://www.python.org/dev/peps/pep-0596/
2020-01-14 15:02:19 -05:00