Giter VIP home page Giter VIP logo

xbuilder's Introduction

Welcome to the wonderful world of cross compilation. Where magic is possible and things break unexpectedly!

What to find

What we're going to do here is to create a debian&ubuntu-based system with armhf cross-compilation capabilities. Since we won't be able to properly access the whole system, it mounts a suggested directory so that you can access the source-code for building purposes.

There's 1 way of building the SDK:

  • (needs work) using docker that will give us something quite similar without requiring root privileges
    • that loses all changes every time we log out
    • where we can't access our local files.

Docker

This one is using docker for setting up the facility and to set up the work. It has the advantage that it's much faster to set up and manage the system.

Proposed workflow:

Create the image

cd image
docker build -t plasma-mobile-sdk .

Create the container instance for the needed project, see information about volumes.

docker create -ti --name myproject plasma-mobile-sdk bash

If you want to access the local filesystem to access the source code, consider specifying a docker volume (--volume /localpath:/dockerpath). See Docker Volumes Documentation for more information.

Start the container for our project.

docker start -i myproject

Docker things

Take into account that the files created within the image will be destroyed.

Typical cmake command line

TODO: add this to the xutils

cmake .. \
 -DCMAKE_INSTALL_PREFIX=/usr \
 -DCMAKE_VERBOSE_MAKEFILE=ON \
 -DCMAKE_INSTALL_SYSCONFDIR=/etc \
 -DCMAKE_INSTALL_LOCALSTATEDIR=/var \
 -DCMAKE_SYSTEM_NAME=Linux \
 -DCMAKE_SYSTEM_PROCESSOR=arm \
 -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc \
 -DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ \
 -DCMAKE_USE_RELATIVE_PATHS=ON \
 -DCMAKE_INSTALL_SYSCONFDIR=/etc\
 -DKDE_INSTALL_USE_QT_SYS_PATHS=OFF \
 -DQT_PLUGIN_INSTALL_DIR=/usr/lib/arm-linux-gnueabihf/qt5/plugins \
 -DQML_INSTALL_DIR=/usr/lib/arm-linux-gnueabihf/qt5/qml \
 -DKF5_HOST_TOOLING=/usr/lib/x86_64-linux-gnu/cmake

Todo

  • install all the kde frameworks packages
  • fix the kde-development-environment for multi-arch (neon)
  • document how qmake cross-compile works

xbuilder's People

Contributors

aleixpol avatar bhush9 avatar sebasje avatar hsitter avatar notmart avatar

Stargazers

 avatar Kristen McWilliam avatar Gábor Mihálcz avatar  avatar

Watchers

James Cloos avatar  avatar

Forkers

arruor devdevdany

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.