From 8db887a7d3768115047f1a425e9ba422426530d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkovsky@mmg.fjfi.cvut.cz>
Date: Sun, 2 Feb 2020 17:25:03 +0100
Subject: [PATCH] Fixed usage of the Config::parseCommandLine function

---
 src/Benchmarks/BLAS/tnl-benchmark-blas.h               |  7 ++-----
 .../DistSpMV/tnl-benchmark-distributed-spmv.h          |  7 ++-----
 .../HeatEquation/tnl-benchmark-simple-heat-equation.h  |  3 +--
 .../LinearSolvers/tnl-benchmark-linear-solvers.h       |  7 ++-----
 .../NDArray/tnl-benchmark-ndarray-boundary.h           |  5 ++---
 src/Benchmarks/NDArray/tnl-benchmark-ndarray.h         |  5 ++---
 src/Benchmarks/ODESolvers/tnl-benchmark-ode-solvers.h  |  7 ++-----
 src/Benchmarks/SpMV/tnl-benchmark-spmv.h               |  7 ++-----
 src/Benchmarks/Traversers/tnl-benchmark-traversers.h   |  6 ++----
 src/TNL/Solvers/Solver_impl.h                          |  1 +
 src/Tools/tnl-dicom-reader.cpp                         | 10 +++-------
 src/Tools/tnl-diff.cpp                                 |  6 ++----
 src/Tools/tnl-grid-setup.cpp                           |  2 +-
 src/Tools/tnl-image-converter.cpp                      |  8 ++------
 src/Tools/tnl-init.cpp                                 |  3 +--
 src/Tools/tnl-lattice-init.cpp                         |  3 +--
 src/Tools/tnl-mesh-converter.cpp                       |  5 ++---
 src/Tools/tnl-view.cpp                                 |  3 +--
 18 files changed, 31 insertions(+), 64 deletions(-)

diff --git a/src/Benchmarks/BLAS/tnl-benchmark-blas.h b/src/Benchmarks/BLAS/tnl-benchmark-blas.h
index a1bd3e92b0..3e05da6304 100644
--- a/src/Benchmarks/BLAS/tnl-benchmark-blas.h
+++ b/src/Benchmarks/BLAS/tnl-benchmark-blas.h
@@ -16,8 +16,7 @@
 #include <TNL/Allocators/CudaManaged.h>
 #include <TNL/Devices/Host.h>
 #include <TNL/Devices/Cuda.h>
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 
 #include "array-operations.h"
 #include "vector-operations.h"
@@ -135,10 +134,8 @@ main( int argc, char* argv[] )
 
    setupConfig( conf_desc );
 
-   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) ) {
-      conf_desc.printUsage( argv[ 0 ] );
+   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) )
       return EXIT_FAILURE;
-   }
 
    if( ! Devices::Host::setup( parameters ) ||
        ! Devices::Cuda::setup( parameters ) )
diff --git a/src/Benchmarks/DistSpMV/tnl-benchmark-distributed-spmv.h b/src/Benchmarks/DistSpMV/tnl-benchmark-distributed-spmv.h
index b90b11088e..8aa22d6f72 100644
--- a/src/Benchmarks/DistSpMV/tnl-benchmark-distributed-spmv.h
+++ b/src/Benchmarks/DistSpMV/tnl-benchmark-distributed-spmv.h
@@ -16,8 +16,7 @@
 #include <TNL/Debugging/FPE.h>
 #endif
 
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/Devices/Host.h>
 #include <TNL/Devices/Cuda.h>
 #include <TNL/Communicators/MpiCommunicator.h>
@@ -309,10 +308,8 @@ main( int argc, char* argv[] )
    Communicators::ScopedInitializer< CommunicatorType > scopedInit(argc, argv);
    const int rank = CommunicatorType::GetRank( CommunicatorType::AllGroup );
 
-   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) ) {
-      conf_desc.printUsage( argv[ 0 ] );
+   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) )
       return EXIT_FAILURE;
