From a29f7b7b32894d5fa2ffefbfed919c8d8f8e0c1e Mon Sep 17 00:00:00 2001 From: Doug Junkins Date: Tue, 5 Mar 2019 04:57:13 +0000 Subject: Add support to compile from source on a Raspberry Pi Update CMakeLists.txt to test if the CMAKE_SYSTEM_PROCESSOR variable is either armv6l or armv7l. If so, add libGLESv2 to the list of libraries to be linked to support openGL on embedded systems. Update INSTALL file to list the packages needed to be installed on Raspian Stretch or Ubuntu Mate to successfully compile subsurface from source. Signed-off-by: Doug Junkins --- CMakeLists.txt | 7 +++++++ INSTALL | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b431fd114..a9addef0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,6 +186,13 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") # in some builds we appear to be missing libz for some strange reason... # Add ssh2 at the end for openSUSE builds (for recent cmake?) set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -lssh2 -lz -lpthread) + + # Test for ARM processor (Raspberry Pi) and add libGLESv2 if found + if (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "armv6l") + message (STATUS "Found ARM processor. Adding libGLESv2") + set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -lGLESv2) + set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + endif() elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") execute_process( COMMAND sh scripts/get-version linux diff --git a/INSTALL b/INSTALL index 5e211b9bc..184dc2d97 100644 --- a/INSTALL +++ b/INSTALL @@ -180,6 +180,22 @@ sudo apt install \ qtpositioning5-dev qtscript5-dev qttools5-dev qttools5-dev-tools \ qtquickcontrols2-5-dev +On Raspberry Pi (Raspian Stretch and Ubuntu Mate 16.04.2) this seems to work + +sudo apt install \ + autoconf automake cmake g++ git libcrypto++-dev libcurl4-gnutls-dev \ + libgit2-dev libqt5qml5 libqt5quick5 libqt5svg5-dev libqt5webkit5-dev \ + libsqlite3-dev libssh2-1-dev libssl-dev libssl-dev \ + libtool libusb-1.0-0-dev libxml2-dev libxslt1-dev libzip-dev make \ + pkg-config qml-module-qtlocation qml-module-qtpositioning \ + qml-module-qtquick2 qt5-default qt5-qmake qtchooser \ + qtconnectivity5-dev qtlocation5-dev qtpositioning5-dev qtscript5-dev \ + qttools5-dev qttools5-dev-tools + +Note that on Ubuntu Mate 16.04.2 on the Raspberry Pi, you may need to configure +some swap space in order for the build to complete successfully. There is no +swap space configured by default. See the dphys-swapfile package. + On PCLinuxOS you appear to need the following packages su -c "apt-get install -y autoconf automake cmake libtool gcc-c++ git \ -- cgit v1.2.3-70-g09d2