diff --git a/Applications/CMakeLists.txt b/Applications/CMakeLists.txt index 855b3a35ae5aa8f344989d4ec18ef143c3c4b47e..c900269b5761f8622c02893b3bac3d03811fbc61 100644 --- a/Applications/CMakeLists.txt +++ b/Applications/CMakeLists.txt @@ -1,6 +1,7 @@ include(${PROJECT_SOURCE_DIR}/scripts/cmake/OGSEnabledElements.cmake) add_subdirectory(ApplicationsLib) +add_subdirectory(FileIO) if(OGS_BUILD_UTILS AND NOT IS_SUBPROJECT) add_subdirectory(Utils) diff --git a/FileIO/ImportFileTypes.h b/Applications/DataExplorer/Base/ImportFileTypes.h similarity index 100% rename from FileIO/ImportFileTypes.h rename to Applications/DataExplorer/Base/ImportFileTypes.h diff --git a/Applications/DataExplorer/DataExplorer.cmake b/Applications/DataExplorer/DataExplorer.cmake index ea1a8c0f42e592564df577b2107f3bfee917f87b..e1f69fb78742f4cb3dea43db0a65597b900abfe3 100644 --- a/Applications/DataExplorer/DataExplorer.cmake +++ b/Applications/DataExplorer/DataExplorer.cmake @@ -8,6 +8,7 @@ set(SOURCES set(SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/../..) include_directories( ${SOURCE_DIR_REL}/Applications/Utils/OGSFileConverter + ${SOURCE_DIR_REL}/Applications/FileIO ${SOURCE_DIR_REL}/BaseLib ${SOURCE_DIR_REL}/MathLib ${SOURCE_DIR_REL}/GeoLib @@ -53,6 +54,7 @@ target_link_libraries(DataExplorer Qt4::QtXml Qt4::QtNetwork ApplicationsLib + ApplicationsFileIO DataHolderLib FileIO InSituLib diff --git a/Applications/DataExplorer/DataView/CMakeLists.txt b/Applications/DataExplorer/DataView/CMakeLists.txt index de5ab6892dabd2f7b6715db451efe011e43d4b14..31f5a0932b7c354a70b4bb47111da00ac90a84fe 100644 --- a/Applications/DataExplorer/DataView/CMakeLists.txt +++ b/Applications/DataExplorer/DataView/CMakeLists.txt @@ -104,6 +104,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR}/../Base ${CMAKE_CURRENT_BINARY_DIR}/DiagramView ${CMAKE_CURRENT_BINARY_DIR}/StratView + ${SOURCE_DIR_REL}/Applications/FileIO ${SOURCE_DIR_REL}/BaseLib ${SOURCE_DIR_REL}/MathLib ${SOURCE_DIR_REL}/GeoLib @@ -132,6 +133,7 @@ add_library(QtDataView target_link_libraries(QtDataView Qt4::QtCore Qt4::QtGui) target_link_libraries(QtDataView + ApplicationsFileIO FileIO DataHolderLib QtBase diff --git a/Applications/DataExplorer/DataView/MshView.cpp b/Applications/DataExplorer/DataView/MshView.cpp index c4de1596a785d252eea99af6b537b84603525857..e644cbdfea421374d7b1d2132861481e3c6a8058 100644 --- a/Applications/DataExplorer/DataView/MshView.cpp +++ b/Applications/DataExplorer/DataView/MshView.cpp @@ -23,7 +23,7 @@ #include <QObject> #include <QSettings> -#include "FileIO/SHPInterface.h" +#include "SHPInterface.h" #include "FileIO/TetGenInterface.h" #include "GeoLib/IO/AsciiRasterInterface.h" diff --git a/Applications/DataExplorer/VtkVis/CMakeLists.txt b/Applications/DataExplorer/VtkVis/CMakeLists.txt index ed6fbe94b3a776c69f30f8bed13b6ed60ecbaac9..e0a717103df44130cd2d95b335db77cf9b8be857 100644 --- a/Applications/DataExplorer/VtkVis/CMakeLists.txt +++ b/Applications/DataExplorer/VtkVis/CMakeLists.txt @@ -99,6 +99,7 @@ source_group("UI Files" FILES ${UIS}) set(SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/../../..) set(GUI_SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/..) include_directories( + ${SOURCE_DIR_REL}/Applications/FileIO ${SOURCE_DIR_REL}/BaseLib ${SOURCE_DIR_REL}/GeoLib ${SOURCE_DIR_REL}/MathLib diff --git a/Applications/DataExplorer/VtkVis/VtkAlgorithmProperties.cpp b/Applications/DataExplorer/VtkVis/VtkAlgorithmProperties.cpp index 918e5d37ab6cf0db49bcfede5d1c0d44e42eada4..56b5e2d3a4c9a2aac992607a084bdcacb4d0e346 100644 --- a/Applications/DataExplorer/VtkVis/VtkAlgorithmProperties.cpp +++ b/Applications/DataExplorer/VtkVis/VtkAlgorithmProperties.cpp @@ -22,7 +22,7 @@ #include <vtkTexture.h> #include "VtkColorLookupTable.h" -#include "FileIO/XmlIO/Qt/XmlLutReader.h" +#include "XmlIO/Qt/XmlLutReader.h" VtkAlgorithmProperties::VtkAlgorithmProperties(QObject* parent /*= nullptr*/) : QObject(parent) diff --git a/Applications/DataExplorer/VtkVis/VtkCompositeColormapToImageFilter.cpp b/Applications/DataExplorer/VtkVis/VtkCompositeColormapToImageFilter.cpp index 44ec587270d843d21ce60a7a61e9e4261b81f277..0572b828130db69e79400c19452a6bfe9be867c9 100644 --- a/Applications/DataExplorer/VtkVis/VtkCompositeColormapToImageFilter.cpp +++ b/Applications/DataExplorer/VtkVis/VtkCompositeColormapToImageFilter.cpp @@ -25,7 +25,7 @@ #include <QFileDialog> #include "VtkColorLookupTable.h" -#include "FileIO/XmlIO/Qt/XmlLutReader.h" +#include "XmlIO/Qt/XmlLutReader.h" VtkCompositeColormapToImageFilter::VtkCompositeColormapToImageFilter( vtkAlgorithm* inputAlgorithm ) : VtkCompositeFilter(inputAlgorithm) diff --git a/Applications/DataExplorer/mainwindow.cpp b/Applications/DataExplorer/mainwindow.cpp index 8854e1d5e0ec424b950547c2a946a5567178b31d..81ec73a23d38ad1d63c585fb580b5a8e63ff9d0d 100644 --- a/Applications/DataExplorer/mainwindow.cpp +++ b/Applications/DataExplorer/mainwindow.cpp @@ -60,14 +60,14 @@ #include "InSituLib/VtkMappedMeshSource.h" // FileIO includes -#include "FileIO/GMSInterface.h" +#include "GMSInterface.h" #include "MeshLib/IO/FEFLOW/FEFLOWMeshInterface.h" #include "MeshLib/IO/Legacy/MeshIO.h" #include "MeshLib/IO/readMeshFromFile.h" #include "FileIO/GMSHInterface.h" #include "FileIO/TetGenInterface.h" -#include "FileIO/PetrelInterface.h" -#include "FileIO/XmlIO/Qt/XmlGspInterface.h" +#include "PetrelInterface.h" +#include "XmlIO/Qt/XmlGspInterface.h" #include "GeoLib/IO/FEFLOW/FEFLOWGeoInterface.h" #include "GeoLib/IO/XmlIO/Qt/XmlGmlInterface.h" #include "GeoLib/IO/XmlIO/Qt/XmlStnInterface.h" diff --git a/Applications/FileIO/CMakeLists.txt b/Applications/FileIO/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..d4ae93cbf6d8a673c1a18604e1c1aec516471058 --- /dev/null +++ b/Applications/FileIO/CMakeLists.txt @@ -0,0 +1,49 @@ +GET_SOURCE_FILES(SOURCES_FileIO) +set(SOURCES ${SOURCES_FileIO}) +if(NOT Shapelib_FOUND) + list(REMOVE_ITEM SOURCES SHPInterface.h SHPInterface.cpp) +endif() +GET_SOURCE_FILES(SOURCES_BASE_XML XmlIO) +set(SOURCES ${SOURCES} ${SOURCES_BASE_XML}) +GET_SOURCE_FILES(SOURCES_BOOST_XML XmlIO/Boost) +set(SOURCES ${SOURCES} ${SOURCES_BOOST_XML}) +if(QT4_FOUND) + GET_SOURCE_FILES(SOURCES_QT_XML XmlIO/Qt) + set(SOURCES ${SOURCES} ${SOURCES_QT_XML}) +endif() +GET_SOURCE_FILES(SOURCES_RAPID_XML XmlIO/Rapid) +set(SOURCES ${SOURCES} ${SOURCES_RAPID_XML}) + +include(${PROJECT_SOURCE_DIR}/scripts/cmake/OGSEnabledElements.cmake) + +# Create the library +add_library(ApplicationsFileIO ${SOURCES}) +target_link_libraries(ApplicationsFileIO DataHolderLib) + +if(QT4_FOUND) + target_link_libraries(ApplicationsFileIO Qt4::QtXml Qt4::QtXmlPatterns) + if(WIN32 AND CMAKE_CROSSCOMPILING AND OPENSSL_FOUND) + target_link_libraries(ApplicationsFileIO Qt4::QtNetwork ${OPENSSL_LIBRARIES} ws2_32) + endif() +endif() + +if(Shapelib_FOUND) + target_link_libraries(ApplicationsFileIO ${Shapelib_LIBRARIES}) +endif() + +ADD_VTK_DEPENDENCY(ApplicationsFileIO) + +if(TARGET Eigen) + add_dependencies(ApplicationsFileIO Eigen) +endif() + +if(TARGET Boost) + add_dependencies(ApplicationsFileIO Boost) +endif() + +file(GLOB XSD_FILES . XmlIO/*.xsd) +if(APPLE AND OGS_BUILD_GUI) + install(FILES ${XSD_FILES} DESTINATION ${CMAKE_BINARY_DIR}/_CPack_Packages/Darwin/DragNDrop/${CPACK_PACKAGE_FILE_NAME}/ALL_IN_ONE/DataExplorer.app/Contents/MacOS COMPONENT ogs_gui) +else() + install(FILES ${XSD_FILES} DESTINATION bin COMPONENT ogs_cli) +endif() diff --git a/FileIO/GMSInterface.cpp b/Applications/FileIO/GMSInterface.cpp similarity index 100% rename from FileIO/GMSInterface.cpp rename to Applications/FileIO/GMSInterface.cpp diff --git a/FileIO/GMSInterface.h b/Applications/FileIO/GMSInterface.h similarity index 100% rename from FileIO/GMSInterface.h rename to Applications/FileIO/GMSInterface.h diff --git a/FileIO/PetrelInterface.cpp b/Applications/FileIO/PetrelInterface.cpp similarity index 100% rename from FileIO/PetrelInterface.cpp rename to Applications/FileIO/PetrelInterface.cpp diff --git a/FileIO/PetrelInterface.h b/Applications/FileIO/PetrelInterface.h similarity index 100% rename from FileIO/PetrelInterface.h rename to Applications/FileIO/PetrelInterface.h diff --git a/FileIO/SHPInterface.cpp b/Applications/FileIO/SHPInterface.cpp similarity index 100% rename from FileIO/SHPInterface.cpp rename to Applications/FileIO/SHPInterface.cpp diff --git a/FileIO/SHPInterface.h b/Applications/FileIO/SHPInterface.h similarity index 100% rename from FileIO/SHPInterface.h rename to Applications/FileIO/SHPInterface.h diff --git a/FileIO/OpenGeoSysCND.xsd b/Applications/FileIO/XmlIO/OpenGeoSysCND.xsd similarity index 99% rename from FileIO/OpenGeoSysCND.xsd rename to Applications/FileIO/XmlIO/OpenGeoSysCND.xsd index 074100087e2144bb579e8c1db6f4cedb44a13f65..07874661b214d165c97b23865e1d563f0907c05c 100644 --- a/FileIO/OpenGeoSysCND.xsd +++ b/Applications/FileIO/XmlIO/OpenGeoSysCND.xsd @@ -43,8 +43,8 @@ </xs:sequence> <xs:attribute name="geometry" type="xs:string" use="required" /> </xs:complexType> - - + + <!-- definition of "extCondType" as an extension of "CondType" --> <xs:complexType name="extCondType"> <xs:complexContent> @@ -56,7 +56,7 @@ </xs:extension> </xs:complexContent> </xs:complexType> - + <!-- definition of file content --> <xs:element name="OpenGeoSysCond"> @@ -72,7 +72,7 @@ </xs:sequence> </xs:complexType> </xs:element> - + <!-- definition of boundary conditions --> <xs:element name="BoundaryConditions" minOccurs="0" maxOccurs="1"> <xs:complexType> @@ -90,9 +90,9 @@ </xs:sequence> </xs:complexType> </xs:element> - + </xs:sequence> </xs:complexType> </xs:element> - + </xs:schema> diff --git a/FileIO/OpenGeoSysNum.xsd b/Applications/FileIO/XmlIO/OpenGeoSysNum.xsd similarity index 98% rename from FileIO/OpenGeoSysNum.xsd rename to Applications/FileIO/XmlIO/OpenGeoSysNum.xsd index f1436d7c8a924b37fd2ca572d19f54b018b4eb19..befbf098924bffadd5898d024686bd5f8cfc9a92 100644 --- a/FileIO/OpenGeoSysNum.xsd +++ b/Applications/FileIO/XmlIO/OpenGeoSysNum.xsd @@ -8,7 +8,7 @@ <xs:enumeration value="PETSc" /> </xs:restriction> </xs:simpleType> - + <xs:simpleType name="NonLinearType"> <xs:restriction base="xs:string"> <xs:enumeration value="Newton" /> @@ -35,7 +35,7 @@ <xs:attribute name="Library" type="LibraryType" use="required" /> </xs:complexType> </xs:element> - + <!-- definition of temporal discretization --> <xs:element name="IterationScheme" maxOccurs="1"> <xs:complexType> @@ -46,7 +46,7 @@ </xs:sequence> </xs:complexType> </xs:element> - + <!-- definition of convergence criteria --> <xs:element name="Convergence" minOccurs="0" maxOccurs="1"> <xs:complexType> @@ -57,9 +57,9 @@ </xs:sequence> </xs:complexType> </xs:element> - + </xs:sequence> </xs:complexType> </xs:element> - + </xs:schema> diff --git a/FileIO/OpenGeoSysProject.xsd b/Applications/FileIO/XmlIO/OpenGeoSysProject.xsd similarity index 96% rename from FileIO/OpenGeoSysProject.xsd rename to Applications/FileIO/XmlIO/OpenGeoSysProject.xsd index a44745ae80dcd14c37e599fcd61086f499cbed71..f721a815f9d8984d3ecb21b98cb84791159af4af 100644 --- a/FileIO/OpenGeoSysProject.xsd +++ b/Applications/FileIO/XmlIO/OpenGeoSysProject.xsd @@ -2,7 +2,7 @@ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- OpenGeoSysProject schema; initial implementation: Karsten Rink, 2010-08-20 --> - + <!-- object containing just a source file definition --> <xs:complexType name="projectElement"> <xs:sequence> @@ -20,7 +20,7 @@ </xs:extension> </xs:complexContent> </xs:complexType> - + <!-- msh-object with optional geometry- and texture-reference --> <xs:complexType name="mshElement"> <xs:complexContent> @@ -32,9 +32,9 @@ </xs:extension> </xs:complexContent> </xs:complexType> - - - <!-- definition of file content --> + + + <!-- definition of file content --> <xs:element name="OpenGeoSysProject"> <xs:complexType> <xs:sequence> @@ -52,7 +52,7 @@ <xs:element name="fct" type="projectElement" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="stn" type="projectElement" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> - </xs:complexType> - </xs:element> + </xs:complexType> + </xs:element> </xs:schema> diff --git a/FileIO/XmlIO/Qt/XmlGspInterface.cpp b/Applications/FileIO/XmlIO/Qt/XmlGspInterface.cpp similarity index 100% rename from FileIO/XmlIO/Qt/XmlGspInterface.cpp rename to Applications/FileIO/XmlIO/Qt/XmlGspInterface.cpp diff --git a/FileIO/XmlIO/Qt/XmlGspInterface.h b/Applications/FileIO/XmlIO/Qt/XmlGspInterface.h similarity index 100% rename from FileIO/XmlIO/Qt/XmlGspInterface.h rename to Applications/FileIO/XmlIO/Qt/XmlGspInterface.h diff --git a/FileIO/XmlIO/Qt/XmlLutReader.h b/Applications/FileIO/XmlIO/Qt/XmlLutReader.h similarity index 100% rename from FileIO/XmlIO/Qt/XmlLutReader.h rename to Applications/FileIO/XmlIO/Qt/XmlLutReader.h diff --git a/FileIO/XmlIO/Qt/XmlNumInterface.cpp b/Applications/FileIO/XmlIO/Qt/XmlNumInterface.cpp similarity index 100% rename from FileIO/XmlIO/Qt/XmlNumInterface.cpp rename to Applications/FileIO/XmlIO/Qt/XmlNumInterface.cpp diff --git a/FileIO/XmlIO/Qt/XmlNumInterface.h b/Applications/FileIO/XmlIO/Qt/XmlNumInterface.h similarity index 100% rename from FileIO/XmlIO/Qt/XmlNumInterface.h rename to Applications/FileIO/XmlIO/Qt/XmlNumInterface.h diff --git a/FileIO/CMakeLists.txt b/FileIO/CMakeLists.txt index b0bbca03fcda55bbd3b9f3512e1296c5cb555588..6a6117542348ea7c4adf4d1853bc35b98d99190a 100644 --- a/FileIO/CMakeLists.txt +++ b/FileIO/CMakeLists.txt @@ -1,39 +1,11 @@ GET_SOURCE_FILES(SOURCES_FileIO) set(SOURCES ${SOURCES_FileIO}) -if(NOT Shapelib_FOUND) - list(REMOVE_ITEM SOURCES SHPInterface.h SHPInterface.cpp) -endif() - -GET_SOURCE_FILES(SOURCES_LEGACY Legacy) GET_SOURCE_FILES(SOURCES_GMSHIO GmshIO) -GET_SOURCE_FILES(SOURCES_VTK VtkIO) -set(SOURCES ${SOURCES} ${SOURCES_LEGACY} ${SOURCES_GMSHIO} ${SOURCES_VTK}) - -GET_SOURCE_FILES(SOURCES_BASE_XML XmlIO) -set(SOURCES ${SOURCES} ${SOURCES_BASE_XML}) -GET_SOURCE_FILES(SOURCES_BOOST_XML XmlIO/Boost) -set(SOURCES ${SOURCES} ${SOURCES_BOOST_XML}) -if(QT4_FOUND) - GET_SOURCE_FILES(SOURCES_QT_XML XmlIO/Qt) - set(SOURCES ${SOURCES} ${SOURCES_QT_XML}) -endif() - -include(${PROJECT_SOURCE_DIR}/scripts/cmake/OGSEnabledElements.cmake) +set(SOURCES ${SOURCES} ${SOURCES_GMSHIO}) # Create the library add_library(FileIO ${SOURCES}) -target_link_libraries(FileIO DataHolderLib) - -if(QT4_FOUND) - target_link_libraries(FileIO Qt4::QtXml Qt4::QtXmlPatterns) - if(WIN32 AND CMAKE_CROSSCOMPILING AND OPENSSL_FOUND) - target_link_libraries(FileIO Qt4::QtNetwork ${OPENSSL_LIBRARIES} ws2_32) - endif() -endif() - -if(Shapelib_FOUND) - target_link_libraries(FileIO ${Shapelib_LIBRARIES}) -endif() +target_link_libraries(FileIO GeoLib MeshLib) ADD_VTK_DEPENDENCY(FileIO) @@ -45,9 +17,3 @@ if(TARGET Boost) add_dependencies(FileIO Boost) endif() -file(GLOB XSD_FILES . *.xsd) -if(APPLE AND OGS_BUILD_GUI) - install(FILES ${XSD_FILES} DESTINATION ${CMAKE_BINARY_DIR}/_CPack_Packages/Darwin/DragNDrop/${CPACK_PACKAGE_FILE_NAME}/ALL_IN_ONE/DataExplorer.app/Contents/MacOS COMPONENT ogs_gui) -else() - install(FILES ${XSD_FILES} DESTINATION bin COMPONENT ogs_cli) -endif() diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 3b6a680ad231bf1a0653a9460360689a8fc5c703..6c3ca22f10f333e19c4efc3a02ba20393510693a 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -32,6 +32,7 @@ set_target_properties(testrunner PROPERTIES FOLDER Testing) target_link_libraries(testrunner ApplicationsLib + ApplicationsFileIO AssemblerLib FileIO GTest diff --git a/Tests/FileIO/TestGmsInterface.cpp b/Tests/FileIO/TestGmsInterface.cpp index 39695bdea31aceb1088b4a8050bda5c73d9aed5b..a98c2e7042640d1526a0432aa078195d2df37608 100644 --- a/Tests/FileIO/TestGmsInterface.cpp +++ b/Tests/FileIO/TestGmsInterface.cpp @@ -13,7 +13,7 @@ #include "gtest/gtest.h" #include "BaseLib/BuildInfo.h" -#include "FileIO/GMSInterface.h" +#include "Applications/FileIO/GMSInterface.h" #include "MeshLib/Mesh.h" #include "MeshLib/MeshInformation.h"