javier-varez / buildsystem Goto Github PK
View Code? Open in Web Editor NEWSmall portable build system based on AOSP Make build system aimed to native C and C++ targets
License: MIT License
Small portable build system based on AOSP Make build system aimed to native C and C++ targets
License: MIT License
Though this can be generated externally with tools such as compdb, embedding the generation of the compilation database for Clang would be quite nice.
Create a test build that verifies targets work as expected.
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.
No need to support LOCAL_MULTILIB := both
for now. Just either 32 bit or 64 bit.
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.
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
It would be very nice if we would be able to do the following operations per target:
Run should also properly set the LD_LIBRARY_PATH.
Create test target able to link to googletest.
All targets should be documented in the variables it uses and how it uses them.
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.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.