conda-forge / or-tools-feedstock

A conda-smithy repository for or-tools.
BSD 3-Clause "New" or "Revised" License
2 stars 8 forks source link

Cross-compile linux-{aarch64,ppc64le} #38

Closed h-vetinari closed 1 year ago

h-vetinari commented 1 year ago

Follow-up to #31

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

h-vetinari commented 1 year ago

The cross-compilation error seems to be broadly due to https://github.com/google/or-tools/blob/v9.5/cmake/host.cmake

-- Configuring done
-- Generating done
-- Build files have been written to: /home/conda/feedstock_root/build_artifacts/or-tools-package_1678099423397/work/build
+ cmake --build build --target install -j2
ninja: warning: phony target 'host_tools' names itself as an input; ignoring [-w phonycycle=warn]
ninja: error: build.ninja:607: multiple rules generate host_tools

Does upstream or-tools support cross-compilation at all @Mizux? Or would that be in scope for upstreaming patches?

h-vetinari commented 1 year ago

Does upstream or-tools support cross-compilation at all @Mizux? Or would that be in scope for upstreaming patches?

@Mizux, still would be interested in your thoughts about cross-compiling or-tools. :)

Mizux commented 1 year ago

Does upstream or-tools support cross-compilation at all @Mizux? Or would that be in scope for upstreaming patches?

@Mizux, still would be interested in your thoughts about cross-compiling or-tools. :)

To be honest, didn't test for few months so maybe last CMake version are more picky/strict and found a borken pattern. On my way to test it...

Actually when cross compiling we need to build a host version of protobuf in order to build a protoc binary used to generate file from .proto files.

I have a custom_target(host_tools) depending on a custom_command(host_tools) downloading, patching then building the host protobuf seems I need to fix it also last protobuf depends on abseil-cpp but we are not pulling for the host this dependencies so it may not work anymore need to think and fix it...

note: Any PR is welcome if you are faster than us (currently in vacation until may 15th) ;)

h-vetinari commented 1 year ago

Actually when cross compiling we need to build a host version of protobuf in order to build a protoc binary used to generate file from .proto files.

Not in our world. We have protobuf & protoc ready to go and don't need to rebuild it. AFAICT, the current issue with this repo in cross-compilation is precisely that it tries to be too smart for its own good w.r.t. which host dependencies need to be (re)built)

h-vetinari commented 1 year ago

Now based on #43 because ppc looks like it'l become timeout-sensitive with building all python builds in one.