Files
dockcross/linux-m68k-uclibc/Toolchain.cmake
Nicolas Boichat 69c4db9338 */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.
2025-02-25 16:14:39 +01:00

28 lines
866 B
CMake

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR mk68)
set(cross_triple $ENV{CROSS_TRIPLE})
set(cross_root $ENV{CROSS_ROOT})
set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_Fortran_COMPILER $ENV{FC})
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 ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-mk68)
# Discard path returned by pkg-config and associated with HINTS in module
# like FindOpenSSL.
# set(CMAKE_IGNORE_PATH /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-linux-gnu/lib/)
# set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-mk68)