marcmo / cxxproject Goto Github PK
View Code? Open in Web Editor NEWbuild and manage c++ projects
Home Page: http://marcmo.github.com/cxxproject/index.html
License: BSD 2-Clause "Simplified" License
build and manage c++ projects
Home Page: http://marcmo.github.com/cxxproject/index.html
License: BSD 2-Clause "Simplified" License
progress bar would be nice also
e.g. to run all programs that contain the pattern test*
e.g. a generating usecase
...would allow for a nicer command line ui (e.g. progressbar and error/warning messages)
e.g. when you build a binary library yourself without installing it and you want to reference this library
If build dir is "./build", object files should be in "./build/objects".
If a source file is "../src/filex.c", the object file will be created in "./build/src/" instead of "./build/objects/src/".
It is probably necessary to protect against name clashes within the "objects" directory. I.e. if several "src" directories are referenced via relative paths, all starting with src (../src, ../../src, etc.) and containing files with the same names.
not by using an excessive roodi-configuration
for example protoc should be allowed to generate its stuff into build/protoc/...
setting/changing the toolchain in the ruby dsl is not very clean...should be easier and more straight forward
e.g. build a project for several targets or build debug and release versions at the same time
toolchain support for llvm (readily available at least for osx and linux)
should be possible to add toolchains for different compilers
same for building blocks
was introduced with commit 795b0d4
see cxxproject_2_rake_spec.rb
<li>dependencies</li>
<ul>
<li>project1</li>
</ul>
<li>libs</li>
<li>exes</li>
-v should make BuildingBlock verbose and set logging level to info
-t should make BuildingBlock verbose and set logging level to debug
make rakefile optional
should be something != 0
example:
~/_projects/cxxproject/lib (master) > cat test.rb
require 'cxxproject'
task :blub do
sh 'cat gibts nicht'
end
~/_projects/cxxproject/lib (master) > rake -f test.rb blub
cat gibts nicht
cat: gibts: No such file or directory
cat: nicht: No such file or directory
Error for task: blub Command failed with status (1): [cat gibts nicht...]
~/_projects/cxxproject/lib (master) > echo $?
0
without require 'cxxproject' the return value is 1
this is a sync issue in utils/graphstream
we don't want to end up spitting out color directives to a terminal that can not deal with it (ANSI Terminal Escape Sequences)
problem:
the system has installed protobuf libs in /usr/lib and i want to link against the cxxproject built protobuf library
because the gcc toolchain has /usr/lib /usr/local/lib in its lib search path the linking does not work (because the local protobuf library has a newer api than the installed one!)
g++ -all_load -o build/exes/addressbook_write.exe build/objects/addressbook_write/addressbook_write.cc.o -Wl,--whole-archive -L/usr/local/lib -L/usr/lib -Lbuild/libs -laddressbook_pb_api -lprotobuf -lz -lpthread -Wl,--no-whole-archive
the tutorial should contain how to bundle the proto-runtime as buildingblock
and how to get the protoc working in a project that uses cxxproject
a minimal build (against build-in libs) should work without .cxxproject files.
problem could be the fileexistence test of the libs.
it should be easy to detect if we introduce a change in our public api
(not only the signatures, but also the behavior)
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.