-   }
 
    if( ! Devices::Host::setup( parameters ) ||
        ! Devices::Cuda::setup( parameters ) ||
diff --git a/src/Benchmarks/HeatEquation/tnl-benchmark-simple-heat-equation.h b/src/Benchmarks/HeatEquation/tnl-benchmark-simple-heat-equation.h
index 6824329226..46e89748de 100644
--- a/src/Benchmarks/HeatEquation/tnl-benchmark-simple-heat-equation.h
+++ b/src/Benchmarks/HeatEquation/tnl-benchmark-simple-heat-equation.h
@@ -13,8 +13,7 @@
 
 #include <iostream>
 #include <stdio.h>
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/Timer.h>
 #include <TNL/Devices/Cuda.h>
 #include <TNL/Containers/StaticVector.h>
diff --git a/src/Benchmarks/LinearSolvers/tnl-benchmark-linear-solvers.h b/src/Benchmarks/LinearSolvers/tnl-benchmark-linear-solvers.h
index ea39d80b7b..08f45683a3 100644
--- a/src/Benchmarks/LinearSolvers/tnl-benchmark-linear-solvers.h
+++ b/src/Benchmarks/LinearSolvers/tnl-benchmark-linear-solvers.h
@@ -21,8 +21,7 @@
 #include <TNL/Debugging/FPE.h>
 #endif
 
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/Devices/Host.h>
 #include <TNL/Devices/Cuda.h>
 #include <TNL/Communicators/MpiCommunicator.h>
@@ -592,10 +591,8 @@ main( int argc, char* argv[] )
    Communicators::ScopedInitializer< CommunicatorType > scopedInit(argc, argv);
    const int rank = CommunicatorType::GetRank( CommunicatorType::AllGroup );
 
-   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) ) {
-      conf_desc.printUsage( argv[ 0 ] );
+   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) )
       return EXIT_FAILURE;
-   }
    if( ! Devices::Host::setup( parameters ) ||
        ! Devices::Cuda::setup( parameters ) ||
        ! CommunicatorType::setup( parameters ) )
diff --git a/src/Benchmarks/NDArray/tnl-benchmark-ndarray-boundary.h b/src/Benchmarks/NDArray/tnl-benchmark-ndarray-boundary.h
index 285dd6f3d7..29445234c6 100644
--- a/src/Benchmarks/NDArray/tnl-benchmark-ndarray-boundary.h
+++ b/src/Benchmarks/NDArray/tnl-benchmark-ndarray-boundary.h
@@ -14,6 +14,7 @@
 
 #include <TNL/Assert.h>
 #include <TNL/Math.h>
+#include <TNL/Config/parseCommandLine.h>
 
 #include <TNL/Containers/NDArray.h>
 
@@ -423,10 +424,8 @@ int main( int argc, char* argv[] )
 
    setupConfig( conf_desc );
 
-   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) ) {
-      conf_desc.printUsage( argv[ 0 ] );
+   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) )
       return EXIT_FAILURE;
-   }
 
    if( ! Devices::Host::setup( parameters ) ||
        ! Devices::Cuda::setup( parameters ) )
diff --git a/src/Benchmarks/NDArray/tnl-benchmark-ndarray.h b/src/Benchmarks/NDArray/tnl-benchmark-ndarray.h
index 0c29b21b58..9f17b8b5c7 100644
--- a/src/Benchmarks/NDArray/tnl-benchmark-ndarray.h
+++ b/src/Benchmarks/NDArray/tnl-benchmark-ndarray.h
@@ -15,6 +15,7 @@
 #include <TNL/Assert.h>
 #include <TNL/Math.h>
 #include <TNL/Algorithms/ParallelFor.h>
+#include <TNL/Config/parseCommandLine.h>
 
 #include <TNL/Containers/NDArray.h>
 #include <TNL/Containers/ndarray/Operations.h>
@@ -411,10 +412,8 @@ int main( int argc, char* argv[] )
 
    setupConfig( conf_desc );
 
-   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) ) {
-      conf_desc.printUsage( argv[ 0 ] );
+   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) )
       return EXIT_FAILURE;
-   }
 
    if( ! Devices::Host::setup( parameters ) ||
        ! Devices::Cuda::setup( parameters ) )
diff --git a/src/Benchmarks/ODESolvers/tnl-benchmark-ode-solvers.h b/src/Benchmarks/ODESolvers/tnl-benchmark-ode-solvers.h
index dad2cdd8dc..c9389e9220 100644
--- a/src/Benchmarks/ODESolvers/tnl-benchmark-ode-solvers.h
+++ b/src/Benchmarks/ODESolvers/tnl-benchmark-ode-solvers.h
@@ -20,8 +20,7 @@
 #include <TNL/Debugging/FPE.h>
 #endif
 
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/Devices/Host.h>
 #include <TNL/Devices/Cuda.h>
 #include <TNL/Communicators/MpiCommunicator.h>
@@ -233,10 +232,8 @@ main( int argc, char* argv[] )
    Communicators::ScopedInitializer< CommunicatorType > scopedInit(argc, argv);
    const int rank = CommunicatorType::GetRank( CommunicatorType::AllGroup );
 
-   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) ) {
-      conf_desc.printUsage( argv[ 0 ] );
+   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) )
       return EXIT_FAILURE;
-   }
    if( ! Devices::Host::setup( parameters ) ||
        ! Devices::Cuda::setup( parameters ) ||
        ! CommunicatorType::setup( parameters ) )
