From 3369b1f2a70de3702f353e14cd4a625ce6ad06b6 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Thu, 14 May 2020 12:16:59 +0200
Subject: [PATCH] Reorganize language directory

Now modules are defined in their own directory (language/modules)
---
 CMakeLists.txt                                  |  1 +
 src/CMakeLists.txt                              |  3 ---
 src/language/ASTModulesImporter.hpp             |  2 +-
 src/language/CMakeLists.txt                     |  9 ++-------
 src/language/{ => modules}/BuiltinModule.cpp    |  2 +-
 src/language/{ => modules}/BuiltinModule.hpp    |  2 +-
 src/language/modules/CMakeLists.txt             | 14 ++++++++++++++
 src/language/{ => modules}/IModule.hpp          |  0
 src/language/{ => modules}/MathModule.cpp       |  2 +-
 src/language/{ => modules}/MathModule.hpp       |  2 +-
 src/language/{ => modules}/MeshModule.cpp       |  2 +-
 src/language/{ => modules}/MeshModule.hpp       |  2 +-
 src/language/{ => modules}/ModuleRepository.cpp |  8 ++++----
 src/language/{ => modules}/ModuleRepository.hpp |  2 +-
 src/language/{ => modules}/VTKModule.cpp        |  2 +-
 src/language/{ => modules}/VTKModule.hpp        |  2 +-
 tests/CMakeLists.txt                            |  1 +
 tests/test_BuiltinFunctionProcessor.cpp         |  2 +-
 tests/test_MathModule.cpp                       |  2 +-
 19 files changed, 34 insertions(+), 26 deletions(-)
 rename src/language/{ => modules}/BuiltinModule.cpp (94%)
 rename src/language/{ => modules}/BuiltinModule.hpp (95%)
 create mode 100644 src/language/modules/CMakeLists.txt
 rename src/language/{ => modules}/IModule.hpp (100%)
 rename src/language/{ => modules}/MathModule.cpp (99%)
 rename src/language/{ => modules}/MathModule.hpp (84%)
 rename src/language/{ => modules}/MeshModule.cpp (99%)
 rename src/language/{ => modules}/MeshModule.hpp (85%)
 rename src/language/{ => modules}/ModuleRepository.cpp (93%)
 rename src/language/{ => modules}/ModuleRepository.hpp (96%)
 rename src/language/{ => modules}/VTKModule.cpp (98%)
 rename src/language/{ => modules}/VTKModule.hpp (85%)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 02d061b2c..644e4a03a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -395,6 +395,7 @@ target_link_libraries(
   PugsMesh
   PugsUtils
   PugsLanguage
+  PugsLanguageModules
   kokkos
   ${PARMETIS_LIBRARIES}
   ${MPI_CXX_LINK_FLAGS} ${MPI_CXX_LIBRARIES}
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 42d75ad7e..0d6e8cbb9 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -15,8 +15,5 @@ add_subdirectory(language)
 # Pugs mesh
 add_subdirectory(mesh)
 
-# Pugs mesh
-#add_subdirectory(mesh)
-
 # Pugs output
 #add_subdirectory(output)
diff --git a/src/language/ASTModulesImporter.hpp b/src/language/ASTModulesImporter.hpp
index 39080e38a..3f8b695a4 100644
--- a/src/language/ASTModulesImporter.hpp
+++ b/src/language/ASTModulesImporter.hpp
@@ -2,7 +2,7 @@
 #define AST_MODULES_IMPORTER_HPP
 
 #include <language/ASTNode.hpp>
-#include <language/ModuleRepository.hpp>
+#include <language/modules/ModuleRepository.hpp>
 
 #include <set>
 #include <string>
diff --git a/src/language/CMakeLists.txt b/src/language/CMakeLists.txt
index dc667ea9c..7068b4911 100644
--- a/src/language/CMakeLists.txt
+++ b/src/language/CMakeLists.txt
@@ -1,6 +1,7 @@
 # ------------------- Source files --------------------
 
 add_subdirectory(node_processor)
+add_subdirectory(modules)
 
 add_library(
   PugsLanguage
@@ -28,18 +29,12 @@ add_library(
   ASTPrinter.cpp
   ASTSymbolTableBuilder.cpp
   ASTSymbolInitializationChecker.cpp
-  BuiltinModule.cpp
   EmbeddedData.cpp
-  MathModule.cpp
-  MeshModule.cpp
-  VTKModule.cpp
-  ModuleRepository.cpp
   PugsParser.cpp)
 
 # Additional dependencies
 add_dependencies(PugsLanguage
-  PugsUtils
-  PugsMesh)
+  PugsUtils)
 
 # ------------------- Installation --------------------
 # temporary version workaround
diff --git a/src/language/BuiltinModule.cpp b/src/language/modules/BuiltinModule.cpp
similarity index 94%
rename from src/language/BuiltinModule.cpp
rename to src/language/modules/BuiltinModule.cpp
index 93908f66c..d7729964d 100644
--- a/src/language/BuiltinModule.cpp
+++ b/src/language/modules/BuiltinModule.cpp
@@ -1,4 +1,4 @@
-#include <language/BuiltinModule.hpp>
+#include <language/modules/BuiltinModule.hpp>
 
 #include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/TypeDescriptor.hpp>
diff --git a/src/language/BuiltinModule.hpp b/src/language/modules/BuiltinModule.hpp
similarity index 95%
rename from src/language/BuiltinModule.hpp
rename to src/language/modules/BuiltinModule.hpp
index 575e2890c..58424e868 100644
--- a/src/language/BuiltinModule.hpp
+++ b/src/language/modules/BuiltinModule.hpp
@@ -1,7 +1,7 @@
 #ifndef BUILTIN_MODULE_HPP
 #define BUILTIN_MODULE_HPP
 
-#include <language/IModule.hpp>
+#include <language/modules/IModule.hpp>
 
 class IBuiltinFunctionEmbedder;
 class TypeDescriptor;
diff --git a/src/language/modules/CMakeLists.txt b/src/language/modules/CMakeLists.txt
new file mode 100644
index 000000000..545278f58
--- /dev/null
+++ b/src/language/modules/CMakeLists.txt
@@ -0,0 +1,14 @@
+# ------------------- Source files --------------------
+
+add_library(PugsLanguageModules
+  BuiltinModule.cpp
+  MathModule.cpp
+  MeshModule.cpp
+  ModuleRepository.cpp
+  VTKModule.cpp
+)
+
+
+add_dependencies(PugsLanguageModules
+  PugsUtils
+  PugsMesh)
diff --git a/src/language/IModule.hpp b/src/language/modules/IModule.hpp
similarity index 100%
rename from src/language/IModule.hpp
rename to src/language/modules/IModule.hpp
diff --git a/src/language/MathModule.cpp b/src/language/modules/MathModule.cpp
similarity index 99%
rename from src/language/MathModule.cpp
rename to src/language/modules/MathModule.cpp
index ea4aa3fe4..ca3056da0 100644
--- a/src/language/MathModule.cpp
+++ b/src/language/modules/MathModule.cpp
@@ -1,4 +1,4 @@
-#include <language/MathModule.hpp>
+#include <language/modules/MathModule.hpp>
 
 #include <language/BuiltinFunctionEmbedder.hpp>
 
diff --git a/src/language/MathModule.hpp b/src/language/modules/MathModule.hpp
similarity index 84%
rename from src/language/MathModule.hpp
rename to src/language/modules/MathModule.hpp
index 165f1ab49..1f001e193 100644
--- a/src/language/MathModule.hpp
+++ b/src/language/modules/MathModule.hpp
@@ -1,7 +1,7 @@
 #ifndef MATH_MODULE_HPP
 #define MATH_MODULE_HPP
 
-#include <language/BuiltinModule.hpp>
+#include <language/modules/BuiltinModule.hpp>
 
 class MathModule : public BuiltinModule
 {
diff --git a/src/language/MeshModule.cpp b/src/language/modules/MeshModule.cpp
similarity index 99%
rename from src/language/MeshModule.cpp
rename to src/language/modules/MeshModule.cpp
index b8e64da51..23f44f8af 100644
--- a/src/language/MeshModule.cpp
+++ b/src/language/modules/MeshModule.cpp
@@ -1,4 +1,4 @@
-#include <language/MeshModule.hpp>
+#include <language/modules/MeshModule.hpp>
 
 #include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/FunctionTable.hpp>
diff --git a/src/language/MeshModule.hpp b/src/language/modules/MeshModule.hpp
similarity index 85%
rename from src/language/MeshModule.hpp
rename to src/language/modules/MeshModule.hpp
index b6ba74a0f..33aa4b92d 100644
--- a/src/language/MeshModule.hpp
+++ b/src/language/modules/MeshModule.hpp
@@ -1,7 +1,7 @@
 #ifndef MESH_MODULE_HPP
 #define MESH_MODULE_HPP
 
-#include <language/BuiltinModule.hpp>
+#include <language/modules/BuiltinModule.hpp>
 #include <utils/PugsMacros.hpp>
 
 class MeshModule : public BuiltinModule
diff --git a/src/language/ModuleRepository.cpp b/src/language/modules/ModuleRepository.cpp
similarity index 93%
rename from src/language/ModuleRepository.cpp
rename to src/language/modules/ModuleRepository.cpp
index 4937fdc60..5765979f8 100644
--- a/src/language/ModuleRepository.cpp
+++ b/src/language/modules/ModuleRepository.cpp
@@ -1,11 +1,11 @@
-#include <language/ModuleRepository.hpp>
+#include <language/modules/ModuleRepository.hpp>
 
 #include <language/ASTNode.hpp>
 #include <language/BuiltinFunctionEmbedder.hpp>
-#include <language/MathModule.hpp>
-#include <language/MeshModule.hpp>
 #include <language/SymbolTable.hpp>
-#include <language/VTKModule.hpp>
+#include <language/modules/MathModule.hpp>
+#include <language/modules/MeshModule.hpp>
+#include <language/modules/VTKModule.hpp>
 #include <utils/PugsAssert.hpp>
 
 void
diff --git a/src/language/ModuleRepository.hpp b/src/language/modules/ModuleRepository.hpp
similarity index 96%
rename from src/language/ModuleRepository.hpp
rename to src/language/modules/ModuleRepository.hpp
index 140e920d2..f928a1552 100644
--- a/src/language/ModuleRepository.hpp
+++ b/src/language/modules/ModuleRepository.hpp
@@ -1,7 +1,7 @@
 #ifndef MODULE_REGISTRY_HPP
 #define MODULE_REGISTRY_HPP
 
-#include <language/IModule.hpp>
+#include <language/modules/IModule.hpp>
 
 #include <map>
 #include <memory>
diff --git a/src/language/VTKModule.cpp b/src/language/modules/VTKModule.cpp
similarity index 98%
rename from src/language/VTKModule.cpp
rename to src/language/modules/VTKModule.cpp
index 01eb1caba..7a482a9b2 100644
--- a/src/language/VTKModule.cpp
+++ b/src/language/modules/VTKModule.cpp
@@ -1,4 +1,4 @@
-#include <language/VTKModule.hpp>
+#include <language/modules/VTKModule.hpp>
 
 #include <language/BuiltinFunctionEmbedder.hpp>
 #include <language/TypeDescriptor.hpp>
diff --git a/src/language/VTKModule.hpp b/src/language/modules/VTKModule.hpp
similarity index 85%
rename from src/language/VTKModule.hpp
rename to src/language/modules/VTKModule.hpp
index 9adbe24e2..1578fad81 100644
--- a/src/language/VTKModule.hpp
+++ b/src/language/modules/VTKModule.hpp
@@ -1,7 +1,7 @@
 #ifndef VTK_MODULE_HPP
 #define VTK_MODULE_HPP
 
-#include <language/BuiltinModule.hpp>
+#include <language/modules/BuiltinModule.hpp>
 #include <utils/PugsMacros.hpp>
 
 class VTKModule : public BuiltinModule
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 4450b2b7a..4c55eb2e5 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -85,6 +85,7 @@ add_executable (mpi_unit_tests
 
 target_link_libraries (unit_tests
   PugsLanguage
+  PugsLanguageModules
   PugsMesh
   PugsUtils
   kokkos
diff --git a/tests/test_BuiltinFunctionProcessor.cpp b/tests/test_BuiltinFunctionProcessor.cpp
index c3870ba94..48c7ccb34 100644
--- a/tests/test_BuiltinFunctionProcessor.cpp
+++ b/tests/test_BuiltinFunctionProcessor.cpp
@@ -7,7 +7,7 @@
 #include <language/ASTNodeExpressionBuilder.hpp>
 #include <language/ASTNodeTypeCleaner.hpp>
 #include <language/ASTSymbolTableBuilder.hpp>
-#include <language/MathModule.hpp>
+#include <language/modules/MathModule.hpp>
 
 #define CHECK_BUILTIN_FUNCTION_EVALUATION_RESULT(data, variable_name, expected_value)                \
   {                                                                                                  \
diff --git a/tests/test_MathModule.cpp b/tests/test_MathModule.cpp
index 1adf3b825..ae3db9dc5 100644
--- a/tests/test_MathModule.cpp
+++ b/tests/test_MathModule.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
 #include <language/BuiltinFunctionEmbedder.hpp>
-#include <language/MathModule.hpp>
+#include <language/modules/MathModule.hpp>
 
 // clazy:excludeall=non-pod-global-static
 
-- 
GitLab