diff --git a/cmake/platforms/LinuxAArch64.cmake b/cmake/platforms/LinuxAArch64.cmake --- a/cmake/platforms/LinuxAArch64.cmake +++ b/cmake/platforms/LinuxAArch64.cmake @@ -11,6 +11,13 @@ set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc) set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++) +if(DEFINED ENV{CROSS_C_INCLUDE_PATH} OR DEFINED ENV{CROSS_CPLUS_INCLUDE_PATH}) + string(REPLACE ":" ";" CMAKE_INCLUDE_PATH "$ENV{CROSS_C_INCLUDE_PATH};$ENV{CROSS_CPLUS_INCLUDE_PATH}") +endif() +if(DEFINED ENV{CROSS_LIBRARY_PATH}) + string(REPLACE ":" ";" CMAKE_LIBRARY_PATH "$ENV{CROSS_LIBRARY_PATH}") +endif() + set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN_PREFIX}) set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN_PREFIX}) @@ -28,5 +35,5 @@ # search for headers/libs in the target environment and # search for programs in the build host environment 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_FIND_ROOT_PATH_MODE_LIBRARY BOTH) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) diff --git a/cmake/platforms/LinuxARM.cmake b/cmake/platforms/LinuxARM.cmake --- a/cmake/platforms/LinuxARM.cmake +++ b/cmake/platforms/LinuxARM.cmake @@ -11,6 +11,13 @@ set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc) set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++) +if(DEFINED ENV{CROSS_C_INCLUDE_PATH} OR DEFINED ENV{CROSS_CPLUS_INCLUDE_PATH}) + string(REPLACE ":" ";" CMAKE_INCLUDE_PATH "$ENV{CROSS_C_INCLUDE_PATH};$ENV{CROSS_CPLUS_INCLUDE_PATH}") +endif() +if(DEFINED ENV{CROSS_LIBRARY_PATH}) + string(REPLACE ":" ";" CMAKE_LIBRARY_PATH "$ENV{CROSS_LIBRARY_PATH}") +endif() + set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN_PREFIX}) set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN_PREFIX}) @@ -28,5 +35,5 @@ # search for headers/libs in the target environment and # search for programs in the build host environment 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_FIND_ROOT_PATH_MODE_LIBRARY BOTH) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh --- a/contrib/guix/libexec/build.sh +++ b/contrib/guix/libexec/build.sh @@ -107,8 +107,8 @@ CROSS_GCC_LIBS=( "${CROSS_GCC_LIB_STORE}/lib/gcc/${HOST}"/* ) # This expands to an array of directories... CROSS_GCC_LIB="${CROSS_GCC_LIBS[0]}" # ...we just want the first one (there should only be one) - export CROSS_CC="${CROSS_GCC_ROOT}/bin/x86_64-linux-gnu-gcc" - export CROSS_CXX="${CROSS_GCC_ROOT}/bin/x86_64-linux-gnu-g++" + export CROSS_CC="${CROSS_GCC_ROOT}/bin/${HOST}-gcc" + export CROSS_CXX="${CROSS_GCC_ROOT}/bin/${HOST}-g++" export CROSS_C_INCLUDE_PATH="${CROSS_GCC_LIB}/include:${CROSS_GCC_LIB}/include-fixed:${CROSS_GLIBC}/include:${CROSS_KERNEL}/include" export CROSS_CPLUS_INCLUDE_PATH="${CROSS_GCC_ROOT}/include/c++:${CROSS_GCC_ROOT}/include/c++/${HOST}:${CROSS_GCC_ROOT}/include/c++/backward:${CROSS_C_INCLUDE_PATH}" export CROSS_LIBRARY_PATH="${CROSS_GCC_LIB_STORE}/lib:${CROSS_GCC_LIB}:${CROSS_GLIBC}/lib:${CROSS_GLIBC_STATIC}/lib" @@ -211,7 +211,13 @@ *mingw*) CMAKE_TOOLCHAIN_FILE="/bitcoin/cmake/platforms/Win64.cmake" ;; - *linux*) + aarch64-linux-gnu) + CMAKE_TOOLCHAIN_FILE="/bitcoin/cmake/platforms/LinuxAArch64.cmake" + ;; + arm-linux-gnueabihf) + CMAKE_TOOLCHAIN_FILE="/bitcoin/cmake/platforms/LinuxARM.cmake" + ;; + x86_64-linux-gnu) CMAKE_TOOLCHAIN_FILE="/bitcoin/cmake/platforms/Linux64.cmake" ;; *darwin*) @@ -222,9 +228,7 @@ mkdir -p source_package pushd source_package rm -f CMakeCache.txt -cmake -GNinja .. \ - -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE}" \ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON +cmake -GNinja .. -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE}" ninja package_source SOURCEDIST=$(echo bitcoin-abc-*.tar.gz)