diff --git a/src/Benchmarks/SpMV/tnl-benchmark-spmv.h b/src/Benchmarks/SpMV/tnl-benchmark-spmv.h
index 65416f0432..4c6aea68ed 100644
--- a/src/Benchmarks/SpMV/tnl-benchmark-spmv.h
+++ b/src/Benchmarks/SpMV/tnl-benchmark-spmv.h
@@ -16,8 +16,7 @@
 
 #include <TNL/Devices/Host.h>
 #include <TNL/Devices/Cuda.h>
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 
 #include <Benchmarks/BLAS/array-operations.h>
 #include <Benchmarks/BLAS/vector-operations.h>
@@ -102,10 +101,8 @@ main( int argc, char* argv[] )
    //              terminate called after throwing an instance of 'int'
    //      [1]    17156 abort (core dumped)  ~/tnl-dev/Debug/bin/./tnl-benchmark-spmv-dbg --help
 
-   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) ) {
-      conf_desc.printUsage( argv[ 0 ] );
+   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) )
       return EXIT_FAILURE;
-   }
 
    if( ! Devices::Host::setup( parameters ) ||
        ! Devices::Cuda::setup( parameters ) )
diff --git a/src/Benchmarks/Traversers/tnl-benchmark-traversers.h b/src/Benchmarks/Traversers/tnl-benchmark-traversers.h
index dbe637d826..30c364ac37 100644
--- a/src/Benchmarks/Traversers/tnl-benchmark-traversers.h
+++ b/src/Benchmarks/Traversers/tnl-benchmark-traversers.h
@@ -16,7 +16,7 @@
 //#include "grid-traversing.h"
 #include "GridTraversersBenchmark.h"
 
-#include <TNL/Config/ConfigDescription.h>
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/Devices/Host.h>
 #include <TNL/Devices/Cuda.h>
 #include <TNL/Algorithms/ParallelFor.h>
@@ -490,10 +490,8 @@ int main( int argc, char* argv[] )
    Config::ParameterContainer parameters;
    
    setupConfig( config );
-   if( ! parseCommandLine( argc, argv, config, parameters ) ) {
-      config.printUsage( argv[ 0 ] );
+   if( ! parseCommandLine( argc, argv, config, parameters ) )
       return EXIT_FAILURE;
-   }
 
    if( ! Devices::Host::setup( parameters ) ||
        ! Devices::Cuda::setup( parameters ) )
diff --git a/src/TNL/Solvers/Solver_impl.h b/src/TNL/Solvers/Solver_impl.h
index ef865e8b7b..9182c620fe 100644
--- a/src/TNL/Solvers/Solver_impl.h
+++ b/src/TNL/Solvers/Solver_impl.h
@@ -13,6 +13,7 @@
 #include <TNL/Solvers/SolverInitiator.h>
 #include <TNL/Solvers/SolverStarter.h>
 #include <TNL/Solvers/SolverConfig.h>
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/Devices/Cuda.h>
 #include <TNL/Communicators/MpiCommunicator.h>
 #include <TNL/Communicators/ScopedInitializer.h>
diff --git a/src/Tools/tnl-dicom-reader.cpp b/src/Tools/tnl-dicom-reader.cpp
index c0f770e497..52eb7f7786 100644
--- a/src/Tools/tnl-dicom-reader.cpp
+++ b/src/Tools/tnl-dicom-reader.cpp
@@ -8,9 +8,8 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
-#include <TNL/Images//DicomSeries.h>
+#include <TNL/Config/parseCommandLine.h>
+#include <TNL/Images/DicomSeries.h>
 #include <TNL/FileName.h>
 
 using namespace TNL;
@@ -85,15 +84,12 @@ int main( int argc, char* argv[] )
    Config::ConfigDescription configDescription;
    setupConfig( configDescription );
    if( ! parseCommandLine( argc, argv, configDescription, parameters ) )
-   {
-      configDescription.printUsage( argv[ 0 ] );
       return EXIT_FAILURE;
-   }
    if( ! parameters.checkParameter( "dicom-files" ) &&
        ! parameters.checkParameter( "dicom-series") )
    {
        std::cerr << "Neither DICOM series nor DICOM files are given." << std::endl;
-       configDescription.printUsage( argv[ 0 ] );
+       Config::printUsage( configDescription, argv[ 0 ] );
        return EXIT_FAILURE;
    }
 #ifdef HAVE_DCMTK_H
diff --git a/src/Tools/tnl-diff.cpp b/src/Tools/tnl-diff.cpp
index 7e442c982f..84d7a08096 100644
--- a/src/Tools/tnl-diff.cpp
+++ b/src/Tools/tnl-diff.cpp
@@ -9,6 +9,7 @@
 /* See Copyright Notice in tnl/Copyright */
 
 #include "tnl-diff.h"
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/Meshes/DummyMesh.h>
 #include <TNL/Meshes/Grid.h>
 
