Commit Graph

20 Commits

Author SHA1 Message Date
Joe Marshall 76581a7d28
Get deps from pypi during build (#3310) 2023-01-05 08:45:20 +09:00
Gyeongjae Choi 923aea8221
Pin setuptools version (#3278) 2022-11-21 16:03:53 +09:00
Gyeongjae Choi d2fce73291
Prevent backend-flags from propagating to dependencies (#3153) 2022-10-04 08:57:24 +09:00
Yizhi Liu f28bf95c84
Add lightgbm package (#3138) 2022-09-27 10:14:11 +09:00
Gyeongjae Choi a916ea0b34
BLD simplify building CMake based packages (#3128)
This PR makes building CMake based packages easier.
- Introduce a custom toolchain file for Pyodide. It inherits most of settings from the original Emscripten toolchain file with some modifications. Packages built by pyodide-build will automatically use that toolchain file.
- Proxy cmake in pywasmcross.py, in order to proxy other compiler toolchains.
2022-09-22 10:42:26 +09:00
Hood Chatham 525b5a1785
Update scipy to 1.9.1 (no meson) (#3043)
This updates scipy to v1.9.1. This was mercifully easy:

* for now we disable meson
* we dropped `patches/0014-BUG-Fix-signature-of-D_IIR_forback-1-2.patch` since it was upstreamed
* we had to add a patch to put fitpack back into a shape that makes f2c happy
* we need one more `-Wincompatible-function-pointer-types` fix upstream PR: https://github.com/scipy/scipy/pull/16934
2022-09-04 22:39:32 -07:00
Gyeongjae Choi ad128337e8
Unpin setuptools version (#3010) 2022-08-24 08:32:26 +02:00
Gyeongjae Choi 757b54e398
Pin setuptools version temporarily (#2972) 2022-08-16 11:32:03 +09:00
Gyeongjae Choi 88232d7639
BLD Pin cmake version temporarily (#2945) 2022-08-08 11:23:44 +09:00
Gyeongjae Choi 5d72fd427e
Pin cython version temporarily (#2920)
cython 0.29.31 is incompatible with scipy 1.8.1.
2022-07-29 12:55:50 +09:00
Gyeongjae Choi 9d874d588b
MAINT Update pre-commit config (#2890) 2022-07-19 16:43:12 +01:00
Hood Chatham 49807b699c
ENH Add flag to run bash script in cross build environment (#2734)
This script will run with the target environment variables and
sysconfigdata and with the pywasmcross compiler symlinks.
Any changes to the environment will persist to the main build
step but will not be seen in the post step (or anything else
done outside of the cross build environment). The working
directory for this script is the source directory.
2022-06-27 21:05:53 -07:00
Hood Chatham 2d056ed253
Add support for backend flags to buildpkg (#2690)
And use it to disable numpy optimization by passing the `--disable-optimization` 
flag instead of patching numpy.
2022-06-13 16:40:48 -07:00
Hood Chatham 2f4f258bb5
MAINT Use target sysconfigdata rather than host sysconfigdata when cross compiling (#2516)
sysconfig.py uses the environment variable `_PYTHON_SYSCONFIGDATA_NAME`
to decide where to look for the sysconfig data file with info about the compile target.
We also need to separately insure that our sysconfig data file is on the path. We
don't want the rest of our target stdlib on the path, so I made an extra sysconfigdata
folder, copied the sysconfig data into it, and put it on the path.
2022-05-29 18:59:10 -07:00
Henry Schreiner 5523d539bf
chore(types): fill out remaining partial types (#2612) 2022-05-25 20:31:04 -07:00
Henry Schreiner e31bb554e4
chore: complete more incomplete types (#2590)
* chore: add some incomplete types
* chore: modernize pyproject.toml

Adding more incomplete types. About 2/3 of the way through being
able to turn on the strictness flag for it.
2022-05-21 13:35:02 -07:00
Henry Schreiner eb4f7d9fd9
refactor: use .path & type build (#2583) 2022-05-20 08:27:02 +02:00
Hood Chatham e732cb9dd7
meta.yaml keys for cross-build environment (#2536)
This moves unisolation into a package key. `cross-build-env: true` means the package
is part of the cross build environment and should be unisolated. `cross-build-files`
gives a list of files that should be copied from the built copy of the package into the host
copy of the package.

This will allow us to construct a cross build environment automatically as part of building
packages. If we have these files and the Python include directory, this is sufficient for 
cross-building binary packages.
2022-05-11 20:31:16 -07:00
Hood Chatham a473c14ea0
Fix Cython handling in pypa/build (#2507) 2022-05-05 10:46:05 -06:00
Hood Chatham eabfa8101e
Use pypa/build (#2272)
This resolves #2189.

> build isolation would be a bit difficult to use in our case, as for instance
> when building scipy we need the patched numpy on the host and not the numpy
> version specified in pyproject.toml (which would be unpatched)

This is indeed the case, certain packages cannot be isolated. My strategy is to
make a list of packages that shouldn't be isolated and add symlinks from the
isolated build environment into the `.artifacts` directory to "unisolate" them.
Then we remove the unisolated package requirements from the list of packages to
install, in case pesky constraints aren't satisfied. In particular, packages
that expect to be used with `pypa/build` often feel free to put very specific
constraints on their build dependencies (often asking them to be == to a
particular version). Specific version constraints is good for build
reproducibility and with build isolation doesn't cost anything. So we just
ignore the constraints. Hopefully nothing goes wrong.

In particular, any package that does stuff both at build time and at runtime and
requires synchronization between the build time and run time environments needs
the unisolation. This includes cffi with `_cffi_backend.so`, and of course numpy
and scipy. pycparser needs to be unisolated because it is a dependency of cffi.

Currently I have also unisolated pythran and cython, though these are build time
only tools and do not really need to be unisolated. Cython I unisolated
specifically because numcodecs needs it but it isn't in the numcodecs build
dependencies. Pythran I unisolated because of a problem with the scipy build
which I don't fully understand (some problem with long double feature
detection).
2022-03-21 22:05:30 -07:00