mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Allow Cross-Compile with latest Ubuntu and Raspbian versions
This commit is contained in:
@@ -1,16 +1,20 @@
|
||||
SET(CUBIXCROSS_DIR $ENV{HOME}/hummingboard)
|
||||
|
||||
SET(CMAKE_SYSTEM_NAME Linux)
|
||||
SET(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${CUBIXCROSS_DIR}/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${CUBIXCROSS_DIR}/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-g++)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard")
|
||||
SET(CROSSROOT $ENV{HOME}/crosscompile)
|
||||
SET(DEVROOT ${CROSSROOT}/hummingboard)
|
||||
SET(CUBIXROOT ${DEVROOT}/rootfs)
|
||||
SET(CUBIXCROSS_DIR ${DEVROOT}/tools)
|
||||
|
||||
# where is the target environment
|
||||
SET(CMAKE_FIND_ROOT_PATH ${CUBIXCROSS_DIR}/rootfs)
|
||||
SET(TOOLROOT ${CUBIXCROSS_DIR}/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/ )
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${TOOLROOT}/bin/arm-linux-gnueabihf-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${TOOLROOT}/bin/arm-linux-gnueabihf-g++)
|
||||
SET(CUBIX_FLAGS "-march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard")
|
||||
|
||||
SET(CMAKE_SYSROOT ${CUBIXROOT})
|
||||
SET(CMAKE_FIND_ROOT_PATH ${CUBIXROOT})
|
||||
|
||||
# search for programs in the build host directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
@@ -18,5 +22,17 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
# for libraries and headers in the target directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGES ONLY)
|
||||
|
||||
include_directories(${CMAKE_FIND_ROOT_PATH}/usr/include)
|
||||
#SET Flags for linking as dynamic linker config file is not being properly parsed by the toolchain
|
||||
# see https://solderspot.wordpress.com/2016/02/04/cross-compiling-for-raspberry-pi-part-ii/
|
||||
|
||||
SET(FLAGS "${CUBIX_FLAGS} -Wl,-rpath-link,${CUBIXROOT}/opt/vc/lib -Wl,-rpath-link,${CUBIXROOT}/lib/arm-linux-gnueabihf -Wl,-rpath-link,${CUBIXROOT}/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,${CUBIXROOT}/usr/local/lib")
|
||||
|
||||
UNSET(CMAKE_C_FLAGS CACHE)
|
||||
UNSET(CMAKE_CXX_FLAGS CACHE)
|
||||
|
||||
SET(CMAKE_CXX_FLAGS ${FLAGS} CACHE STRING "" FORCE)
|
||||
SET(CMAKE_C_FLAGS ${FLAGS} CACHE STRING "" FORCE)
|
||||
|
||||
link_directories(${CUBIXROOT}/lib/arm-linux-gnueabihf)
|
||||
|
@@ -1,14 +1,20 @@
|
||||
SET(RASPCROSS_DIR $ENV{HOME}/raspberrypi)
|
||||
|
||||
SET(CMAKE_SYSTEM_NAME Linux)
|
||||
SET(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${RASPCROSS_DIR}/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${RASPCROSS_DIR}/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++)
|
||||
SET(CROSSROOT $ENV{HOME}/crosscompile)
|
||||
SET(DEVROOT ${CROSSROOT}/raspberrypi)
|
||||
SET(PIROOT ${DEVROOT}/rootfs)
|
||||
SET(PITOOLCHAIN ${DEVROOT}/tools)
|
||||
|
||||
# where is the target environment
|
||||
SET(CMAKE_FIND_ROOT_PATH ${RASPCROSS_DIR}/rootfs)
|
||||
SET(TOOLROOT ${PITOOLCHAIN}/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf )
|
||||
SET(QT_BIN_PATH ${CROSSROOT}/Qt5/Qt5.7.1/5.7/gcc_64/bin)
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${TOOLROOT}/bin/arm-linux-gnueabihf-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${TOOLROOT}/bin/arm-linux-gnueabihf-g++)
|
||||
|
||||
SET(CMAKE_SYSROOT ${PIROOT})
|
||||
SET(CMAKE_FIND_ROOT_PATH ${PIROOT})
|
||||
|
||||
# search for programs in the build host directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
@@ -16,4 +22,19 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
# for libraries and headers in the target directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGES ONLY)
|
||||
|
||||
|
||||
#SET Flags for linking as dynamic linker config file is not being properly parsed by the toolchain
|
||||
# see https://solderspot.wordpress.com/2016/02/04/cross-compiling-for-raspberry-pi-part-ii/
|
||||
|
||||
SET(FLAGS "-Wl,-rpath-link,${PIROOT}/opt/vc/lib -Wl,-rpath-link,${PIROOT}/lib/arm-linux-gnueabihf -Wl,-rpath-link,${PIROOT}/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,${PIROOT}/usr/local/lib")
|
||||
|
||||
UNSET(CMAKE_C_FLAGS CACHE)
|
||||
UNSET(CMAKE_CXX_FLAGS CACHE)
|
||||
|
||||
SET(CMAKE_CXX_FLAGS ${FLAGS} CACHE STRING "" FORCE)
|
||||
SET(CMAKE_C_FLAGS ${FLAGS} CACHE STRING "" FORCE)
|
||||
|
||||
link_directories(${PIROOT}/lib/arm-linux-gnueabihf)
|
||||
|
||||
|
@@ -1,7 +1,13 @@
|
||||
# toolchain file for building a 32bit version on a 64bit host
|
||||
|
||||
# use it like this:
|
||||
# cmake -DCMAKE_TOOLCHAIN_FILE=Toolchain-x32.cmake <sourcedir>
|
||||
# Add additional 32-bit libraries
|
||||
# sudo apt-get install g++-multilib libc6-dev-i386
|
||||
|
||||
#TO-DO
|
||||
# Install QT5 32bit
|
||||
|
||||
SET(CROSSROOT $ENV{HOME}/crosscompile)
|
||||
SET(QT_BIN_PATH ${CROSSROOT}/x86_32-linux-gnu/qt5/bin)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
@@ -10,3 +16,6 @@ set(CMAKE_SYSTEM_PROCESSOR "i686")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "c++ flags")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "c flags")
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user