*/Toolchain.cmake: Set CMAKE_FIND_ROOT_PATH_LIBRARY/INCLUDE to ONLY

For some reason, the default setting in all Toolchain.cmake
is:
```
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
```

For cross-compilation, CMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
makes sense (we only want to find executables in host system root),
but CMAKE_FIND_ROOT_PATH_MODE_LIBRARY/INCLUDE should be set
to ONLY, otherwise cmake may find libraries in host system root,
and try to link with incompatible libraries (instead of
cross-compilation sysroot).

Fixes #431.
This commit is contained in:
Nicolas Boichat
2025-02-23 15:51:11 +01:00
parent b7f8ddd484
commit 69c4db9338
37 changed files with 74 additions and 74 deletions

View File

@ -13,7 +13,7 @@ set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
set(CMAKE_FIND_ROOT_PATH ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-aarch64)