Switch RK3576 toolchain to Buildroot SDK and migrate to Python 3.11
This commit is contained in:
@@ -2,16 +2,28 @@ FROM cc-base:latest AS cc_rk3576
|
||||
|
||||
WORKDIR /opt
|
||||
|
||||
RUN wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz \
|
||||
&& tar -xJf arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz \
|
||||
&& rm /opt/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz
|
||||
# RUN wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz \
|
||||
# && tar -xJf arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz \
|
||||
# && rm /opt/arm-gnu-toolchain-13.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz
|
||||
|
||||
COPY rk3576/aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz /opt/
|
||||
RUN tar -zxf aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz \
|
||||
&& rm /opt/aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz
|
||||
|
||||
# use python3.11
|
||||
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 \
|
||||
&& update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2 \
|
||||
&& update-alternatives --set python3 /usr/bin/python3.11 \
|
||||
&& rm -f /usr/bin/python3-config \
|
||||
&& ln -s /usr/bin/python3.11-config /usr/bin/python3-config
|
||||
|
||||
COPY rk3576/rk3576.toolchain.cmake /opt/cmake/
|
||||
|
||||
ENV PATH="/opt/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu/bin:${PATH}"
|
||||
|
||||
ENV CC_TOOLCHAIN_FILE=/opt/cmake/rk3576.toolchain.cmake
|
||||
|
||||
ENV TARGET_SYSROOT=/opt/rk3576
|
||||
ENV PATH="${PATH}:/opt/aarch64-buildroot-linux-gnu_sdk-buildroot/bin"
|
||||
ENV PYTHON_PKG_PATH=${TARGET_SYSROOT}/lib/python3.11/site-packages
|
||||
|
||||
WORKDIR /root
|
||||
ARG BUILD_JOBS=6
|
||||
ENV MAKEFLAGS="-j${BUILD_JOBS}"
|
||||
|
||||
@@ -1,16 +1,7 @@
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||
# include buildroot toolchain file
|
||||
include(/opt/aarch64-buildroot-linux-gnu_sdk-buildroot/share/buildroot/toolchainfile.cmake)
|
||||
|
||||
set(SYSROOT /opt/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu)
|
||||
|
||||
set(CMAKE_SYSROOT
|
||||
${SYSROOT}/aarch64-none-linux-gnu/libc
|
||||
)
|
||||
|
||||
set(CMAKE_C_COMPILER ${SYSROOT}/bin/aarch64-none-linux-gnu-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${SYSROOT}/bin/aarch64-none-linux-gnu-g++)
|
||||
|
||||
list(APPEND CMAKE_FIND_ROOT_PATH
|
||||
list(APPEND CMAKE_FIND_ROOT_PATH
|
||||
$ENV{TARGET_SYSROOT}
|
||||
$ENV{ROS_ROOT}
|
||||
${CMAKE_INSTALL_PREFIX}
|
||||
@@ -20,13 +11,19 @@ list(APPEND CMAKE_FIND_ROOT_PATH
|
||||
# set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG -Wno-error=unused-variable")
|
||||
# set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -Wno-error=unused-variable")
|
||||
|
||||
# add_link_options("LINKER:-rpath-link,$ENV{TARGET_SYSROOT}/lib")
|
||||
add_link_options($<$<CONFIG:Release>:-s>)
|
||||
add_link_options("LINKER:-rpath-link,$ENV{TARGET_SYSROOT}/lib")
|
||||
|
||||
set(Python3_EXECUTABLE /usr/bin/python3)
|
||||
set(Python3_NumPy_INCLUDE_DIR $ENV{ROS_ROOT}/lib/python3.10/site-packages/numpy/core/include)
|
||||
|
||||
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_PACKAGE ONLY)
|
||||
# use buildroot sdk python3.11
|
||||
set(Python3_EXECUTABLE /usr/bin/python3.11)
|
||||
set(Python3_INCLUDE_DIR ${CMAKE_SYSROOT}/usr/include/python3.11)
|
||||
set(Python3_LIBRARY ${CMAKE_SYSROOT}/usr/lib/libpython3.11.so)
|
||||
set(Python3_NumPy_INCLUDE_DIR ${CMAKE_SYSROOT}/usr/lib/python3.11/site-packages/numpy/core/include)
|
||||
|
||||
# use cross compile packages
|
||||
set(LZ4_INCLUDE_DIR $ENV{TARGET_SYSROOT}/include)
|
||||
set(LZ4_LIBRARY $ENV{TARGET_SYSROOT}/lib/liblz4.so)
|
||||
set(flann_DIR $ENV{TARGET_SYSROOT}/lib/cmake/flann)
|
||||
set(FLANN_INCLUDE_DIR $ENV{TARGET_SYSROOT}/include)
|
||||
set(FLANN_LIBRARY $ENV{TARGET_SYSROOT}/lib/libflann.so)
|
||||
set(yaml-cpp_DIR $ENV{TARGET_SYSROOT}/lib/cmake/yaml-cpp)
|
||||
|
||||
Reference in New Issue
Block a user