Commit Graph

95 Commits

Author SHA1 Message Date
Brad King
fc76273519 Merge topic 'FindPython-fix-variable-handling'
754f4f6876 FindPython: fix erroneous variable handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5816
2021-02-16 12:07:17 -05:00
Marc Chevrier
754f4f6876 FindPython: fix erroneous variable handling
Fixes: #21817
2021-02-16 10:46:28 -05:00
Brad King
6412d17b4f Merge topic 'FindPython-python2-soabi-suffix-fix'
afb0ffcac7 FindPython2: avoid doubling the extension in CPython2 SOABI

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5574
2020-12-08 10:18:29 -05:00
Brad King
61cd587ef3 Merge topic 'FindPython-python2-soabi-suffix-fix' into release-3.19
afb0ffcac7 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
afb0ffcac7 FindPython2: avoid doubling the extension in CPython2 SOABI
Commit 951640f1f9 (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
1c912056a1 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
e452f6e2cf FindPython: Adds control over artifact names to search
Fixes: #21371
2020-11-03 15:12:58 +01:00
Marc Chevrier
23cd98a66a FindPython: Add support of version 3.10 2020-10-16 11:36:53 +02:00
Marc Chevrier
5772ca0a53 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
e4b7049230 FindPython: Add version range support
Fixes: #21107
2020-09-30 14:30:23 +02:00
Marc Chevrier
6c094c1c1e FindPython: Fix erroneous regex in ABI check
A regex added by commit 6fdfe2428d (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
0670797d71 FindPython: CMP0012 must be set to NEW
Fixes: #21168
2020-09-07 18:19:30 +02:00
Marc Chevrier
6fdfe2428d FindPython: enhance ABI checks against include directory
Fixes: #21149
2020-09-02 15:41:16 +02:00
Marc Chevrier
72822e26c9 FindPython: enhance robustness of version extraction from library name
Fixes: #21105
2020-08-18 12:30:47 +02:00
Marc Chevrier
951640f1f9 FindPython: manage SOABI for all Python versions
Fixes: #21070
2020-08-11 10:16:40 +02:00
Marc Chevrier
a92d384548 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
e7b9f928f7 FindPython: use CMAKE specific variables to look-up debug library
Fixes: #20714
2020-05-18 15:11:19 +02:00
Marc Chevrier
e8ffc60220 FindPython: Add IronPython support on all platforms 2020-05-11 14:02:59 +02:00
Marc Chevrier
e1c869906c FindPython: ensure any specified version is correctly handled
Fixes: #20674
2020-05-07 11:20:43 +02:00
Marc Chevrier
c1ef70d4d1 FindPython: Add support for 'PyPy' 2020-05-01 15:03:04 +02:00
Marc Chevrier
e67dba730e FindPython: fix error on FPHSA call 2020-04-29 13:41:56 +02:00
Marc Chevrier
d2c47c822b 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
9e3d982e05 Merge topic 'FindPython-reason-failure'
a7eca04163 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
a7eca04163 FindPython: fix reason failure propagation 2020-04-24 15:47:05 +02:00
Brad King
360862f845 Merge topic 'FindPython-fix-python-compiler-validation'
f39da773ee 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
f39da773ee 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
c6ba196314 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
62b51845db FindPython: fix some indentation 2020-04-17 09:00:26 -04:00
Marc Chevrier
c1b4044d3e FindPython: add sub-components to Development component
Fixes: #20425
2020-04-16 14:38:39 +02:00
Brad King
d561898572 Merge topic 'FindPython-if-auto-deref'
894fdea2a9 FindPython: remove extra dereference
0b9c9e2c8c 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
894fdea2a9 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
0b9c9e2c8c FindPython: avoid autoderef in version comparisons 2020-04-14 11:03:35 -04:00
Brad King
d26f15dfce Merge topic 'FindPython-fix-VIRTUALENV-eq-FIRST' into release-3.17
81beb28752 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
35d9ca268b Merge topic 'FindPython-fix-VIRTUALENV-eq-FIRST'
81beb28752 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
81beb28752 FindPython: fix handling when FIND_VIRTUALENV == FIRST
Fixes: #20525
2020-04-01 10:36:46 -04:00
Marc Chevrier
dd0664415a 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
83f5ba06df Merge topic 'FindPython-variable-spelling-error'
63580668a8 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
63580668a8 FindPython: fix variable spelling error 2020-03-26 18:08:25 +01:00
Brad King
f2b4576373 Merge topic 'FindPython-polish'
bf1ecfef7f FindPython: misc. fixes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4519
2020-03-25 08:13:07 -04:00
Marc Chevrier
bf1ecfef7f 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
3c7774e207 Merge topic 'FindPython-version-validation-fix'
cc7f116cb4 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
cc7f116cb4 FindPython: fix regression on version validation
In commit 3dab4682f6 (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
3a49ea6f25 Merge topic 'FindPython-ENV-CMAKE_FRAMEWORK_PATH'
1044776472 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
1044776472 FindPython: Convert env CMAKE_FRAMEWORK_PATH to CMake path 2020-03-11 13:35:33 -04:00
Marc Chevrier
e5b4c74238 FindPython: Add possibility to control scope of artifacts.
Fixes: #20362
2020-03-05 16:44:48 +01:00
Marc Chevrier
0c97b73bc0 FindPython: python_add_library can now manage SOABI suffix.
Fixes: #20408
2020-03-03 13:13:48 +01:00
Marc Chevrier
1dc524f202 FindPython: Do not cache computed result variables in CMake 3.16
Since commit 06d9e67fbd (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
602d1d8201 FindPython: Mark non-public cache entries INTERNAL in CMake 3.16
Since commit 06d9e67fbd (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
42c6a1bfee FindPython: Do not cache computed result variables
Since commit 06d9e67fbd (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
a7b4516e1a FindPython: Mark non-public cache entries INTERNAL
Since commit 06d9e67fbd (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