From 702213b83130781b7d179b4cb2120371337d24ac Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 23:19:59 +0200 Subject: [PATCH] finally compiling --- cmake/RPiCrossCompileConfig.cmake | 39 ++++++++++++++++--------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/cmake/RPiCrossCompileConfig.cmake b/cmake/RPiCrossCompileConfig.cmake index b225912..5806af5 100644 --- a/cmake/RPiCrossCompileConfig.cmake +++ b/cmake/RPiCrossCompileConfig.cmake @@ -44,6 +44,15 @@ else() ) endif() +# Generally, the debian roots will be a multiarch rootfs where some libraries are put +# into a folder named "arm-linux-gnueabihf". The user can override the folder name if this is +# not the case +if(NOT ENV{MULTIARCH_FOLDER_NAME}) + set(MULTIARCH_FOLDER_NAME "arm-linux-gnueabihf") +else() + set(MUTLIARCH_FOLDER_NAME $ENV{MULTIARCH_FOLDER_NAME}) +endif() + message(STATUS "Using sysroot path: ${SYSROOT_PATH}") set(CROSS_COMPILE_CC "${CROSS_COMPILE}-gcc") @@ -77,15 +86,13 @@ endif() # List of library dirs where LD has to look. Pass them directly through gcc. # LD_LIBRARY_PATH is not evaluated by arm-*-ld set(LIB_DIRS - "/opt/cross-pi-gcc/arm-linux-gnueabihf/lib" - "/opt/cross-pi-gcc/lib" "${SYSROOT_PATH}/opt/vc/lib" - "${SYSROOT_PATH}/lib/${CROSS_COMPILE}" + "${SYSROOT_PATH}/lib/${MULTIARCH_FOLDER_NAME}" "${SYSROOT_PATH}/usr/local/lib" - "${SYSROOT_PATH}/usr/lib/${CROSS_COMPILE}" + "${SYSROOT_PATH}/usr/lib/${MULTIARCH_FOLDER_NAME}" "${SYSROOT_PATH}/usr/lib" - "${SYSROOT_PATH}/usr/lib/${CROSS_COMPILE}/blas" - "${SYSROOT_PATH}/usr/lib/${CROSS_COMPILE}/lapack" + "${SYSROOT_PATH}/usr/lib/${MULTIARCH_FOLDER_NAME}/blas" + "${SYSROOT_PATH}/usr/lib/${MULTIARCH_FOLDER_NAME}/lapack" ) # You can additionally check the linker paths if you add the # flags ' -Xlinker --verbose' @@ -94,40 +101,35 @@ foreach(LIB ${LIB_DIRS}) set(COMMON_FLAGS "${COMMON_FLAGS} -L${LIB} -Wl,-rpath-link,${LIB}") endforeach() -set(CMAKE_PREFIX_PATH - "${CMAKE_PREFIX_PATH}" - "${SYSROOT_PATH}/usr/lib/${CROSS_COMPILE}" -) - if(RASPBERRY_VERSION VERSION_GREATER 3) set(CMAKE_C_FLAGS "-mcpu=cortex-a72 -mfpu=neon-vfpv4 -mfloat-abi=hard ${COMMON_FLAGS}" - CACHE STRING "Flags for Raspberry PI 4" + CACHE STRING "Flags for Raspberry Pi 4" ) set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" - CACHE STRING "Flags for Raspberry PI 4" + CACHE STRING "Flags for Raspberry Pi 4" ) elseif(RASPBERRY_VERSION VERSION_GREATER 2) set(CMAKE_C_FLAGS "-mcpu=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard ${COMMON_FLAGS}" - CACHE STRING "Flags for Raspberry PI 3" + CACHE STRING "Flags for Raspberry Pi 3" ) set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" - CACHE STRING "Flags for Raspberry PI 3" + CACHE STRING "Flags for Raspberry Pi 3" ) elseif(RASPBERRY_VERSION VERSION_GREATER 1) set(CMAKE_C_FLAGS "-mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard ${COMMON_FLAGS}" - CACHE STRING "Flags for Raspberry PI 2" + CACHE STRING "Flags for Raspberry Pi 2" ) set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" - CACHE STRING "Flags for Raspberry PI 2" + CACHE STRING "Flags for Raspberry Pi 2" ) else() set(CMAKE_C_FLAGS "-mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard ${COMMON_FLAGS}" - CACHE STRING "Flags for Raspberry PI 1 B+ Zero" + CACHE STRING "Flags for Raspberry Pi 1 B+ Zero" ) set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "Flags for Raspberry PI 1 B+ Zero" @@ -138,7 +140,6 @@ set(CMAKE_FIND_ROOT_PATH "${CMAKE_INSTALL_PREFIX};${CMAKE_PREFIX_PATH};${CMAKE_SYSROOT}" ) - # search for programs in the build host directories set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) # for libraries and headers in the target directories