-
-
Notifications
You must be signed in to change notification settings - Fork 17
For Ubuntu
Tested with Ubuntu 20.04 (05/09/2021)
Make sure you have g++ installed, and install dependencies
sudo apt-get install -y g++ libbz2-dev python3-dev wget build-essential libssl-dev autoconf automake libtool curl make g++ unzip libpcre3 libpcre3-dev libpq5 postgresql-server-dev-all git rpm zip libreadline-dev libffi-dev build-essential libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libtbbmalloc2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libudev-dev usbutils
Create a dev
folder under $HOME/dev
where you gonna put all yadoms dependencies
wget --no-verbose https://github.com/Kitware/CMake/releases/download/v3.20.1/cmake-3.20.1.tar.gz \
&& tar xzf cmake-3.20.1.tar.gz && cd cmake-3.20.1 \
&& ./bootstrap && make && sudo make install
wget --no-verbose https://boostorg.jfrog.io/artifactory/main/release/1.75.0/source/boost_1_75_0.tar.bz2 \
&& tar xjf boost_1_75_0.tar.bz2 && cd boost_1_75_0 \
&& ./bootstrap.sh \
&& ./b2 --with-atomic --with-chrono --with-date_time --with-filesystem --with-locale --with-regex --with-test --with-thread --with-json --with-system link=static runtime-link=static --no-samples --no-tests cxxflags=-fPIC \
&& rm -Rf bin.v2 \
&& rm -Rf doc \
&& rm -Rf libs \
&& rm -Rf tools
Change <YOUR_PATH> by your path
wget --no-verbose https://www.openssl.org/source/openssl-1.1.1k.tar.gz \
&& tar xzf openssl-1.1.1k.tar.gz && cd openssl-1.1.1k \
&& ./Configure --prefix=<YOUR_PATH>/dev/openssl -fPIC linux-x86_64\
&& make \
&& sudo make install
wget --no-verbose https://pocoproject.org/releases/poco-1.9.4/poco-1.9.4-all.tar.gz \
&& tar xzf poco-1.9.4-all.tar.gz && cd poco-1.9.4-all \
&& echo 'STATICOPT_CC = -fPIC' >> build/config/Linux \
&& echo 'STATICOPT_CXX = -fPIC' >> build/config/Linux \
&& ./configure --static --config=Linux --no-samples --no-tests --omit=CppUnit,CppUnit/WinTestRunner,Data,Data/SQLite,Data/ODBCData/MySQL,MongoDB,PageCompiler,PageCompiler/File2Page --include-path=$HOME/dev/openssl/include --library-path=$HOME/dev/openssl/lib \
&& make \
&& cd .. \
&& find . -name obj -type d -print0 | xargs -0 rm -rf
wget --no-verbose https://github.com/google/protobuf/releases/download/v3.15.8/protobuf-cpp-3.15.8.tar.gz \
&& tar xzf protobuf-cpp-3.15.8.tar.gz && cd protobuf-3.15.8 \
&& ./autogen.sh \
&& ./configure --enable-shared=no --prefix=$HOME/dev/protobuf --with-pic \
&& make \
&& sudo make install \
&& sudo ldconfig
wget --no-verbose http://prdownloads.sourceforge.net/swig/swig-4.0.2.tar.gz \
&& tar xzf swig-4.0.2.tar.gz \
&& cd swig-4.0.2 \
&& ./configure \
&& make \
&& sudo make install \
&& cd .. \
&& rm -f swig-4.0.2/Source/Modules/*.o \
&& rm -Rf swig-4.0.2/Examples \
&& rm -Rf swig-4.0.2/Docs
sudo apt-get install libpq5 postgresql-server-dev-all
wget --no-verbose https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz > /dev/null\
&& tar xzf Python-3.9.4.tgz && rm Python-3.9.4.tgz > /dev/null\
&& cd Python-3.9.4 \
&& ./configure --enable-shared --without-pymalloc --prefix=$HOME/dev/python3.9> /dev/null\
&& make > /dev/null\
&& sudo make install > /dev/null
On recent Ubuntu distro python is already installed.
You must install python-dev :
For python 2.x
sudo apt-get install python-dev
Download OpenCV sources from here
Unzip the folder
cd opencv-<version>
mkdir build
cd build
cmake -DWITH_EIGEN:BOOL="0" -DWITH_IMGCODEC_HDR:BOOL="0" -DBUILD_opencv_ts:BOOL="0" -DBUILD_opencv_video:BOOL="0" -DWITH_TIFF:BOOL="0" -DBUILD_PACKAGE:BOOL="0" -DBUILD_opencv_features2d:BOOL="0" -DBUILD_ITT:BOOL="0" -Dthunder:BOOL="0" -Dlzw:BOOL="0" -DCV_TRACE:BOOL="0" -DWITH_MSMF:BOOL="0" -DWITH_FFMPEG:BOOL="0" -DWITH_IMGCODEC_PXM:BOOL="0" -DWITH_MSMF_DXVA:BOOL="0" -DCPACK_SOURCE_ZIP:BOOL="0" -Dpackbits:BOOL="0" -DBUILD_opencv_apps:BOOL="0" -DBUILD_PROTOBUF:BOOL="0" -DBUILD_opencv_objdetect:BOOL="0" -DBUILD_IPP_IW:BOOL="0" -DBUILD_opencv_videoio:BOOL="0" -DBUILD_PERF_TESTS:BOOL="0" -Dmdi:BOOL="0" -DWITH_1394:BOOL="0" -DINSTALL_PDB:BOOL="0" -DWITH_OPENCL:BOOL="0" -DM_LIBRARY:FILEPATH="M_LIBRARY-NOTFOUND" -DUSE_WIN32_FILEIO:BOOL="1" -DCPACK_SOURCE_7Z:BOOL="0" -DBUILD_opencv_stitching:BOOL="0" -Dccitt:BOOL="0" -DVIDEOIO_ENABLE_STRICT_PLUGIN_CHECK:BOOL="0" -DWITH_IPP:BOOL="0" -DBUILD_opencv_dnn:BOOL="0" -DWITH_ITT:BOOL="0" -DCPACK_BINARY_NSIS:BOOL="0" -DBUILD_opencv_photo:BOOL="0" -DBUILD_opencv_calib3d:BOOL="0" -DWITH_QUIRC:BOOL="0" -DWITH_WEBP:BOOL="0" -DBUILD_opencv_python_bindings_generator:BOOL="0" -DWITH_PROTOBUF:BOOL="0" -DBUILD_JASPER:BOOL="1" -DWITH_OPENCLAMDBLAS:BOOL="0" -DBUILD_JAVA:BOOL="0" -DWITH_VTK:BOOL="0" -DBUILD_opencv_java_bindings_generator:BOOL="0" -DBUILD_opencv_highgui:BOOL="0" -DWITH_ARITH_DEC:BOOL="0" -DWITH_IMGCODEC_SUNRASTER:BOOL="0" -DWITH_ADE:BOOL="0" -DBUILD_OPENEXR:BOOL="0" -DWITH_OPENEXR:BOOL="0" -DWITH_OPENCLAMDFFT:BOOL="0" -DVIDEOIO_ENABLE_PLUGINS:BOOL="0" -DWITH_DSHOW:BOOL="0" -DOPENCV_DNN_OPENCL:BOOL="0" -DWITH_LAPACK:BOOL="0" -DWITH_IMGCODEC_PFM:BOOL="0" -Dlogluv:BOOL="0" -DINSTALL_PDB_COMPONENT_EXCLUDE_FROM_ALL:BOOL="0" -DBUILD_opencv_ml:BOOL="0" -DOPENCV_ENABLE_MEMALIGN:BOOL="0" -DBUILD_opencv_python_tests:BOOL="0" -DCV_ENABLE_INTRINSICS:BOOL="0" -DOPENCL_FOUND:BOOL="0" -DWITH_OPENCL_D3D11_NV:BOOL="0" -Dnext:BOOL="0" -DBUILD_opencv_gapi:BOOL="0" -DBUILD_opencv_flann:BOOL="0" -DBUILD_TESTS:BOOL="0" -DWITH_DIRECTX:BOOL="0" -DCMAKE_BUILD_TYPE=DEBUG ..
make -j8
cmake -DWITH_EIGEN:BOOL="0" -DWITH_IMGCODEC_HDR:BOOL="0" -DBUILD_opencv_ts:BOOL="0" -DBUILD_opencv_video:BOOL="0" -DWITH_TIFF:BOOL="0" -DBUILD_PACKAGE:BOOL="0" -DBUILD_opencv_features2d:BOOL="0" -DBUILD_ITT:BOOL="0" -Dthunder:BOOL="0" -Dlzw:BOOL="0" -DCV_TRACE:BOOL="0" -DWITH_MSMF:BOOL="0" -DWITH_FFMPEG:BOOL="0" -DWITH_IMGCODEC_PXM:BOOL="0" -DWITH_MSMF_DXVA:BOOL="0" -DCPACK_SOURCE_ZIP:BOOL="0" -Dpackbits:BOOL="0" -DBUILD_opencv_apps:BOOL="0" -DBUILD_PROTOBUF:BOOL="0" -DBUILD_opencv_objdetect:BOOL="0" -DBUILD_IPP_IW:BOOL="0" -DBUILD_opencv_videoio:BOOL="0" -DBUILD_PERF_TESTS:BOOL="0" -Dmdi:BOOL="0" -DWITH_1394:BOOL="0" -DINSTALL_PDB:BOOL="0" -DWITH_OPENCL:BOOL="0" -DM_LIBRARY:FILEPATH="M_LIBRARY-NOTFOUND" -DUSE_WIN32_FILEIO:BOOL="1" -DCPACK_SOURCE_7Z:BOOL="0" -DBUILD_opencv_stitching:BOOL="0" -Dccitt:BOOL="0" -DVIDEOIO_ENABLE_STRICT_PLUGIN_CHECK:BOOL="0" -DWITH_IPP:BOOL="0" -DBUILD_opencv_dnn:BOOL="0" -DWITH_ITT:BOOL="0" -DCPACK_BINARY_NSIS:BOOL="0" -DBUILD_opencv_photo:BOOL="0" -DBUILD_opencv_calib3d:BOOL="0" -DWITH_QUIRC:BOOL="0" -DWITH_WEBP:BOOL="0" -DBUILD_opencv_python_bindings_generator:BOOL="0" -DWITH_PROTOBUF:BOOL="0" -DBUILD_JASPER:BOOL="1" -DWITH_OPENCLAMDBLAS:BOOL="0" -DBUILD_JAVA:BOOL="0" -DWITH_VTK:BOOL="0" -DBUILD_opencv_java_bindings_generator:BOOL="0" -DBUILD_opencv_highgui:BOOL="0" -DWITH_ARITH_DEC:BOOL="0" -DWITH_IMGCODEC_SUNRASTER:BOOL="0" -DWITH_ADE:BOOL="0" -DBUILD_OPENEXR:BOOL="0" -DWITH_OPENEXR:BOOL="0" -DWITH_OPENCLAMDFFT:BOOL="0" -DVIDEOIO_ENABLE_PLUGINS:BOOL="0" -DWITH_DSHOW:BOOL="0" -DOPENCV_DNN_OPENCL:BOOL="0" -DWITH_LAPACK:BOOL="0" -DWITH_IMGCODEC_PFM:BOOL="0" -Dlogluv:BOOL="0" -DINSTALL_PDB_COMPONENT_EXCLUDE_FROM_ALL:BOOL="0" -DBUILD_opencv_ml:BOOL="0" -DOPENCV_ENABLE_MEMALIGN:BOOL="0" -DBUILD_opencv_python_tests:BOOL="0" -DCV_ENABLE_INTRINSICS:BOOL="0" -DOPENCL_FOUND:BOOL="0" -DWITH_OPENCL_D3D11_NV:BOOL="0" -Dnext:BOOL="0" -DBUILD_opencv_gapi:BOOL="0" -DBUILD_opencv_flann:BOOL="0" -DBUILD_TESTS:BOOL="0" -DWITH_DIRECTX:BOOL="0" ..
make -j8
sudo make install
Tell Yadoms where to find OpenCV into the Yadoms file "sources/CMakeListsUserConfig.txt", by adding :
set(OPENCV_ROOT "/Users/yadoms/dev/opencv-<version>")
git clone https://github.com/Yadoms/yadoms.git yadoms
Create the sources/CMakeListsUserConfig.txt (from the CMakeListsUserConfig.sample.txt) and change paths (Boost, Poco, etc...) according to your configuration (don't forget to remove #). Example with Boost : set(BOOST_ROOT "/path/to/boost/boost_1_69_0")
cd yadoms/
cd trunk/
sh cmake_linux.sh
cmake --build projects
Alternatively, if you are using a multi cores CPU, you can increase the build speed by using -j2
commutator (the number corresponds to the jobs running simultaneously)
cd projects
make -j2
cd ..
cd build
./yadoms
Install Eclipse v3.8.x Install "C/C++ developpement tools for Eclipse" package
Open Eclipse Do File->New->Makefile Project With Existing Code Set "Project Name" at "yadoms" Set "Existing Code Location" at "{path_of_yadoms}" Click "Finish"
On the "Project Explorer" window, right-click, "Properties" In "C/C++ Build", select the "Builder settings" tab, change "Build directory" to "${workspace_loc:/yadoms/projects}/"
On the "Project Explorer" window, right-click, "Properties" In "Run/Debug settings", select "yadoms Default", and click on "Edit..." In the "Main" tab : set "C/C++ Application" to "{path_of_yadoms}/builds/yadoms"
On the module(s) you want to debug, active the debug : On the "Project Explorer" window, open "Prokects/CMakeFiles/{module_to_debug}.dir/flags.make" file
- Add "-g" option for CXX_FLAGS variable
- Add "-DDEBUG" for CXX_DEFINES variable
Yadoms -- The ultimate house automation solution