IVGCVSW-6708 Break Profiling Dependence on IRuntime ExternalProfilingOptions

Change-Id: I30a46f3368bbbf33019eac4fa1245f6ff69deacd
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
diff --git a/src/armnnUtils/ProfilingOptionsConverter.cpp b/src/armnnUtils/ProfilingOptionsConverter.cpp
new file mode 100644
index 0000000..6d5b351
--- /dev/null
+++ b/src/armnnUtils/ProfilingOptionsConverter.cpp
@@ -0,0 +1,30 @@
+//
+// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "ProfilingOptionsConverter.hpp"
+
+#include <algorithm>
+#include <iterator>
+
+namespace armnn
+{
+
+profiling::ProfilingOptions ConvertExternalProfilingOptions(
+    const IRuntime::CreationOptions::ExternalProfilingOptions& options)
+{
+    profiling::ProfilingOptions convertedOptions;
+    convertedOptions.m_EnableProfiling =     options.m_EnableProfiling;
+    convertedOptions.m_TimelineEnabled =     options.m_TimelineEnabled;
+    convertedOptions.m_OutgoingCaptureFile = options.m_OutgoingCaptureFile;
+    convertedOptions.m_IncomingCaptureFile = options.m_IncomingCaptureFile;
+    convertedOptions.m_FileOnly =            options.m_FileOnly;
+    convertedOptions.m_CapturePeriod =       options.m_CapturePeriod;
+    convertedOptions.m_FileFormat =          options.m_FileFormat;
+    std::copy(options.m_LocalPacketHandlers.begin(), options.m_LocalPacketHandlers.end(),
+        std::back_inserter(convertedOptions.m_LocalPacketHandlers));
+    return convertedOptions;
+}
+
+} // namespace armnn