Author: weber calixto (webersouzacalixto at gmail)
- About this project
1.1 Git workflow
1.1 Dependencies - Prebuilt packages
- Build Instructions
3.1 First Build
3.2 Subsequent Builds
3.2 Clean
This repo will contain several processing blocks, necessary to build a functional IP camera.
It is build upon several other projects (ninjadaemon, opencv, rapidjson, pistache, etc)
My goal is to make easier for others to build their own IP camera devices.
Some lines with potential exceptions are left un-try-catched intentionally so the ugly runtime error can be seen.
I've chosen to work with GitHubflow (i.e Only a master branch with feature branches, no master/develop branching scheme, versioning with git tags).
Convention: Every master commit must be stable.
-
This project is built and tested with GCC 8.3 on a raspberry pi 3 running raspbian 10. Feel free to build/test on other platforms.
-
Must have git-lfs installed and enabled to fetch the prebuilt packages on this repo
-
You will need GCC 8+ or clang 7+ to compile this project, as it makes extensive use of C++17
-
You must install clang-formatter to edit code following this project's code style.
-
Whenever possible, the blocks use NEON optimizations, targetting for the raspberry pi 3 and similar platforms.
For each block, I am trying my best to mantain at least 1 platform-indepent version. -
You will need an modern g++ ARM compiler. On my debian 10:
apt install g++-arm-linux-gnueabi* crossbuild-essential-arm*
Then, to set the default compilar for the armhf:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/arm-linux-gnueabihf-gcc 500 --slave /usr/bin/g++ g++ /usr/bin/arm-linux-gnueabihf-g++
I have prebuilt OpenCV 4.1 for raspbian 10 with NEON, TBB and VFPV3.
It's such a pain to build with optimizations that I commited to LFS a .deb package. Enjoy
cd scripts/
./submodules.sh
./build.sh
cd scripts/
./build.sh
cd scripts/
./clean.sh