From f842f632b4f7e658e5975c0435da28e3c679742c Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <github@naumov.de> Date: Mon, 25 Feb 2019 21:44:45 +0100 Subject: [PATCH] [App/DE] Wrap netcdf calls/impls in OGS_USE_NETCDF Move netcdf dialog directory include keeping NetCDF cmake code together. --- Applications/DataExplorer/Base/ImportFileTypes.h | 10 ++++++++-- Applications/DataExplorer/CMakeLists.txt | 1 - Applications/DataExplorer/DataExplorer.cmake | 8 +++++++- Applications/DataExplorer/VtkVis/CMakeLists.txt | 7 ++++++- .../VtkVis/VtkCompositeTextureOnSurfaceFilter.cpp | 15 ++++++++++++--- Applications/DataExplorer/mainwindow.cpp | 6 ++++++ CMakeLists.txt | 1 + 7 files changed, 40 insertions(+), 8 deletions(-) diff --git a/Applications/DataExplorer/Base/ImportFileTypes.h b/Applications/DataExplorer/Base/ImportFileTypes.h index 07da7430e85..d5cad3909bf 100644 --- a/Applications/DataExplorer/Base/ImportFileTypes.h +++ b/Applications/DataExplorer/Base/ImportFileTypes.h @@ -22,8 +22,8 @@ class ImportFileType { public: - - enum type { + enum type + { OGS = 0, OGS_GEO, OGS_STN, @@ -31,7 +31,9 @@ public: FEFLOW, GMS, GMSH, +#ifdef OGS_USE_NETCDF NETCDF, +#endif // OGS_USE_NETCDF PETREL, POLYRASTER, RASTER, @@ -48,8 +50,10 @@ public: return "GMS"; if (t == ImportFileType::GMSH) return "GMSH"; +#ifdef OGS_USE_NETCDF if (t == ImportFileType::NETCDF) return "NetCDF"; +#endif // OGS_USE_NETCDF if (t == ImportFileType::OGS) return "OGS"; if (t == ImportFileType::OGS_GEO) @@ -80,8 +84,10 @@ public: return "GMS files (*.txt *.3dm)"; if (t == ImportFileType::GMSH) return "GMSH mesh files (*.msh)"; +#ifdef OGS_USE_NETCDF if (t == ImportFileType::NETCDF) return "NetCDF files (*.nc)"; +#endif // OGS_USE_NETCDF if (t == ImportFileType::OGS) return "OpenGeosys files (*.prj *.gml *.vtu *.stn);;GeoSys legacy " "files (*.gli *.msh);;All files (* *.*)"; diff --git a/Applications/DataExplorer/CMakeLists.txt b/Applications/DataExplorer/CMakeLists.txt index e1400149be3..005036f32b1 100644 --- a/Applications/DataExplorer/CMakeLists.txt +++ b/Applications/DataExplorer/CMakeLists.txt @@ -24,7 +24,6 @@ add_subdirectory(Base) add_subdirectory(DataView/StratView) add_subdirectory(DataView) add_subdirectory(DataView/DiagramView) -add_subdirectory(NetCdfDialog) add_subdirectory(VtkVis) include(DataExplorer.cmake) diff --git a/Applications/DataExplorer/DataExplorer.cmake b/Applications/DataExplorer/DataExplorer.cmake index 31a26ec59eb..680d316c696 100644 --- a/Applications/DataExplorer/DataExplorer.cmake +++ b/Applications/DataExplorer/DataExplorer.cmake @@ -37,7 +37,6 @@ target_link_libraries(DataExplorer MeshLib ApplicationsFileIO DataHolderLib - NetCdfDialogLib OGSFileConverterLib QtBase QtDataView @@ -53,6 +52,13 @@ target_link_libraries(DataExplorer ${VTK_LIBRARIES} ) + +if(OGS_USE_NETCDF) + add_definitions(-DOGS_USE_NETCDF) + add_subdirectory(NetCdfDialog) + target_link_libraries(DataExplorer NetCdfDialogLib) +endif() + if(NOT APPLE AND OGS_USE_CONAN) # HACK for unresolved external target_link_libraries(DataExplorer vtkGUISupportQt-8.1) diff --git a/Applications/DataExplorer/VtkVis/CMakeLists.txt b/Applications/DataExplorer/VtkVis/CMakeLists.txt index c3da20000a7..f873f6c550e 100644 --- a/Applications/DataExplorer/VtkVis/CMakeLists.txt +++ b/Applications/DataExplorer/VtkVis/CMakeLists.txt @@ -138,9 +138,14 @@ if(GEOTIFF_FOUND) endif() # GEOTIFF_FOUND target_link_libraries(VtkVis - PUBLIC BaseLib GeoLib MeshLib DataHolderLib QtBase vtkIOImage NetCdfDialogLib + PUBLIC BaseLib GeoLib MeshLib DataHolderLib QtBase vtkIOImage PRIVATE MathLib ApplicationsFileIO Qt5::Gui logog ) + +if (OGS_USE_NETCDF) + target_link_libraries(VtkVis PRIVATE NetCdfDialogLib) +endif() + if(NOT APPLE AND OGS_USE_CONAN) # HACK for unresolved external target_link_libraries(VtkVis PUBLIC vtkGUISupportQt-8.1) diff --git a/Applications/DataExplorer/VtkVis/VtkCompositeTextureOnSurfaceFilter.cpp b/Applications/DataExplorer/VtkVis/VtkCompositeTextureOnSurfaceFilter.cpp index 581eb95c1ee..5815a39ac21 100644 --- a/Applications/DataExplorer/VtkVis/VtkCompositeTextureOnSurfaceFilter.cpp +++ b/Applications/DataExplorer/VtkVis/VtkCompositeTextureOnSurfaceFilter.cpp @@ -23,7 +23,9 @@ #include <vtkUnstructuredGrid.h> #include "VtkGeoImageSource.h" #include "VtkRaster.h" +#ifdef OGS_USE_NETCDF #include "NetCdfDialog/NetCdfConfigureDialog.h" +#endif // OGS_USE_NETCDF #include <QFileDialog> #include <QFileInfo> @@ -61,9 +63,14 @@ void VtkCompositeTextureOnSurfaceFilter::init() QWidget* parent = nullptr; QSettings settings; - QString fileName = QFileDialog::getOpenFileName(parent, "Select raster file to apply as texture", - settings.value("lastOpenedTextureFileDirectory").toString(), - "Raster files (*.asc *.grd *.bmp *.jpg *.png *.tif);;NetCDF files (*.nc);;"); + QString fileName = QFileDialog::getOpenFileName( + parent, "Select raster file to apply as texture", + settings.value("lastOpenedTextureFileDirectory").toString(), + "Raster files (*.asc *.grd *.bmp *.jpg *.png *.tif);;" +#ifdef OGS_USE_NETCDF + "NetCDF files (*.nc);;" +#endif // OGS_USE_NETCDF + ); QFileInfo fi(fileName); if ((fi.suffix().toLower() == "asc") || (fi.suffix().toLower() == "tif") || @@ -79,6 +86,7 @@ void VtkCompositeTextureOnSurfaceFilter::init() QDir dir = QDir(fileName); settings.setValue("lastOpenedTextureFileDirectory", dir.absolutePath()); } +#ifdef OGS_USE_NETCDF else if (fi.suffix().toLower() == "nc") { NetCdfConfigureDialog dlg(fileName.toStdString().c_str()); @@ -94,6 +102,7 @@ void VtkCompositeTextureOnSurfaceFilter::init() surface->Update(); } } +#endif // OGS_USE_NETCDF else ERR("VtkCompositeTextureOnSurfaceFilter::init(): Error reading texture file."); diff --git a/Applications/DataExplorer/mainwindow.cpp b/Applications/DataExplorer/mainwindow.cpp index 21f70d3fb8d..b2bfd185853 100644 --- a/Applications/DataExplorer/mainwindow.cpp +++ b/Applications/DataExplorer/mainwindow.cpp @@ -73,7 +73,9 @@ #include "MeshAnalysisDialog.h" #include "MeshElementRemovalDialog.h" #include "MeshQualitySelectionDialog.h" +#ifdef OGS_USE_NETCDF #include "NetCdfDialog/NetCdfConfigureDialog.h" +#endif // OGS_USE_NETCDF #include "SHPImportDialog.h" #include "SetNameDialog.h" #include "VtkAddFilterDialog.h" @@ -609,6 +611,7 @@ void MainWindow::loadFile(ImportFileType::type t, const QString &fileName) } settings.setValue("lastOpenedFileDirectory", dir.absolutePath()); } +#ifdef OGS_USE_NETCDF else if (t == ImportFileType::NETCDF) // CH 01.2012 { @@ -625,6 +628,7 @@ void MainWindow::loadFile(ImportFileType::type t, const QString &fileName) settings.setValue("lastOpenedRasterFileDirectory", dir.absolutePath()); } +#endif // OGS_USE_NETCDF else if (t == ImportFileType::RASTER) { VtkGeoImageSource* geoImage = VtkGeoImageSource::New(); @@ -748,9 +752,11 @@ QMenu* MainWindow::createImportFilesMenu() QAction* gmshFiles = importFiles->addAction("&GMSH Files..."); connect(gmshFiles, SIGNAL(triggered()), signal_mapper, SLOT(map())); signal_mapper->setMapping(gmshFiles, ImportFileType::GMSH); +#ifdef OGS_USE_NETCDF QAction* netcdfFiles = importFiles->addAction("&NetCDF Files..."); connect(netcdfFiles, SIGNAL(triggered()), signal_mapper, SLOT(map())); signal_mapper->setMapping(netcdfFiles, ImportFileType::NETCDF); +#endif // OGS_USE_NETCDF QAction* petrelFiles = importFiles->addAction("&Petrel Files..."); connect(petrelFiles, SIGNAL(triggered()), this, SLOT(loadPetrelFiles())); QAction* rasterFiles = importFiles->addAction("&Raster Files..."); diff --git a/CMakeLists.txt b/CMakeLists.txt index 55be3c9d3b3..e1aa10ca985 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,6 +94,7 @@ option(OGS_BUILD_CLI "Should the OGS simulator be built?" ON) option(OGS_BUILD_GUI "Should the Data Explorer be built?" OFF) if(OGS_BUILD_GUI) add_definitions(-DOGS_BUILD_GUI) + option(OGS_USE_NETCDF "Add NetCDF support." ON) endif() option(OGS_BUILD_UTILS "Should the utilities programms be built?" OFF) -- GitLab