-
-
Notifications
You must be signed in to change notification settings - Fork 10.9k
BUG: Handle --f77flags
and --f90flags
for meson
#26703
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: warrickball <warrickball@users.noreply.github.com>
EDIT: See #26704 for a related followup issue. |
Actually to prevent scope creep this should go in as is, it fixes the flag passing mechanism, and some more thought needs to go into the other issue, now tracked in #26704 |
Thanks @HaoZeke |
Should this be backported to 2.0? |
Merge-to-main failed azure pipeline tests. @HaoZeke could you take a look? |
Ah sorry, the Looking at the logs it seems like the Windows CI is using the wrong stack though #25000 was why
The reason why it didn't show up in #26634 which uses a similar test pattern is because that raised an error in |
Yup, that would be great, it's likely to break a lot of |
Note to self, if this is backported, it needs fixes. #26812. |
Backport of numpy#26703, numpy#26706, and numpy#26812. Closes numpy#25784. Background and notes: - Although the CLI was passing `fc_flags` to the Meson backend they weren't being used - The behavior currently is to (redundantly) collect the unique set of flags passed via either `--f77flags` or `--f90flags` - They all map to `fortran_args` for the `meson.build` (`distutils` used to have separate handling for the two cases) - Eventually these should be merged into a single `--fflags` argument (basically since they're now redundant post-distutils) - This is likely only when we have 3.12 as the lowest supported version, since `distutils` will need to have both CLI options - The test is specially crafted to get an error without `-ffixed-form` but is otherwise junk - Adding a continuation character at the end of the line as well will both get `f2py` and `gfortran` to compile without `-ffixed-form` - Or putting the same code in a `.f` file, thereby signalling to F2PY that this is a Fortran 77 file It does make sense to handle `fortran_args` this way though, since it is more robust than setting `FFLAGS` (which anyway won't work due to a `meson` bug, mesonbuild/meson#13327). Squashed commit of the following: commit bbc198b48b79417f210bd38de6c60ab98d18857d Author: Rohit Goswami <rog32@hi.is> Date: Fri Jun 28 19:43:41 2024 +0200 CI,MAINT: Bump gfortran version [wheel build] Co-authored-by: ngoldbaum <ngoldbaum@users.noreply.github.com> commit fffa296b7a611de1ab25f85619e92e6d6c5185a4 Author: Rohit Goswami <rog32@hi.is> Date: Fri Jun 28 14:54:50 2024 +0200 CI,TST: Fix meson tests needing gfortran [wheel build] commit 807e898e80e544e720512f9feccc9c897cd55f08 Author: Rohit Goswami <rog32@hi.is> Date: Sun Jun 16 09:40:06 2024 +0000 TST: Skip an f2py module test on Windows commit cbcb6c2c4340f5bbca46e2c6d8474bbed7d90664 Author: Rohit Goswami <rog32@hi.is> Date: Sun Jun 16 04:06:16 2024 +0000 MAINT: Be more robust wrt f2py flags commit 09e3eb004b0e076271817384a92d489b3b0cc0eb Author: Rohit Goswami <rog32@hi.is> Date: Sun Jun 16 03:44:17 2024 +0000 TST: Add one for passing arguments to f2py Co-authored-by: warrickball <warrickball@users.noreply.github.com> commit 04d53b44b75537fc5b411cf9e54c2f169198419f Author: Rohit Goswami <rog32@hi.is> Date: Sun Jun 16 00:14:54 2024 +0000 BUG: Use fortran args from f2py in meson commit 6f736b0cbe977ba9270c45f7cc22b7ae8ce06ed2 Author: Rohit Goswami <rog32@hi.is> Date: Sat Jun 15 23:36:55 2024 +0000 MAINT,BUG: Correctly skip distutils options
Closes #25784. Background and notes:
fc_flags
to the Meson backend they weren't being used--f77flags
or--f90flags
fortran_args
for themeson.build
(distutils
used to have separate handling for the two cases)--fflags
argument (basically since they're now redundant post-distutils)distutils
will need to have both CLI options-ffixed-form
but is otherwise junkf2py
andgfortran
to compile without-ffixed-form
.f
file, thereby signalling to F2PY that this is a Fortran 77 fileIt does make sense to handle
fortran_args
this way though, since it is more robust than settingFFLAGS
(which anyway won't work due to ameson
bug, mesonbuild/meson#13327).