guarantees to find and pickup proper external library dependencies with ease
cmake build system enjoys large community support on many platforms
helps building & generating for mswin visualstudio and other platform IDE project files
autoconf & automake saga are notoriously hard to maintain (compared to cmake)
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
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: