IVGCVSW-4487 Remove boost::filesystem

 * Replace filesystem::path
 * Replace filesystem::exists
 * Replace filesystem::is_directory
 * Replace filesystem::directory_iterator
 * Replace filesystem::filesystem_error exception
 * Replace filesystem::temp_directory_path
 * Replace filesystem::unique path
 * Replace filesystem::ofstream with std::ofstream
 * Replace filesystem::remove
 * Replace filesystem::is_regular_file
 * Replace boost::optional with armnn::Optional in touched files
 * Remove some superfluous includes
 * Update build guides, GlobalConfig.cmake and CMakeLists.txt
 * Remove redundant armnnUtils::Filesystem::Remove function.
 * Remove redundant armnnUtils::Filesystem::GetFileSize function.

Temporarily adding back Boost::filesystem to enable Boost::dll.

Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Signed-off-by: Colm Donelan <Colm.Donelan@arm.com>

Change-Id: Ifa46d4a0097d2612ddacd8e9736c0b36e365fb11
diff --git a/src/armnnQuantizer/CommandLineProcessor.cpp b/src/armnnQuantizer/CommandLineProcessor.cpp
index 0cccb66..ace4a50 100644
--- a/src/armnnQuantizer/CommandLineProcessor.cpp
+++ b/src/armnnQuantizer/CommandLineProcessor.cpp
@@ -4,12 +4,9 @@
 //
 
 #include "CommandLineProcessor.hpp"
-
-#define BOOST_FILESYSTEM_NO_DEPRECATED
+#include <Filesystem.hpp>
 
 #include <boost/program_options.hpp>
-#include <boost/filesystem/operations.hpp>
-#include <boost/filesystem/path.hpp>
 
 namespace armnnQuantizer
 {
@@ -27,13 +24,13 @@
         dir += "/";
     }
 
-    if (!boost::filesystem::exists(dir))
+    if (!fs::exists(dir))
     {
         std::cerr << "Output directory [" << dir << "] does not exist" << std::endl;
         return false;
     }
 
-    if (!boost::filesystem::is_directory(dir))
+    if (!fs::is_directory(dir))
     {
         std::cerr << "Given output directory [" << dir << "] is not a directory" << std::endl;
         return false;
@@ -44,13 +41,13 @@
 
 bool ValidateProvidedFile(const std::string& inputFileName)
 {
-    if (!boost::filesystem::exists(inputFileName))
+    if (!fs::exists(inputFileName))
     {
         std::cerr << "Provided file [" << inputFileName << "] does not exist" << std::endl;
         return false;
     }
 
-    if (boost::filesystem::is_directory(inputFileName))
+    if (fs::is_directory(inputFileName))
     {
         std::cerr << "Given file [" << inputFileName << "] is a directory" << std::endl;
         return false;
@@ -154,7 +151,7 @@
         }
         else
         {
-            boost::filesystem::path csvFilePath(m_CsvFileName);
+            fs::path csvFilePath(m_CsvFileName);
             m_CsvFileDirectory = csvFilePath.parent_path().c_str();
         }
 
@@ -170,7 +167,7 @@
     std::string output(m_OutputDirectory);
     output.append(m_OutputFileName);
 
-    if (boost::filesystem::exists(output))
+    if (fs::exists(output))
     {
         std::cerr << "Output file [" << output << "] already exists" << std::endl;
         return false;
diff --git a/src/armnnQuantizer/QuantizationDataSet.cpp b/src/armnnQuantizer/QuantizationDataSet.cpp
index 7042d74..819b437 100644
--- a/src/armnnQuantizer/QuantizationDataSet.cpp
+++ b/src/armnnQuantizer/QuantizationDataSet.cpp
@@ -6,12 +6,8 @@
 #include "QuantizationDataSet.hpp"
 #include "CsvReader.hpp"
 
-#define BOOST_FILESYSTEM_NO_DEPRECATED
-
 #include <armnn/utility/IgnoreUnused.hpp>
-
-#include <boost/filesystem/operations.hpp>
-#include <boost/filesystem/path.hpp>
+#include <Filesystem.hpp>
 
 namespace armnnQuantizer
 {
@@ -105,7 +101,7 @@
 {
     std::string fileName = csvRows[rowIndex].values[2];
 
-    if (!boost::filesystem::exists(fileName))
+    if (!fs::exists(fileName))
     {
         throw armnn::ParseException("File [ " + fileName + "] provided on CSV row " + std::to_string(rowIndex) +
                                     " does not exist.");
diff --git a/src/armnnQuantizer/test/QuantizationDataSetTests.cpp b/src/armnnQuantizer/test/QuantizationDataSetTests.cpp
index 2b46aae..9e71f68 100644
--- a/src/armnnQuantizer/test/QuantizationDataSetTests.cpp
+++ b/src/armnnQuantizer/test/QuantizationDataSetTests.cpp
@@ -6,18 +6,14 @@
 #include <boost/test/unit_test.hpp>
 
 #include "../QuantizationDataSet.hpp"
+
+#include <armnn/Optional.hpp>
+#include <Filesystem.hpp>
 #include <iostream>
 #include <fstream>
 #include <vector>
 #include <map>
 
-#define BOOST_FILESYSTEM_NO_DEPRECATED
-
-#include <boost/filesystem/operations.hpp>
-#include <boost/filesystem/fstream.hpp>
-#include <boost/filesystem/path.hpp>
-#include <boost/optional/optional.hpp>
-
 
 using namespace armnnQuantizer;
 
@@ -36,20 +32,20 @@
 
     std::string CreateTempCsvFile(std::map<int, std::vector<float>> csvData)
     {
-        boost::filesystem::path fileDir = boost::filesystem::temp_directory_path();
-        boost::filesystem::path p{fileDir / boost::filesystem::unique_path("%%%%-%%%%-%%%%.csv")};
+        fs::path fileDir = fs::temp_directory_path();
+        fs::path p = armnnUtils::Filesystem::NamedTempFile("Armnn-QuantizationCreateTempCsvFileTest-TempFile.csv");
 
-        boost::filesystem::path tensorInput1{fileDir / boost::filesystem::unique_path("input_0_0.raw")};
-        boost::filesystem::path tensorInput2{fileDir / boost::filesystem::unique_path("input_1_0.raw")};
-        boost::filesystem::path tensorInput3{fileDir / boost::filesystem::unique_path("input_2_0.raw")};
+        fs::path tensorInput1{fileDir / "input_0_0.raw"};
+        fs::path tensorInput2{fileDir / "input_1_0.raw"};
+        fs::path tensorInput3{fileDir / "input_2_0.raw"};
 
         try
         {
-            boost::filesystem::ofstream ofs{p};
+            std::ofstream ofs{p};
 
-            boost::filesystem::ofstream ofs1{tensorInput1};
-            boost::filesystem::ofstream ofs2{tensorInput2};
-            boost::filesystem::ofstream ofs3{tensorInput3};
+            std::ofstream ofs1{tensorInput1};
+            std::ofstream ofs2{tensorInput2};
+            std::ofstream ofs3{tensorInput3};
 
 
             for(auto entry : csvData.at(0))
@@ -95,17 +91,17 @@
         {
             try
             {
-                boost::filesystem::remove(*m_CsvFile);
+                fs::remove(m_CsvFile.value());
             }
             catch (std::exception &e)
             {
-                std::cerr << "Unable to delete file [" << *m_CsvFile << "] : " << e.what() << std::endl;
+                std::cerr << "Unable to delete file [" << m_CsvFile.value() << "] : " << e.what() << std::endl;
                 BOOST_TEST(false);
             }
         }
     }
 
-    boost::optional<boost::filesystem::path> m_CsvFile;
+    armnn::Optional<fs::path> m_CsvFile;
 };