Skip to content
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

Port Conda patches, use vendored boost #2793

Merged
merged 2 commits into from
Oct 18, 2024

Conversation

tomjakubowski
Copy link
Contributor

@tomjakubowski tomjakubowski commented Oct 15, 2024

See the commit messages for more detail.

This PR includes:

  • Ports of some patches added or soon to be added to conda-forge/perspective-feedstock
    • set ARROW_DEPENDENCY_SOURCE to BUNDLED
    • switch to header-only boost
    • patch arrow to respect CMAKE_LIBTOOL on macOS (GH-44384: [C++] Use CMAKE_LIBTOOL on macOS apache/arrow#44385)
    • parse CMAKE_ARGS from environment and pass them to cmake
    • use PROTOC when CONDA_BUILD=1 is set
    • use PYTHON as maturin interpreter when CONDA_BUILD=1 is set
    • in Windows builds, warn instead of failing the build when VCPKG_ROOT is not set
  • Reworking of dependencies:

@tomjakubowski tomjakubowski force-pushed the arrow-conda-patch branch 2 times, most recently from 493b915 to 3e01a75 Compare October 18, 2024 02:36
Did this work a bit out of order so squashed it all into one commit.

Conda related:
- switch to BUNDLED arrow dependency source
  - this lets us remove our direct deps on lz4, flatbuffers, zstd
- add abi3 feature to crate + enable unless CONDA_BUILD is set
- when CONDA_BUILD is set, pass PYTHON to maturin build
  --interpeter flag
- remove vestigal use of CMAKE_ARGS from .txt.in files
- parse CMAKE_ARGS from environment (unrelated to above item)
  - this is so we pick up the cross-compiling toolchain (i.e.
    CMAKE_LIBTOOL) in conda

Not conda related:
- switch away from global include_directories() calls
  - these add include paths to every target, including our dependencies
  - instead, export lists of INCLUDE_DIRS from every dependency,
    and then assemble them into a list to be passed to
    `target_include_directories` on the psp and perspective_esm targets
  - decouples order of psp_build_dep() calls and order of include
    directories
- switch Boost from a system dependency to psp_build_dep
  - eventually, to support Conda, we'll add a "use system dependency"
    feature to psp_build_dep for all dependencies
  - caveat: the boost download is a bit slow

Signed-off-by: Tom Jakubowski <[email protected]>
- `generate-proto`: when enabled, proto.rs is generated at build time.
  When it is disabled, it is presumed that proto.rs has already been
  generated
- `protobuf-src`: when enabled, protoc is built from source using a
  build-dependency on protobuf-src.  When it is disabled, `PROTOC` must
  be set by the builder in the environment to a protobuf compiler

Signed-off-by: Tom Jakubowski <[email protected]>
@tomjakubowski tomjakubowski marked this pull request as ready for review October 18, 2024 04:35
@tomjakubowski tomjakubowski changed the title WIP: porting conda patches Port Conda patches, use vendored boost Oct 18, 2024
@tomjakubowski
Copy link
Contributor Author

tomjakubowski commented Oct 18, 2024

I think test_js is an unrelated issue, although one of the two test failures in that job overlaps with the failing test on master. Hrm

@texodus texodus merged commit 4f1142a into finos:master Oct 18, 2024
11 of 12 checks passed
texodus added a commit that referenced this pull request Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Arrow headers installed to /usr/local can break perspective's subdirectory Arrow build
2 participants