Giter Club home page Giter Club logo

buildsystem's People

Contributors

javier-varez avatar

Stargazers

 avatar

Watchers

 avatar  avatar

buildsystem's Issues

Remove duplicated code across targets

Lots of code is duplicated across build_binary.mk, build_shared_lib.mk and build_static_lib.mk. We should attempt to remove the bloat and have common files for repeated target code.

Pass arguments to run_* targets with args_$(LOCAL_NAME) environment variable

We might want to override arguments to our target binaries. In order to do so, let's add a RUN_ARGS environment variable containing such arguments.

Then we would be able to use it like this:

make args_my_binary="-h" run_my_binary

And it would be equivalent to building and running your binary like this:

./build/targets/my_binary -h

Embed compilers in the buildsystem

It is worth exploring the cost of embedding compilers and tools to simplify installation and improve build reproducibility. Of course it would make sense to add these tools as external repositories part of the repo manifest.

Create shortcuts for targets

It would be very nice if we would be able to do the following operations per target:

  • Build
  • Clean
  • Run (For binaries only)

Run should also properly set the LD_LIBRARY_PATH.

Use common folder for library artifacts

Using shared libraries is now somewhat annoying, as the LD_LIBRARY_PATH needs to be updated with all directories containing a shared library. Instead we should have all library targets in the same folder, keeping the exports specific per target.

Add builtin compilers and architecture targets

Instead of having to redefine for every target common settings like compiler, sysroot, system includes, target triplet, etc, create builtin configurations that can be configured with a variable such as LOCAL_BUILTIN_COMPILER and LOCAL_BUILTIN_ARCH

It would be even nicer to allow the user to create their own customized targets as well and use them with these variables if the builtins are not good enough or need customization.

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.