@@ -0,0 +1,39 | |||
|
1 | ||
|
2 | app_moc_headers = [ | |
|
3 | 'include/MainWindow.h' | |
|
4 | ] | |
|
5 | ||
|
6 | app_ui_files = [ | |
|
7 | 'ui/MainWindow.ui' | |
|
8 | ] | |
|
9 | ||
|
10 | app_qresources = ['resources/qlopapp.qrc'] | |
|
11 | ||
|
12 | app_moc_files = qt5.preprocess(moc_headers : app_moc_headers, | |
|
13 | ui_files : app_ui_files, | |
|
14 | qresources : app_qresources) | |
|
15 | ||
|
16 | app_sources = [ | |
|
17 | 'src/Main.cpp', | |
|
18 | 'src/MainWindow.cpp' | |
|
19 | ] | |
|
20 | ||
|
21 | app_inc = include_directories(['include']) | |
|
22 | ||
|
23 | if host_machine.system()=='windows' or build_machine.system()=='windows' | |
|
24 | winmod = import('windows') | |
|
25 | rc = winmod.compile_resources('resources/qlopapp.rc') | |
|
26 | else | |
|
27 | rc = [] | |
|
28 | endif | |
|
29 | ||
|
30 | sciqlop_app = executable('sciqlop', | |
|
31 | app_sources, | |
|
32 | app_moc_files, | |
|
33 | rc, | |
|
34 | link_with : [sciqlop_core, sciqlop_gui], | |
|
35 | include_directories : [gui_inc, core_inc, app_inc], | |
|
36 | dependencies : [qt5core, qt5printsupport, qt5gui, qt5widgets, qt5network], | |
|
37 | install : true | |
|
38 | ) | |
|
39 |
@@ -0,0 +1,1 | |||
|
1 | IDI_ICON1 ICON DISCARDABLE "sciqlop.ico" |
|
1 | NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,22 | |||
|
1 | <?xml version="1.0" encoding="UTF-8"?> | |
|
2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
|
3 | <plist version="1.0"> | |
|
4 | <dict> | |
|
5 | <key>NSPrincipalClass</key> | |
|
6 | <string>NSApplication</string> | |
|
7 | <key>CFBundleIconFile</key> | |
|
8 | <string>sciqlopLOGO.icns</string> | |
|
9 | <key>CFBundlePackageType</key> | |
|
10 | <string>APPL</string> | |
|
11 | <key>CFBundleGetInfoString</key> | |
|
12 | <string>Created by Qt/QMake</string> | |
|
13 | <key>CFBundleSignature</key> | |
|
14 | <string>????</string> | |
|
15 | <key>CFBundleExecutable</key> | |
|
16 | <string>SciQLOP</string> | |
|
17 | <key>CFBundleIdentifier</key> | |
|
18 | <string>com.lpp.SciQLOP</string> | |
|
19 | <key>NOTE</key> | |
|
20 | <string>This file was generated by Qt/QMake.</string> | |
|
21 | </dict> | |
|
22 | </plist> |
@@ -0,0 +1,8 | |||
|
1 | #!/bin/bash | |
|
2 | ||
|
3 | mkdir build | |
|
4 | meson --prefix=/tmp/SciQLOP.app --bindir=Contents/MacOS build | |
|
5 | cd build | |
|
6 | ninja | |
|
7 | ninja install | |
|
8 |
@@ -0,0 +1,11 | |||
|
1 | #!/bin/bash | |
|
2 | ||
|
3 | mkdir -p ${MESON_INSTALL_PREFIX}/Contents/Frameworks | |
|
4 | mv ${MESON_INSTALL_PREFIX}/lib/*plugin* ${MESON_INSTALL_PREFIX}/Contents/MacOS | |
|
5 | macdeployqt ${MESON_INSTALL_PREFIX} -verbose=3 | |
|
6 | install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore /tmp/SciQLOP.app/Contents/MacOS/sciqlop | |
|
7 | install_name_tool -change @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport @executable_path/../Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport /tmp/SciQLOP.app/Contents/MacOS/sciqlop | |
|
8 | install_name_tool -change @rpath/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui /tmp/SciQLOP.app/Contents/MacOS/sciqlop | |
|
9 | install_name_tool -change @rpath/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets /tmp/SciQLOP.app/Contents/MacOS/sciqlop | |
|
10 | install_name_tool -change @rpath/QtNetwork.framework/Versions/5/QtNetwork @executable_path/../Frameworks/QtNetwork.framework/Versions/5/QtNetwork /tmp/SciQLOP.app/Contents/MacOS/sciqlop | |
|
11 |
|
1 | NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,8 | |||
|
1 | #!/bin/bash | |
|
2 | ||
|
3 | mkdir build | |
|
4 | meson --prefix=/tmp/SciQLOP --cross-file build_cfg/windows/cross_fedora_win64.txt build | |
|
5 | cd build | |
|
6 | ninja | |
|
7 | ninja install | |
|
8 |
@@ -0,0 +1,18 | |||
|
1 | [binaries] | |
|
2 | c = 'x86_64-w64-mingw32-gcc' | |
|
3 | cpp = 'x86_64-w64-mingw32-g++' | |
|
4 | ar = 'x86_64-w64-mingw32-ar' | |
|
5 | strip = 'x86_64-w64-mingw32-strip' | |
|
6 | qmake = 'mingw64-qmake-qt5' | |
|
7 | qmake-qt5 = 'mingw64-qmake-qt5' | |
|
8 | moc-qt5 = '/usr/x86_64-w64-mingw32/bin/qt5/moc' | |
|
9 | windres = 'x86_64-w64-mingw32-windres' | |
|
10 | pkgconfig = 'mingw64-pkg-config' | |
|
11 | exe_wrapper = 'wine' # A command used to run generated executables. | |
|
12 | ||
|
13 | [host_machine] | |
|
14 | system = 'windows' | |
|
15 | cpu_family = 'x86' | |
|
16 | cpu = 'x86_64' | |
|
17 | endian = 'little' | |
|
18 |
@@ -0,0 +1,26 | |||
|
1 | #!/bin/bash | |
|
2 | ||
|
3 | mkdir -p ${MESON_INSTALL_PREFIX}/plugins | |
|
4 | mv ${MESON_INSTALL_PREFIX}/bin/*plugin*.dll ${MESON_INSTALL_PREFIX}/plugins/ | |
|
5 | mv ${MESON_INSTALL_PREFIX}/lib64/*.dll ${MESON_INSTALL_PREFIX}/ | |
|
6 | mv ${MESON_INSTALL_PREFIX}/bin/* ${MESON_INSTALL_PREFIX}/ | |
|
7 | ||
|
8 | cp /usr/x86_64-w64-mingw32/sys-root/mingw/lib/qt5/plugins/platforms/qwindows.dll ${MESON_INSTALL_PREFIX}/ | |
|
9 | cp /usr/x86_64-w64-mingw32/sys-root/mingw/lib/qt5/plugins/imageformats/*.dll ${MESON_INSTALL_PREFIX}/ | |
|
10 | ||
|
11 | peldd ${MESON_INSTALL_PREFIX}/sciqlop.exe -a -w libsciqlopcore.dll -w libsciqlopgui.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
12 | peldd ${MESON_INSTALL_PREFIX}/libsciqlopcore.dll -a -w libsciqlopgui.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
13 | peldd ${MESON_INSTALL_PREFIX}/libsciqlopgui.dll -a -w libsciqlopcore.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
14 | peldd ${MESON_INSTALL_PREFIX}/qwindows.dll -a -w libsciqlopcore.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
15 | ||
|
16 | peldd ${MESON_INSTALL_PREFIX}/qjp2.dll -a -w libsciqlopcore.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
17 | peldd ${MESON_INSTALL_PREFIX}/qjpeg.dll -a -w libsciqlopcore.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
18 | peldd ${MESON_INSTALL_PREFIX}/qsvg.dll -a -w libsciqlopcore.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
19 | peldd ${MESON_INSTALL_PREFIX}/qtiff.dll -a -w libsciqlopcore.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
20 | peldd ${MESON_INSTALL_PREFIX}/qwebp.dll -a -w libsciqlopcore.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
21 | peldd ${MESON_INSTALL_PREFIX}/plugins/libamdaplugin.dll -a -w libsciqlopgui.dll -w libsciqlopcore.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
22 | peldd ${MESON_INSTALL_PREFIX}/plugins/libmockplugin.dll -a -w libsciqlopgui.dll -w libsciqlopcore.dll -w dwmapi.dll -w UxTheme.dll -w CRYPT32.dll -w DNSAPI.dll -w IPHLPAPI.DLL -w comdlg32.dll -w WINSPOOL.DRV -w IMM32.dll | xargs cp -t ${MESON_INSTALL_PREFIX}/ || true | |
|
23 | ||
|
24 | rm ${MESON_INSTALL_PREFIX}/bin/*plugin*.dll | |
|
25 | ||
|
26 | rm -r ${MESON_INSTALL_PREFIX}/bin ${MESON_INSTALL_PREFIX}/lib64 |
@@ -0,0 +1,55 | |||
|
1 | ||
|
2 | core_moc_headers = [ | |
|
3 | 'include/Data/IDataProvider.h', | |
|
4 | 'include/DataSource/DataSourceController.h', | |
|
5 | 'include/DataSource/DataSourceItemAction.h', | |
|
6 | 'include/Network/NetworkController.h', | |
|
7 | 'include/Time/TimeController.h', | |
|
8 | 'include/Variable/Variable.h', | |
|
9 | 'include/Variable/VariableCacheController.h', | |
|
10 | 'include/Variable/VariableController.h', | |
|
11 | 'include/Variable/VariableAcquisitionWorker.h', | |
|
12 | 'include/Variable/VariableCacheStrategy.h', | |
|
13 | 'include/Variable/VariableSynchronizationGroup.h', | |
|
14 | 'include/Variable/VariableModel.h', | |
|
15 | 'include/Visualization/VisualizationController.h' | |
|
16 | ] | |
|
17 | ||
|
18 | ||
|
19 | core_moc_files = qt5.preprocess(moc_headers : core_moc_headers) | |
|
20 | ||
|
21 | core_sources = [ | |
|
22 | 'src/Common/DateUtils.cpp', | |
|
23 | 'src/Data/ScalarSeries.cpp', | |
|
24 | 'src/Data/DataSeriesIterator.cpp', | |
|
25 | 'src/Data/VectorSeries.cpp', | |
|
26 | 'src/DataSource/DataSourceController.cpp', | |
|
27 | 'src/DataSource/DataSourceItem.cpp', | |
|
28 | 'src/DataSource/DataSourceItemAction.cpp', | |
|
29 | 'src/Network/NetworkController.cpp', | |
|
30 | 'src/Plugin/PluginManager.cpp', | |
|
31 | 'src/Settings/SqpSettingsDefs.cpp', | |
|
32 | 'src/Time/TimeController.cpp', | |
|
33 | 'src/Variable/Variable.cpp', | |
|
34 | 'src/Variable/VariableCacheController.cpp', | |
|
35 | 'src/Variable/VariableController.cpp', | |
|
36 | 'src/Variable/VariableAcquisitionWorker.cpp', | |
|
37 | 'src/Variable/VariableCacheStrategy.cpp', | |
|
38 | 'src/Variable/VariableSynchronizationGroup.cpp', | |
|
39 | 'src/Variable/VariableModel.cpp', | |
|
40 | 'src/Visualization/VisualizationController.cpp' | |
|
41 | ] | |
|
42 | ||
|
43 | core_inc = include_directories(['include', '../plugin/include']) | |
|
44 | ||
|
45 | sciqlop_core = library('sciqlopcore', | |
|
46 | core_sources, | |
|
47 | core_moc_files, | |
|
48 | cpp_args : '-DCORE_LIB', | |
|
49 | include_directories : core_inc, | |
|
50 | dependencies : [qt5core, qt5widgets, qt5network], | |
|
51 | install : true | |
|
52 | ) | |
|
53 | ||
|
54 | subdir('tests') | |
|
55 |
@@ -0,0 +1,20 | |||
|
1 | ||
|
2 | ||
|
3 | tests = [ | |
|
4 | [['Data/TestDataSeries.cpp'],['test_data'],['DataSeries test']], | |
|
5 | [['Data/TestOneDimArrayData.cpp'],['test_1d'],['One Dim Array test']], | |
|
6 | [['Data/TestTwoDimArrayData.cpp'],['test_2d'],['Two Dim Array test']], | |
|
7 | [['DataSource/TestDataSourceController.cpp'],['test_data_source'],['DataSourceController test']], | |
|
8 | [['Variable/TestVariableCacheController.cpp'],['test_variable_cache'],['VariableCacheController test']], | |
|
9 | [['Variable/TestVariable.cpp'],['test_variable'],['Variable test']] | |
|
10 | ] | |
|
11 | ||
|
12 | foreach unit_test : tests | |
|
13 | test_moc_files = qt5.preprocess(moc_sources : unit_test[0]) | |
|
14 | test_exe = executable(unit_test[1],unit_test[0] , test_moc_files, | |
|
15 | link_with : sciqlop_core, | |
|
16 | include_directories : core_inc, | |
|
17 | dependencies : [qt5core, qt5widgets, qt5network,qt5test]) | |
|
18 | test(unit_test[2], test_exe) | |
|
19 | endforeach | |
|
20 |
@@ -0,0 +1,72 | |||
|
1 | ||
|
2 | gui_moc_headers = [ | |
|
3 | 'include/DataSource/DataSourceWidget.h', | |
|
4 | 'include/Settings/SqpSettingsDialog.h', | |
|
5 | 'include/Settings/SqpSettingsGeneralWidget.h', | |
|
6 | 'include/SidePane/SqpSidePane.h', | |
|
7 | 'include/SqpApplication.h', | |
|
8 | 'include/TimeWidget/TimeWidget.h', | |
|
9 | 'include/Variable/VariableInspectorWidget.h', | |
|
10 | 'include/Visualization/qcustomplot.h', | |
|
11 | 'include/Visualization/VisualizationGraphWidget.h', | |
|
12 | 'include/Visualization/VisualizationTabWidget.h', | |
|
13 | 'include/Visualization/VisualizationWidget.h', | |
|
14 | 'include/Visualization/VisualizationZoneWidget.h' | |
|
15 | ] | |
|
16 | ||
|
17 | gui_ui_files = [ | |
|
18 | 'ui/DataSource/DataSourceWidget.ui', | |
|
19 | 'ui/Settings/SqpSettingsDialog.ui', | |
|
20 | 'ui/Settings/SqpSettingsGeneralWidget.ui', | |
|
21 | 'ui/SidePane/SqpSidePane.ui', | |
|
22 | 'ui/TimeWidget/TimeWidget.ui', | |
|
23 | 'ui/Variable/VariableInspectorWidget.ui', | |
|
24 | 'ui/Variable/VariableMenuHeaderWidget.ui', | |
|
25 | 'ui/Visualization/VisualizationGraphWidget.ui', | |
|
26 | 'ui/Visualization/VisualizationTabWidget.ui', | |
|
27 | 'ui/Visualization/VisualizationWidget.ui', | |
|
28 | 'ui/Visualization/VisualizationZoneWidget.ui' | |
|
29 | ] | |
|
30 | ||
|
31 | gui_qresources = ['resources/sqpguiresources.qrc'] | |
|
32 | ||
|
33 | gui_moc_files = qt5.preprocess(moc_headers : gui_moc_headers, | |
|
34 | ui_files : gui_ui_files, | |
|
35 | qresources : gui_qresources) | |
|
36 | ||
|
37 | gui_sources = [ | |
|
38 | 'src/SqpApplication.cpp', | |
|
39 | 'src/Common/ColorUtils.cpp', | |
|
40 | 'src/DataSource/DataSourceTreeWidgetItem.cpp', | |
|
41 | 'src/DataSource/DataSourceTreeWidgetHelper.cpp', | |
|
42 | 'src/DataSource/DataSourceWidget.cpp', | |
|
43 | 'src/Settings/SqpSettingsDialog.cpp', | |
|
44 | 'src/Settings/SqpSettingsGeneralWidget.cpp', | |
|
45 | 'src/SidePane/SqpSidePane.cpp', | |
|
46 | 'src/TimeWidget/TimeWidget.cpp', | |
|
47 | 'src/Variable/VariableInspectorWidget.cpp', | |
|
48 | 'src/Variable/VariableMenuHeaderWidget.cpp', | |
|
49 | 'src/Visualization/VisualizationGraphHelper.cpp', | |
|
50 | 'src/Visualization/VisualizationGraphRenderingDelegate.cpp', | |
|
51 | 'src/Visualization/VisualizationGraphWidget.cpp', | |
|
52 | 'src/Visualization/VisualizationTabWidget.cpp', | |
|
53 | 'src/Visualization/VisualizationWidget.cpp', | |
|
54 | 'src/Visualization/VisualizationZoneWidget.cpp', | |
|
55 | 'src/Visualization/qcustomplot.cpp', | |
|
56 | 'src/Visualization/operations/GenerateVariableMenuOperation.cpp', | |
|
57 | 'src/Visualization/operations/MenuBuilder.cpp', | |
|
58 | 'src/Visualization/operations/RemoveVariableOperation.cpp', | |
|
59 | 'src/Visualization/operations/RescaleAxeOperation.cpp' | |
|
60 | ] | |
|
61 | ||
|
62 | gui_inc = include_directories(['include']) | |
|
63 | ||
|
64 | sciqlop_gui = library('sciqlopgui', | |
|
65 | gui_sources, | |
|
66 | gui_moc_files, | |
|
67 | link_with : sciqlop_core, | |
|
68 | include_directories : [gui_inc, core_inc], | |
|
69 | dependencies : [qt5core, qt5printsupport, qt5gui, qt5widgets, qt5network], | |
|
70 | install : true | |
|
71 | ) | |
|
72 |
@@ -0,0 +1,36 | |||
|
1 | project('SciQLOP', 'cpp',default_options : ['cpp_std=c++14']) | |
|
2 | ||
|
3 | qt5 = import('qt5') | |
|
4 | qt5core = dependency('qt5', modules : 'Core') | |
|
5 | qt5widgets = dependency('qt5', modules : 'Widgets') | |
|
6 | qt5gui = dependency('qt5', modules : 'Gui') | |
|
7 | qt5svg = dependency('qt5', modules : 'Svg') | |
|
8 | qt5xml = dependency('qt5', modules : 'Xml') | |
|
9 | qt5network = dependency('qt5', modules : 'Network') | |
|
10 | qt5printsupport = dependency('qt5', modules : 'PrintSupport') | |
|
11 | qt5test = dependency('qt5', modules : 'Test') | |
|
12 | ||
|
13 | moc = find_program('moc','moc-qt5') | |
|
14 | ||
|
15 | subdir('core') | |
|
16 | subdir('gui') | |
|
17 | subdir('app') | |
|
18 | subdir('plugins') | |
|
19 | ||
|
20 | if build_machine.system()=='darwin' | |
|
21 | install_data('build_cfg/mac/sciqlopLOGO.icns', install_dir : 'Contents/Resources') | |
|
22 | install_data('build_cfg/mac/Info.plist', install_dir : 'Contents') | |
|
23 | meson.add_install_script('build_cfg/mac/install_script.sh') | |
|
24 | elif host_machine.system()=='windows' | |
|
25 | meson.add_install_script('build_cfg/windows/install_script.sh') | |
|
26 | endif | |
|
27 | ||
|
28 | cppcheck = find_program('cppcheck', required : false) | |
|
29 | ||
|
30 | if cppcheck.found() | |
|
31 | run_target('cppcheck', | |
|
32 | command : [cppcheck, '--enable=all', | |
|
33 | '--project=' + join_paths(meson.build_root(), 'compile_commands.json')], | |
|
34 | build_by_default : true | |
|
35 | ) | |
|
36 | endif |
@@ -0,0 +1,61 | |||
|
1 | ||
|
2 | amdaplugin_moc_headers = [ | |
|
3 | 'include/AmdaPlugin.h' | |
|
4 | ] | |
|
5 | ||
|
6 | amdaplugin_sources = [ | |
|
7 | 'src/AmdaDefs.cpp', | |
|
8 | 'src/AmdaParser.cpp', | |
|
9 | 'src/AmdaPlugin.cpp', | |
|
10 | 'src/AmdaProvider.cpp', | |
|
11 | 'src/AmdaResultParser.cpp' | |
|
12 | ] | |
|
13 | ||
|
14 | amdaplugin_ui_files = [] | |
|
15 | amdaplugin_resources_files = [ | |
|
16 | 'resources/amdaresources.qrc' | |
|
17 | ] | |
|
18 | ||
|
19 | amdaplugin_inc = include_directories(['include', '../../plugin/include']) | |
|
20 | ||
|
21 | gen = generator(moc, | |
|
22 | output : 'moc_@BASENAME@.cpp', | |
|
23 | arguments : ['@INPUT@', | |
|
24 | '-DPLUGIN_JSON_FILE_PATH="'+meson.source_root()+'/plugins/amda/resources/amda.json"', | |
|
25 | '-I', meson.current_source_dir()+'/include', | |
|
26 | '-I', meson.current_source_dir()+'/../../plugin/include', | |
|
27 | '-o', '@OUTPUT@']) | |
|
28 | ||
|
29 | amdaplugin_moc_plugin_files = gen.process(amdaplugin_moc_headers) | |
|
30 | ||
|
31 | amdaplugin_moc_files = qt5.preprocess( | |
|
32 | ui_files : amdaplugin_ui_files, | |
|
33 | qresources : amdaplugin_resources_files) | |
|
34 | ||
|
35 | sciqlop_amdaplugin = library('amdaplugin', | |
|
36 | amdaplugin_sources, | |
|
37 | amdaplugin_moc_files, | |
|
38 | amdaplugin_moc_plugin_files, | |
|
39 | cpp_args : '-DAMDA_LIB', | |
|
40 | link_with : [sciqlop_core, sciqlop_gui], | |
|
41 | include_directories : [amdaplugin_inc, core_inc, gui_inc], | |
|
42 | dependencies : [qt5core, qt5gui, qt5widgets, qt5network], | |
|
43 | install : true | |
|
44 | ) | |
|
45 | ||
|
46 | ||
|
47 | tests = [ | |
|
48 | [['tests/TestAmdaParser.cpp'],['test_amda_parser'],['AMDA parser test']], | |
|
49 | [['tests/TestAmdaResultParser.cpp'],['test_amda_result_parser'],['AMDA result parser test']], | |
|
50 | [['tests/TestAmdaAcquisition.cpp'],['test_amda_acquisition'],['AMDA Acquisition test']] | |
|
51 | ] | |
|
52 | ||
|
53 | foreach unit_test : tests | |
|
54 | test_moc_files = qt5.preprocess(moc_sources : unit_test[0]) | |
|
55 | test_exe = executable(unit_test[1],unit_test[0] , test_moc_files, | |
|
56 | link_with : [sciqlop_core, sciqlop_amdaplugin, sciqlop_gui], | |
|
57 | include_directories : [core_inc, amdaplugin_inc, gui_inc], | |
|
58 | cpp_args : ['-DAMDA_TESTS_RESOURCES_DIR="'+meson.current_source_dir()+'/tests-resources"'], | |
|
59 | dependencies : [qt5core, qt5widgets, qt5network,qt5test]) | |
|
60 | test(unit_test[2], test_exe,timeout: 3 * 60) | |
|
61 | endforeach |
@@ -0,0 +1,33 | |||
|
1 | ||
|
2 | mockplugin_moc_headers = [ | |
|
3 | 'include/MockPlugin.h' | |
|
4 | ] | |
|
5 | ||
|
6 | mockplugin_sources = [ | |
|
7 | 'src/CosinusProvider.cpp', | |
|
8 | 'src/MockPlugin.cpp' | |
|
9 | ] | |
|
10 | ||
|
11 | mockplugin_inc = include_directories(['include', '../../plugin/include']) | |
|
12 | ||
|
13 | ||
|
14 | gen = generator(moc, | |
|
15 | output : 'moc_@BASENAME@.cpp', | |
|
16 | arguments : ['@INPUT@', | |
|
17 | '-DPLUGIN_JSON_FILE_PATH="'+meson.source_root()+'/plugins/mockplugin/resources/mockplugin.json"', | |
|
18 | '-I', meson.current_source_dir()+'/include', | |
|
19 | '-I', meson.current_source_dir()+'/../../plugin/include', | |
|
20 | '-o', '@OUTPUT@']) | |
|
21 | ||
|
22 | mockplugin_moc_files = gen.process(mockplugin_moc_headers) | |
|
23 | ||
|
24 | sciqlop_mockplugin = library('mockplugin', | |
|
25 | mockplugin_sources, | |
|
26 | mockplugin_moc_files, | |
|
27 | cpp_args : '-DMOCKPLUGIN_LIB', | |
|
28 | link_with : [sciqlop_core, sciqlop_gui], | |
|
29 | include_directories : [mockplugin_inc, core_inc, gui_inc], | |
|
30 | dependencies : [qt5core, qt5gui, qt5widgets, qt5network], | |
|
31 | install : true | |
|
32 | ) | |
|
33 |
@@ -1,121 +1,122 | |||
|
1 | 1 | #ifndef SCIQLOP_VARIABLECONTROLLER_H |
|
2 | 2 | #define SCIQLOP_VARIABLECONTROLLER_H |
|
3 | 3 | |
|
4 | 4 | #include "CoreGlobal.h" |
|
5 | 5 | |
|
6 | 6 | #include <Data/AcquisitionDataPacket.h> |
|
7 | 7 | #include <Data/SqpRange.h> |
|
8 | 8 | |
|
9 | 9 | #include <QLoggingCategory> |
|
10 | 10 | #include <QObject> |
|
11 | #include <QUuid> | |
|
11 | 12 | |
|
12 | 13 | #include <Common/spimpl.h> |
|
13 | 14 | |
|
14 | 15 | class IDataProvider; |
|
15 | 16 | class QItemSelectionModel; |
|
16 | 17 | class TimeController; |
|
17 | 18 | class Variable; |
|
18 | 19 | class VariableModel; |
|
19 | 20 | |
|
20 | 21 | Q_DECLARE_LOGGING_CATEGORY(LOG_VariableController) |
|
21 | 22 | |
|
22 | 23 | |
|
23 | 24 | /** |
|
24 | 25 | * Possible types of zoom operation |
|
25 | 26 | */ |
|
26 | 27 | enum class AcquisitionZoomType { ZoomOut, ZoomIn, PanRight, PanLeft, Unknown }; |
|
27 | 28 | |
|
28 | 29 | |
|
29 | 30 | /** |
|
30 | 31 | * @brief The VariableController class aims to handle the variables in SciQlop. |
|
31 | 32 | */ |
|
32 | 33 | class SCIQLOP_CORE_EXPORT VariableController : public QObject { |
|
33 | 34 | Q_OBJECT |
|
34 | 35 | public: |
|
35 | 36 | explicit VariableController(QObject *parent = 0); |
|
36 | 37 | virtual ~VariableController(); |
|
37 | 38 | |
|
38 | 39 | VariableModel *variableModel() noexcept; |
|
39 | 40 | QItemSelectionModel *variableSelectionModel() noexcept; |
|
40 | 41 | |
|
41 | 42 | void setTimeController(TimeController *timeController) noexcept; |
|
42 | 43 | |
|
43 | 44 | /** |
|
44 | 45 | * Deletes from the controller the variable passed in parameter. |
|
45 | 46 | * |
|
46 | 47 | * Delete a variable includes: |
|
47 | 48 | * - the deletion of the various references to the variable in SciQlop |
|
48 | 49 | * - the deletion of the model variable |
|
49 | 50 | * - the deletion of the provider associated with the variable |
|
50 | 51 | * - removing the cache associated with the variable |
|
51 | 52 | * |
|
52 | 53 | * @param variable the variable to delete from the controller. |
|
53 | 54 | */ |
|
54 | 55 | void deleteVariable(std::shared_ptr<Variable> variable) noexcept; |
|
55 | 56 | |
|
56 | 57 | /** |
|
57 | 58 | * Deletes from the controller the variables passed in parameter. |
|
58 | 59 | * @param variables the variables to delete from the controller. |
|
59 | 60 | * @sa deleteVariable() |
|
60 | 61 | */ |
|
61 | 62 | void deleteVariables(const QVector<std::shared_ptr<Variable> > &variables) noexcept; |
|
62 | 63 | |
|
63 | 64 | /** |
|
64 | 65 | * @brief abort the variable retrieve data progression |
|
65 | 66 | */ |
|
66 | 67 | void abortProgress(std::shared_ptr<Variable> variable); |
|
67 | 68 | |
|
68 | 69 | static AcquisitionZoomType getZoomType(const SqpRange &range, const SqpRange &oldRange); |
|
69 | 70 | signals: |
|
70 | 71 | /// Signal emitted when a variable is about to be deleted from the controller |
|
71 | 72 | void variableAboutToBeDeleted(std::shared_ptr<Variable> variable); |
|
72 | 73 | |
|
73 | 74 | /// Signal emitted when a data acquisition is requested on a range for a variable |
|
74 | 75 | void rangeChanged(std::shared_ptr<Variable> variable, const SqpRange &range); |
|
75 | 76 | |
|
76 | 77 | /// Signal emitted when a sub range of the cacheRange of the variable can be displayed |
|
77 | 78 | void updateVarDisplaying(std::shared_ptr<Variable> variable, const SqpRange &range); |
|
78 | 79 | |
|
79 | 80 | public slots: |
|
80 | 81 | /// Request the data loading of the variable whithin range |
|
81 | 82 | void onRequestDataLoading(QVector<std::shared_ptr<Variable> > variables, const SqpRange &range, |
|
82 | 83 | const SqpRange &oldRange, bool synchronise); |
|
83 | 84 | /** |
|
84 | 85 | * Creates a new variable and adds it to the model |
|
85 | 86 | * @param name the name of the new variable |
|
86 | 87 | * @param metadata the metadata of the new variable |
|
87 | 88 | * @param provider the data provider for the new variable |
|
88 | 89 | * @return the pointer to the new variable or nullptr if the creation failed |
|
89 | 90 | */ |
|
90 | 91 | std::shared_ptr<Variable> createVariable(const QString &name, const QVariantHash &metadata, |
|
91 | 92 | std::shared_ptr<IDataProvider> provider) noexcept; |
|
92 | 93 | |
|
93 | 94 | /// Update the temporal parameters of every selected variable to dateTime |
|
94 | 95 | void onDateTimeOnSelection(const SqpRange &dateTime); |
|
95 | 96 | |
|
96 | 97 | |
|
97 | 98 | void onDataProvided(QUuid vIdentifier, const SqpRange &rangeRequested, |
|
98 | 99 | const SqpRange &cacheRangeRequested, |
|
99 | 100 | QVector<AcquisitionDataPacket> dataAcquired); |
|
100 | 101 | |
|
101 | 102 | void onVariableRetrieveDataInProgress(QUuid identifier, double progress); |
|
102 | 103 | |
|
103 | 104 | /// Cancel the current request for the variable |
|
104 | 105 | void onAbortProgressRequested(std::shared_ptr<Variable> variable); |
|
105 | 106 | |
|
106 | 107 | /// synchronization group methods |
|
107 | 108 | void onAddSynchronizationGroupId(QUuid synchronizationGroupId); |
|
108 | 109 | void onRemoveSynchronizationGroupId(QUuid synchronizationGroupId); |
|
109 | 110 | void onAddSynchronized(std::shared_ptr<Variable> variable, QUuid synchronizationGroupId); |
|
110 | 111 | |
|
111 | 112 | void initialize(); |
|
112 | 113 | void finalize(); |
|
113 | 114 | |
|
114 | 115 | private: |
|
115 | 116 | void waitForFinish(); |
|
116 | 117 | |
|
117 | 118 | class VariableControllerPrivate; |
|
118 | 119 | spimpl::unique_impl_ptr<VariableControllerPrivate> impl; |
|
119 | 120 | }; |
|
120 | 121 | |
|
121 | 122 | #endif // SCIQLOP_VARIABLECONTROLLER_H |
@@ -1,25 +1,29 | |||
|
1 | 1 | #ifndef SCIQLOP_AMDAPLUGIN_H |
|
2 | 2 | #define SCIQLOP_AMDAPLUGIN_H |
|
3 | 3 | |
|
4 | 4 | #include "AmdaGlobal.h" |
|
5 | 5 | |
|
6 | 6 | #include <Plugin/IPlugin.h> |
|
7 | 7 | |
|
8 | 8 | #include <QLoggingCategory> |
|
9 | 9 | |
|
10 | 10 | #include <memory> |
|
11 | 11 | |
|
12 | 12 | Q_DECLARE_LOGGING_CATEGORY(LOG_AmdaPlugin) |
|
13 | 13 | |
|
14 | #ifndef PLUGIN_JSON_FILE_PATH | |
|
15 | #define PLUGIN_JSON_FILE_PATH "mockplugin.json" | |
|
16 | #endif | |
|
17 | ||
|
14 | 18 | class DataSourceItem; |
|
15 | 19 | |
|
16 | 20 | class SCIQLOP_AMDA_EXPORT AmdaPlugin : public QObject, public IPlugin { |
|
17 | 21 | Q_OBJECT |
|
18 | 22 | Q_INTERFACES(IPlugin) |
|
19 |
Q_PLUGIN_METADATA(IID "sciqlop.plugin.IPlugin" FILE |
|
|
23 | Q_PLUGIN_METADATA(IID "sciqlop.plugin.IPlugin" FILE PLUGIN_JSON_FILE_PATH) | |
|
20 | 24 | public: |
|
21 | 25 | /// @sa IPlugin::initialize() |
|
22 | 26 | void initialize() override; |
|
23 | 27 | }; |
|
24 | 28 | |
|
25 | 29 | #endif // SCIQLOP_AMDAPLUGIN_H |
@@ -1,25 +1,29 | |||
|
1 | 1 | #ifndef SCIQLOP_MOCKPLUGIN_H |
|
2 | 2 | #define SCIQLOP_MOCKPLUGIN_H |
|
3 | 3 | |
|
4 | 4 | #include "MockPluginGlobal.h" |
|
5 | 5 | |
|
6 | 6 | #include <Plugin/IPlugin.h> |
|
7 | 7 | |
|
8 | 8 | #include <QLoggingCategory> |
|
9 | 9 | |
|
10 | 10 | #include <memory> |
|
11 | 11 | |
|
12 | #ifndef PLUGIN_JSON_FILE_PATH | |
|
13 | #define PLUGIN_JSON_FILE_PATH "mockplugin.json" | |
|
14 | #endif | |
|
15 | ||
|
12 | 16 | Q_DECLARE_LOGGING_CATEGORY(LOG_MockPlugin) |
|
13 | 17 | |
|
14 | 18 | class DataSourceItem; |
|
15 | 19 | |
|
16 | 20 | class SCIQLOP_MOCKPLUGIN_EXPORT MockPlugin : public QObject, public IPlugin { |
|
17 | 21 | Q_OBJECT |
|
18 | 22 | Q_INTERFACES(IPlugin) |
|
19 |
Q_PLUGIN_METADATA(IID "sciqlop.plugin.IPlugin" FILE |
|
|
23 | Q_PLUGIN_METADATA(IID "sciqlop.plugin.IPlugin" FILE PLUGIN_JSON_FILE_PATH) | |
|
20 | 24 | public: |
|
21 | 25 | /// @sa IPlugin::initialize() |
|
22 | 26 | void initialize() override; |
|
23 | 27 | }; |
|
24 | 28 | |
|
25 | 29 | #endif // SCIQLOP_MOCKPLUGIN_H |
General Comments 0
You need to be logged in to leave comments.
Login now