[enco] Introduce make_backend function (#1667)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Fri, 28 Sep 2018 06:09:46 +0000 (15:09 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Fri, 28 Sep 2018 06:09:46 +0000 (15:09 +0900)
This commit introduces make_backend function which will abstract Backend
instance creation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/enco/core/CMakeLists.txt
contrib/enco/core/include/enco/Backend.h
contrib/enco/core/src/Backend.cpp

index a4ceaf4..38debe7 100644 (file)
@@ -6,6 +6,7 @@ add_library(enco_core STATIC ${SOURCES})
 set_target_properties(enco_core PROPERTIES POSITION_INDEPENDENT_CODE ON)
 target_include_directories(enco_core PRIVATE src)
 target_include_directories(enco_core PUBLIC include)
+target_link_libraries(enco_core enco_intf_cmdline)
 target_link_libraries(enco_core coco_core)
 target_link_libraries(enco_core coco_generic)
 target_link_libraries(enco_core pp)
index d4531f8..23e57ef 100644 (file)
@@ -1,10 +1,13 @@
 #ifndef __ENCO_BACKEND_H__
 #define __ENCO_BACKEND_H__
 
+#include "cmdline/View.h"
+
 #include "coco/IR/Module.h"
 #include "coco/IR/Data.h"
 
 #include <ostream>
+#include <memory>
 
 namespace enco
 {
@@ -26,4 +29,6 @@ private:
 
 } // namespace enco
 
+extern "C" std::unique_ptr<enco::Backend> make_backend(const cmdline::View &);
+
 #endif // __ENCO_BACKEND_H__
index d3a7bb2..afdc3e5 100644 (file)
 
 #include "Lower.h"
 
+#include <nncc/foundation/Memory.h>
+
 #include <stdexcept>
 
+using nncc::foundation::make_unique;
+
 namespace
 {
 
@@ -82,3 +86,10 @@ void Backend::compile(coco::Module *m, coco::Data *d)
 }
 
 } // namespace enco
+
+#include <iostream>
+
+std::unique_ptr<enco::Backend> make_backend(const cmdline::View &)
+{
+  return make_unique<enco::Backend>(std::cout);
+}