jharwell / libra Goto Github PK
View Code? Open in Web Editor NEWReusable C/C++ build automation in the spirit of the world's second most successful plumber.
License: MIT License
Reusable C/C++ build automation in the spirit of the world's second most successful plumber.
License: MIT License
To support building different parts of libraries for real robots/simulators, I
need to switch to using more of the cmake machinery (COMPONENTS, install()
targets, etc).
The new version of their compiler requires minor configuration tweaking to work
again.
Update compile definitions for gcc/clang for C++17.
Move templates from my personal devel repo over to here, which contains the rest of the build automation for the project
With recent updates to FORDYCA and COSM, the unsafe-math-optimizations causes problems with the calculation of cache dimensions, so it needs to be removed.
i.e. clang, libclang, etc.
That's where everything else for my thesis project is, so this should be there too I think.
I've needed to do this often enough now that it should be an option
RCPPSW_ vs LIBRA
After moving to my personal github, take a pass through to clean up
In order to use std::filesystem, or event std::experimental::filesystem; this was a known GCC bug which is most easily fixed by upgrading GCC versions.
Has not been done in a while and they mostly work currently...
Just like unit tests, building the documentation target in the root project
should trigger building documentation in all sub projects as well.
Invoked via 'make package', this should use CPack script for creating a .deb,
.tar, etc. of the project.
Invoked via 'make coverage', this should run code coverage analysis via some
combination of:
Needed so that we can rely on cmake propagating this value across targets, since
all targets linking with rcppsw need to have the SAME value of it, to avoid
strange runtime segfaults (looking at you ROS).
This is not ALWAY Sdone, and I am running into situations where having it on is
not helpful. Better to let projects using LIBRA set -fPIC if they want to.
When doing optimized ("release") builds, things should build with ZERO warnings
of any kind. As such, the -Werror flag should be added to compiler flags.
switch to gold linker, which seems to allow for clang/gcc interop with argos
Not a problem until recently, when it being enabled causes linking errors with liblog4cxx
So that it is usable as is on the fordyca codebase
Doxygen can do this automatically, but the generated pages are not very
nice. Should be indexed/indexable by project (i.e. rcppsw stuff should show up
as that when built as part of fordyca I think). doxy2man might help somewhat
with this.
For multi-threaded environments, leaving logging on may be too slow to trigger
race conditions/other issues that may be hidden by it. However, having an
option in addition to ER_NREPORT where I can compile out everything but an
assert would be very helpful in helping to catch MORE issues with threading
enabled without just having to look at code outputs (eg .csv files).
Somehow this got removed in the past, and should be added back
Should be able to upload project to coverity (if its open source on github), and
run analysis via command line. I don't think you can download/review results on
the command line though.
Minimum is 3.0, but I use a 3.6 feature.
Turn on UBSAN,SSAN by default for dev builds
Though non-standard, I should be able to pair any level of ER event reporting with any optimization level, as I occasionally run into debugging instances where that is needed (eg MSI)
gcc and other tool versions should be enforced in cmake rather than relying on
users to read the readme thoroughly.
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.