initial commit
This commit is contained in:
@@ -0,0 +1 @@
|
||||
/tmp
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
ARG DOCKER_PREFIX=wapmobil/
|
||||
FROM ${DOCKER_PREFIX}debian
|
||||
ARG JOBS_COUNT=4
|
||||
ARG JOBS_QT_COUNT=2
|
||||
|
||||
WORKDIR /soft/picross
|
||||
|
||||
RUN apt-get update && apt-get install -y g++-arm-linux-gnueabihf && rm -rf /var/cache/apt/archives/*
|
||||
|
||||
COPY sysroot.tar.bz2 sysroot.tar.bz2
|
||||
COPY toolchain-RPi.cmake /soft/
|
||||
|
||||
WORKDIR /soft/pi
|
||||
RUN tar -xjf /soft/picross/sysroot.tar.bz2 && rm /soft/picross/sysroot.tar.bz2
|
||||
|
||||
|
||||
WORKDIR /soft
|
||||
|
||||
ENV _TARGET=linux-gnueabihf
|
||||
ENV CROSS_COMPILE=arm-${_TARGET}-
|
||||
|
||||
|
||||
# sodium
|
||||
WORKDIR /soft
|
||||
RUN curl https://download.libsodium.org/libsodium/releases/libsodium-${CUR_SODIUM_VERSION}.tar.gz \
|
||||
-o libsodium-${CUR_SODIUM_VERSION}.tar.gz \
|
||||
&& tar -xf libsodium-${CUR_SODIUM_VERSION}.tar.gz -C /soft \
|
||||
&& rm -f libsodium-${CUR_SODIUM_VERSION}.tar.gz \
|
||||
&& mkdir -p /soft/pi/build/sodium && cd /soft/pi/build/sodium \
|
||||
&& sh -c 'CFLAGS="-O3" LDFLAGS="-O3" LD=${CROSS_COMPILE}ld CC=${CROSS_COMPILE}gcc CXX=${CROSS_COMPILE}g++ /soft/libsodium-*/configure --host=arm-${_TARGET} --prefix=/soft/pi/usr && make install -j${JOBS_COUNT}' \
|
||||
&& cd /soft && rm -rf /soft/pi/build/sodium && rm -rf /soft/libsodium-*
|
||||
|
||||
|
||||
# fftw3
|
||||
WORKDIR /soft
|
||||
RUN wget -nv http://www.fftw.org/fftw-${CUR_FFTW_VERSION}.tar.gz \
|
||||
&& tar -xf fftw-${CUR_FFTW_VERSION}.tar.gz -C /soft \
|
||||
&& rm -f fftw-${CUR_FFTW_VERSION}.tar.gz \
|
||||
&& mkdir -p /soft/pi/build/fftw3 && cd /soft/pi/build/fftw3 \
|
||||
&& cmake -DCMAKE_INSTALL_PREFIX=/soft/pi/usr -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_FLOAT=0 -DENABLE_LONG_DOUBLE=0 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-RPi.cmake /soft/fftw-* \
|
||||
&& make install -j${JOBS_COUNT} && rm -rf ./* \
|
||||
&& cmake -DCMAKE_INSTALL_PREFIX=/soft/pi/usr -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_FLOAT=1 -DENABLE_LONG_DOUBLE=0 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-RPi.cmake /soft/fftw-* \
|
||||
&& make install -j${JOBS_COUNT} && rm -rf ./* \
|
||||
&& cmake -DCMAKE_INSTALL_PREFIX=/soft/pi/usr -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_FLOAT=0 -DENABLE_LONG_DOUBLE=1 -DENABLE_QUAD_PRECISION=0 -DENABLE_THREADS=1 -DWITH_COMBINED_THREADS=1 -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-RPi.cmake /soft/fftw-* \
|
||||
&& make install -j${JOBS_COUNT} && rm -rf ./* \
|
||||
&& rm -rf /soft/fftw-*
|
||||
|
||||
|
||||
# assimp
|
||||
WORKDIR /soft
|
||||
RUN wget -nv https://github.com/assimp/assimp/archive/v${CUR_ASSIMP_VERSION}.tar.gz \
|
||||
&& tar -xf v${CUR_ASSIMP_VERSION}.tar.gz -C /soft \
|
||||
&& rm -f v${CUR_ASSIMP_VERSION}.tar.gz pax_global_header \
|
||||
&& mkdir -p /soft/pi/build/assimp && cd /soft/pi/build/assimp \
|
||||
&& cmake -DCMAKE_INSTALL_PREFIX=/soft/pi/usr -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release -DASSIMP_BUILD_ASSIMP_TOOLS=0 -DASSIMP_BUILD_TESTS=0 -DBUILD_FRAMEWORK=0 -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-RPi.cmake /soft/assimp-* \
|
||||
&& make install -j${JOBS_COUNT} && rm -rf ./* && rm -rf /soft/assimp-*
|
||||
|
||||
|
||||
# markdown
|
||||
WORKDIR /soft
|
||||
RUN wget -nv https://github.com/Orc/discount/archive/v${CUR_DISCOUNT_VERSION}.tar.gz \
|
||||
&& tar -xf v${CUR_DISCOUNT_VERSION}.tar.gz -C /soft \
|
||||
&& rm -f v${CUR_DISCOUNT_VERSION}.tar.gz
|
||||
RUN sed -i 's/DESTRUCTOR/ /' /soft/discount-${CUR_DISCOUNT_VERSION}/setup.c
|
||||
WORKDIR /soft/discount-${CUR_DISCOUNT_VERSION}/cmake
|
||||
COPY discount.cmake.patch /soft/discount-${CUR_DISCOUNT_VERSION}/cmake/cmake.patch
|
||||
RUN patch < cmake.patch
|
||||
WORKDIR /soft/linux/build/discount
|
||||
RUN cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release -DDISCOUNT_ONLY_LIBRARY=1 /soft/discount-${CUR_DISCOUNT_VERSION}/cmake && make -j2 && mv mktags .. && rm -rf ./* \
|
||||
&& mkdir -p /soft/pi/build/discount && mv /soft/linux/build/mktags /soft/pi/build/discount/mktags
|
||||
WORKDIR /soft/pi/build/discount
|
||||
RUN cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/soft/pi/usr -DCMAKE_TOOLCHAIN_FILE=/soft/toolchain-RPi.cmake -DDISCOUNT_ONLY_LIBRARY=1 /soft/discount-*/cmake && make install -j${JOBS_COUNT} && rm -rf ./*
|
||||
|
||||
|
||||
# microhttpd
|
||||
WORKDIR /soft/
|
||||
RUN wget -nv https://mirror.tochlab.net/pub/gnu/libmicrohttpd/libmicrohttpd-${CUR_MICROHTTPD_VERSION}.tar.gz \
|
||||
&& tar -xf /soft/libmicrohttpd-${CUR_MICROHTTPD_VERSION}.tar.gz -C /soft/ \
|
||||
&& rm /soft/libmicrohttpd-${CUR_MICROHTTPD_VERSION}.tar.gz \
|
||||
&& mkdir -p /soft/pi/build/microhttpd && cd /soft/pi/build/microhttpd \
|
||||
&& sh -c 'CFLAGS="-O3" LDFLAGS="-O3" LD=${CROSS_COMPILE}ld CC=${CROSS_COMPILE}gcc CXX=${CROSS_COMPILE}g++ /soft/libmicrohttpd-${CUR_MICROHTTPD_VERSION}/configure --host=arm-${_TARGET} --prefix=/soft/pi/usr --enable-shared=no --enable-static=yes --enable-tests=no --enable-examples=no && make install -j${JOBS_COUNT}' \
|
||||
&& cd /soft && rm -rf /soft/pi/build/microhttpd && rm -rf /soft/libmicrohttpd-*
|
||||
|
||||
|
||||
# Qt
|
||||
WORKDIR /soft
|
||||
ENV SYSROOT=/soft/pi
|
||||
RUN ln -s /usr/bin/arm-linux-gnueabihf-g++ /usr/bin/arm-linux-gnueabi-g++
|
||||
RUN ln -s /usr/bin/arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabi-gcc
|
||||
RUN ln -s /usr/bin/arm-linux-gnueabihf-ar /usr/bin/arm-linux-gnueabi-ar
|
||||
RUN ln -s /usr/bin/arm-linux-gnueabihf-nm /usr/bin/arm-linux-gnueabi-nm
|
||||
RUN ln -s /usr/bin/arm-linux-gnueabihf-strip /usr/bin/arm-linux-gnueabi-strip
|
||||
RUN ln -s /usr/bin/arm-linux-gnueabihf-objcopy /usr/bin/arm-linux-gnueabi-objcopy
|
||||
RUN wget -nv http://qt-mirror.dannhauer.de/archive/qt/${CUR_QT_VERSION_MAJOR}/${CUR_QT_VERSION}/single/qt-everywhere-opensource-src-${CUR_QT_VERSION}.tar.xz \
|
||||
&& tar -xf qt-everywhere-opensource-src-${CUR_QT_VERSION}.tar.xz -C /soft \
|
||||
&& rm -f qt-everywhere-opensource-src-${CUR_QT_VERSION}.tar.xz \
|
||||
&& mkdir -p /soft/build/qt && cd /soft/build/qt \
|
||||
&& /soft/qt-everywhere-src-${CUR_QT_VERSION}/configure \
|
||||
-opensource -confirm-license -release -shared -no-pch -xplatform "linux-arm-gnueabi-g++" -extprefix "/soft/pi/usr" \
|
||||
-sysroot ${SYSROOT} -gcc-sysroot -device-option CROSS_COMPILE=${CROSS_COMPILE} \
|
||||
MYSQL_INCDIR=/soft/pi/usr/include/mysql MYSQL_LIBDIR=/soft/pi/usr/lib/arm-linux-gnueabihf \
|
||||
-opengl desktop -qt-libpng -system-zlib -qt-pcre -make tools -nomake tests -nomake examples -no-compile-examples \
|
||||
-skip qtwebengine -skip qtwebglplugin -skip doc -skip qt3d -skip qtactiveqt -skip qtquick3d -openssl-linked -xcb \
|
||||
&& make -j${JOBS_QT_COUNT} && make install && rm -rf ./* && rm -rf /soft/qt-everywhere-src-*
|
||||
|
||||
|
||||
ENV BUILD_TYPE=Release
|
||||
|
||||
WORKDIR /soft
|
||||
@@ -0,0 +1,38 @@
|
||||
--- CMakeLists.txt 2019-04-15 18:28:20.000000000 +0300
|
||||
+++ CMakeLists_new.txt 2020-03-16 10:46:52.288128600 +0300
|
||||
@@ -20,6 +20,9 @@
|
||||
set(${PROJECT_NAME}_ONLY_LIBRARY OFF CACHE BOOL
|
||||
"Set to ON to only build markdown library (default is OFF)")
|
||||
|
||||
+set(${PROJECT_NAME}_CXX_BINDING OFF CACHE BOOL
|
||||
+ "Set to ON to install header files with c++ wrappers (default is OFF)")
|
||||
+
|
||||
# Check headers
|
||||
include(CheckIncludeFile)
|
||||
check_include_file(libgen.h HAVE_LIBGEN_H)
|
||||
@@ -110,6 +113,13 @@
|
||||
configure_file("${_ROOT}/mkdio.h.in"
|
||||
"${_ROOT}/mkdio.h"
|
||||
@ONLY)
|
||||
+if(${PROJECT_NAME}_CXX_BINDING)
|
||||
+ message(STATUS "Applying c++ glue to mkdio.h")
|
||||
+ file(READ "${_ROOT}/mkdio.h" _ROOT_MKDIO_H)
|
||||
+ file(WRITE "${_ROOT}/mkdio.h" "#ifdef __cplusplus\nextern \"C\" {\n#endif\n")
|
||||
+ file(APPEND "${_ROOT}/mkdio.h" "${_ROOT_MKDIO_H}")
|
||||
+ file(APPEND "${_ROOT}/mkdio.h" "#ifdef __cplusplus\n}\n#endif\n")
|
||||
+endif()
|
||||
|
||||
include_directories("${_ROOT}")
|
||||
|
||||
@@ -182,7 +192,10 @@
|
||||
target_include_directories(libmarkdown INTERFACE
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
- set(_TARGETS libmarkdown markdown)
|
||||
+ set(_TARGETS libmarkdown)
|
||||
+ if(NOT ${PROJECT_NAME}_ONLY_LIBRARY)
|
||||
+ list(APPEND _TARGETS markdown)
|
||||
+ endif()
|
||||
if(${PROJECT_NAME}_INSTALL_SAMPLES)
|
||||
list(APPEND _TARGETS mkd2html makepage)
|
||||
endif()
|
||||
@@ -0,0 +1,20 @@
|
||||
#! /bin/bash
|
||||
set -e
|
||||
# Fix absolute symlinks to RPi sysroot
|
||||
# Run script in raspbian root
|
||||
PREF="/lib/arm-linux-gnueabihf"
|
||||
DIR="usr/lib/arm-linux-gnueabihf/"
|
||||
#"/soft/pi/lib/arm-linux-gnueabihf/"
|
||||
#NEWDIR="/soft/picross/pitools/arm-bcm2708/arm-linux-gnueabihf/arm-linux-gnueabihf/sysroot/lib/"
|
||||
|
||||
PLEN=`expr length "$PREF"`
|
||||
for f in `find $DIR -maxdepth 1 -type l`
|
||||
do
|
||||
L=`readlink $f`
|
||||
D=`expr substr "$L" 1 $PLEN`
|
||||
if [[ "$D" = "$PREF" ]]
|
||||
then
|
||||
echo "Relink $f"
|
||||
ln -sf "../../..$L" "$f"
|
||||
fi
|
||||
done
|
||||
@@ -0,0 +1,17 @@
|
||||
#! /bin/bash
|
||||
set -e
|
||||
home=$(pwd)
|
||||
rm -vf $home/sysroot.tar.bz2
|
||||
apt-get update --allow-releaseinfo-change && apt-get install -y rsync
|
||||
mkdir /raspbian
|
||||
rsync -a $home/raspbian /
|
||||
|
||||
rm /raspbian/etc/ld.so.preload
|
||||
cp -vf /etc/resolv.conf /raspbian/etc/resolv.conf
|
||||
chroot /raspbian /bin/bash -c "date && cat /etc/resolv.conf && ping 8.8.8.8 -c 4 && ping archive.raspberrypi.org -c 4"
|
||||
chroot /raspbian /bin/bash -c "apt-get update --allow-releaseinfo-change && apt-get upgrade -y && apt-get install -y libicu-dev zlib1g-dev libglew-dev libffi-dev libssl-dev libmpc-dev libmpfr-dev libgmp-dev lzma-dev liblzma-dev libxml2-dev libbz2-dev zip \"^libxcb.*\" libx11-xcb-dev libxkbcommon-x11-dev libglu1-mesa-dev libxrender-dev mariadb-client mariadb-common mysql-common libmariadb-dev-compat libmariadbclient-dev libpq-dev ninja-build"
|
||||
|
||||
cd /raspbian
|
||||
bash $home/fix_links.sh
|
||||
tar -cjf /soft/rpi_image/sysroot.tar.bz2 lib/arm-linux-gnueabihf usr/lib usr/include usr/share var/lib/dpkg/ etc/*-release
|
||||
chmod 777 /soft/rpi_image/sysroot.tar.bz2
|
||||
@@ -0,0 +1,12 @@
|
||||
#! /bin/bash
|
||||
set -e
|
||||
mkdir -p ./tmp ./raspbian
|
||||
cd ./tmp
|
||||
wget -nv https://downloads.raspberrypi.org/raspbian_lite_latest -O raspbian_lite_latest.zip
|
||||
rm -vf *raspbian*.img
|
||||
unzip ./raspbian_lite_latest.zip
|
||||
sudo losetup -P /dev/loop9 `ls *raspbian*.img`
|
||||
cd ..
|
||||
sudo mount /dev/loop9p2 ./raspbian
|
||||
|
||||
#docker run -v $(pwd):/raspbian --rm wapmobil/debian bash make_sysroot.sh
|
||||
@@ -0,0 +1,26 @@
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||
|
||||
set(triple "arm-linux-gnueabihf")
|
||||
set(RPI_TOOLCHAIN "/usr/bin/${triple}")
|
||||
#set(CMAKE_SYSROOT "/soft/pi/usr")
|
||||
|
||||
set(CMAKE_LIBRARY_ARCHITECTURE ${triple})
|
||||
set(CMAKE_C_COMPILER ${RPI_TOOLCHAIN}-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${RPI_TOOLCHAIN}-g++)
|
||||
set(CMAKE_RANLIB ${RPI_TOOLCHAIN}-ranlib CACHE FILEPATH "ranlib")
|
||||
set(CMAKE_AR ${RPI_TOOLCHAIN}-ar CACHE FILEPATH "ar")
|
||||
set(CMAKE_READELF ${RPI_TOOLCHAIN}-readelf CACHE FILEPATH "readelf")
|
||||
set(CMAKE_DPKG_WORKDIR /soft/pi/var/lib/dpkg/)
|
||||
|
||||
list(APPEND CMAKE_PREFIX_PATH "/soft/pi/usr")
|
||||
#set(CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH}/lib/${triple})
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY FIRST)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE FIRST)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE FIRST)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-Wl,-rpath-link,/soft/pi/lib/${triple}")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
|
||||
include_directories(${CMAKE_PREFIX_PATH}/include ${CMAKE_PREFIX_PATH}/include/${triple})
|
||||
cmake_policy(SET CMP0025 NEW)
|
||||
@@ -0,0 +1,10 @@
|
||||
#! /bin/bash
|
||||
set -e
|
||||
x=$(ls /dev | grep loop9p2 | wc -l)
|
||||
if [ $x -ne 0 ]
|
||||
then
|
||||
echo "delete loop"
|
||||
sudo umount ./raspbian || true
|
||||
sudo losetup -d /dev/loop9 || true
|
||||
fi
|
||||
rm -rf ./tmp ./raspbian || true
|
||||
Reference in New Issue
Block a user