xaxaxa-dev / vna

a simple and cheap vector network analyzer, including support software
https://www.kickstarter.com/projects/1759352588/xavna-a-full-featured-low-cost-two-port-vna
GNU General Public License v2.0
154 stars 46 forks source link

Add CMAKE build support (crossplatform). #17

Closed cbalint13 closed 5 years ago

cbalint13 commented 5 years ago

Dear @xaxaxa & folks,

Proposed patch add CMake build support.

Some advantages:

Since this is the first iteration of proposal, it could be not perfect, but its very easy to fix any possible upcoming glitches.

Thank you very much !


Sample build process:

mkdir BUILD
cd BUILD
cmake ../
-- The C compiler identification is GNU 8.2.1
-- The CXX compiler identification is GNU 8.2.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0") 
--   eigen3 version: 3.3.5
--   eigen3 includes: /usr/include/eigen3
-- Found FFTW3 (3.3.8)
--   fftw3 includes: /usr/include
--   fftw3 libraries: fftw3
-- Found qt5 version: 5.11.2
--   qt5 charts dir: /usr/lib64/cmake/Qt5Charts
-- Configuring done
-- Generating done
-- Build files have been written to: /home/cbalint/work/GITHUB/vna/BUILD

$ make -j4
Scanning dependencies of target xavna_mock_ui_autogen
Scanning dependencies of target xavna
[  3%] Automatic MOC and UIC for target xavna_mock_ui
[ 11%] Building CXX object libxavna/CMakeFiles/xavna.dir/xavna_cpp.C.o
[ 11%] Building CXX object libxavna/CMakeFiles/xavna.dir/xavna.C.o
[ 14%] Building CXX object libxavna/CMakeFiles/xavna.dir/calibration.C.o
[ 14%] Built target xavna_mock_ui_autogen
Scanning dependencies of target xavna_mock_ui
[ 18%] Building CXX object libxavna/xavna_mock_ui/CMakeFiles/xavna_mock_ui.dir/xavna_mock_ui.C.o
[ 22%] Building CXX object libxavna/CMakeFiles/xavna.dir/platform_abstraction.C.o
[ 25%] Building CXX object libxavna/xavna_mock_ui/CMakeFiles/xavna_mock_ui.dir/xavna_mock.C.o
[ 29%] Building CXX object libxavna/xavna_mock_ui/CMakeFiles/xavna_mock_ui.dir/xavna_mock_ui_dialog.C.o
[ 33%] Building CXX object libxavna/xavna_mock_ui/CMakeFiles/xavna_mock_ui.dir/xavna_mock_ui_autogen/mocs_compilation.cpp.o
[ 37%] Linking CXX shared library libxavna.so
[ 40%] Linking CXX shared library libxavna_mock_ui.so
[ 40%] Built target xavna
[ 40%] Built target xavna_mock_ui
Scanning dependencies of target vna_qt_autogen
[ 44%] Automatic MOC and UIC for target vna_qt
[ 44%] Built target vna_qt_autogen
Scanning dependencies of target vna_qt
[ 48%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/polarview.C.o
[ 51%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/mainwindow.C.o
[ 55%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/main.C.o
[ 59%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/markerslider.C.o
[ 62%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/impedancedisplay.C.o
[ 66%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/frequencydialog.C.o
[ 70%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/graphpanel.C.o
[ 74%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/configureviewdialog.C.o
[ 77%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/touchstone.C.o
[ 81%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/calkitsettingsdialog.C.o
[ 85%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/calkitsettings.C.o
[ 88%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/networkview.C.o
[ 92%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/dtfwindow.C.o
[ 96%] Building CXX object vna_qt/CMakeFiles/vna_qt.dir/vna_qt_autogen/mocs_compilation.cpp.o
[100%] Linking CXX executable vna_qt
[100%] Built target vna_qt