@@ -37,10 +38,7 @@ int main( int argc, char* argv[] )
    Config::ConfigDescription conf_desc;
    setupConfig( conf_desc );
    if( ! parseCommandLine( argc, argv, conf_desc, parameters ) )
-   {
-      conf_desc.printUsage( argv[ 0 ] );
-      return 1;
-   }
+      return EXIT_FAILURE;
 
    String meshFile = parameters.getParameter< String >( "mesh" );
    /*if( meshFile == "" )
diff --git a/src/Tools/tnl-grid-setup.cpp b/src/Tools/tnl-grid-setup.cpp
index 261f1cf716..115f020659 100644
--- a/src/Tools/tnl-grid-setup.cpp
+++ b/src/Tools/tnl-grid-setup.cpp
@@ -9,7 +9,7 @@
 /* See Copyright Notice in tnl/Copyright */
 
 #include "tnl-grid-setup.h"
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 
 void configSetup( Config::ConfigDescription& config )
 {
diff --git a/src/Tools/tnl-image-converter.cpp b/src/Tools/tnl-image-converter.cpp
index 493ff503c8..d1ef8fa92b 100644
--- a/src/Tools/tnl-image-converter.cpp
+++ b/src/Tools/tnl-image-converter.cpp
@@ -8,8 +8,7 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/FileName.h>
 #include <TNL/Meshes/Grid.h>
 #include <TNL/Pointers/SharedPointer.h>
@@ -206,15 +205,12 @@ int main( int argc, char* argv[] )
    Config::ConfigDescription configDescription;
    configSetup( configDescription );
    if( ! parseCommandLine( argc, argv, configDescription, parameters ) )
-   {
-      configDescription.printUsage( argv[ 0 ] );
       return EXIT_FAILURE;
-   }
    if( ! parameters.checkParameter( "input-images" ) &&
        ! parameters.checkParameter( "input-files") )
    {
        std::cerr << "Neither input images nor input .tnl files are given." << std::endl;
-       configDescription.printUsage( argv[ 0 ] );
+       Config::printUsage( configDescription, argv[ 0 ] );
        return EXIT_FAILURE;
    }
    if( parameters.checkParameter( "input-images" ) )
diff --git a/src/Tools/tnl-init.cpp b/src/Tools/tnl-init.cpp
index 9accb36342..220874ebc9 100644
--- a/src/Tools/tnl-init.cpp
+++ b/src/Tools/tnl-init.cpp
@@ -11,8 +11,7 @@
 #include "tnl-init.h"
 
 #include <TNL/File.h>
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/Functions/TestFunction.h>
 #include <TNL/Meshes/DummyMesh.h>
 #include <TNL/Meshes/Grid.h>
diff --git a/src/Tools/tnl-lattice-init.cpp b/src/Tools/tnl-lattice-init.cpp
index f9d746f89f..a4aa1ba0cf 100644
--- a/src/Tools/tnl-lattice-init.cpp
+++ b/src/Tools/tnl-lattice-init.cpp
@@ -10,8 +10,7 @@
 
 #include "tnl-lattice-init.h"
 
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 
 
 using namespace TNL;
diff --git a/src/Tools/tnl-mesh-converter.cpp b/src/Tools/tnl-mesh-converter.cpp
index cd9de1a597..ac8f992196 100644
--- a/src/Tools/tnl-mesh-converter.cpp
+++ b/src/Tools/tnl-mesh-converter.cpp
@@ -8,7 +8,7 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/Meshes/TypeResolver/TypeResolver.h>
 #include <TNL/Meshes/Writers/VTKWriter.h>
 #include <TNL/Meshes/Writers/NetgenWriter.h>
@@ -124,9 +124,8 @@ int main( int argc, char* argv[] )
  
    configSetup( conf_desc );
 
-   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) ) {
+   if( ! parseCommandLine( argc, argv, conf_desc, parameters ) )
       return EXIT_FAILURE;
-   }
 
    const String inputFileName = parameters.getParameter< String >( "input-file" );
    const String outputFileName = parameters.getParameter< String >( "output-file" );
diff --git a/src/Tools/tnl-view.cpp b/src/Tools/tnl-view.cpp
index 32fac87d96..a277469916 100644
--- a/src/Tools/tnl-view.cpp
+++ b/src/Tools/tnl-view.cpp
@@ -11,8 +11,7 @@
 #include "tnl-view.h"
 #include <cstdlib>
 #include <TNL/File.h>
-#include <TNL/Config/ConfigDescription.h>
-#include <TNL/Config/ParameterContainer.h>
+#include <TNL/Config/parseCommandLine.h>
 #include <TNL/Meshes/DummyMesh.h>
 #include <TNL/Meshes/Grid.h>
 #include <TNL/Meshes/TypeResolver/TypeResolver.h>
-- 
GitLab