Subject: Re: [bug#36477] [PATCH v3 04/48] gnu: cmake: Fix cross-compilation.

From: Mathieu Othacehe <[email-masked]>
Date: Fri, 20 Sep 2019 16:18:55 +0200

Hey Ludo,

> It seems to be enough to just add ‘search-paths’ to ‘cmake’:
>

I tried to do that but it doesn't work. Let's consider libgit2 which
uses cmake, when cross-compiling, both native-search-paths and
search-paths are set. Both are passed to bag-build in
"bag->cross-derivation".

Then, gnu-build is called from cmake-build and "set-paths" function is
called. "set-path-environment-variable" is called for CMAKE_PREFIX_PATH
which is in search-paths and then called again for CMAKE_PREFIX_PATH in
native-search-paths.

The later will cause the first setenv to be undone, and we end-up with
only native-inputs in CMAKE_PREFIX_PATH variable.

Whereas, with my patch only search-paths is set, so it can't be "undone"
by native-search-paths. CMAKE_PREFIX_PATH is filled with only "inputs"
which is what is expected.

I hope I'm clear and I'm sorry to reply so late, didn't have any slack
in my day job :(

WDYT?

Thanks,

Mathieu