[Compiler/skeleton] Set up compiler source files
authorJihoon Lee <jhoon.it.lee@samsung.com>
Thu, 1 Apr 2021 08:05:58 +0000 (17:05 +0900)
committerJijoong Moon <jijoong.moon@samsung.com>
Wed, 7 Apr 2021 01:34:17 +0000 (10:34 +0900)
This patch setup compiler source files

**Self evaluation:**
1. Build test: [X]Passed [ ]Failed [ ]Skipped
2. Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee <jhoon.it.lee@samsung.com>
jni/Android.mk
nntrainer/compiler/compiler.cpp [new file with mode: 0644]
nntrainer/compiler/compiler.h [new file with mode: 0644]
nntrainer/compiler/meson.build [new file with mode: 0644]
nntrainer/meson.build
test/meson.build
test/unittest/compiler/meson.build [new file with mode: 0644]
test/unittest/compiler/unittest_compiler.cpp [new file with mode: 0644]
test/unittest/meson.build

index 5e84b71..7a71e59 100644 (file)
@@ -126,6 +126,7 @@ NNTRAINER_SRCS := $(NNTRAINER_ROOT)/nntrainer/models/neuralnet.cpp \
                   $(NNTRAINER_ROOT)/nntrainer/utils/util_func.cpp \
                   $(NNTRAINER_ROOT)/nntrainer/utils/parse_util.cpp \
                   $(NNTRAINER_ROOT)/nntrainer/utils/profiler.cpp \
+                  $(NNTRAINER_ROOT)/nntrainer/compiler/compiler.cpp \
                   $(NNTRAINER_ROOT)/nntrainer/app_context.cpp
 
 # Add tflite backbone building
@@ -141,6 +142,7 @@ NNTRAINER_INCLUDES := $(NNTRAINER_ROOT)/nntrainer \
                       $(NNTRAINER_ROOT)/nntrainer/optimizers \
                       $(NNTRAINER_ROOT)/nntrainer/utils \
                       $(NNTRAINER_ROOT)/nntrainer/graph \
+                      $(NNTRAINER_ROOT)/nntrainer/compiler \
                       $(NNTRAINER_ROOT)/api \
                       $(NNTRAINER_ROOT)/api/ccapi/include \
                       $(NNTRAINER_ROOT)/api/capi/include/platform
diff --git a/nntrainer/compiler/compiler.cpp b/nntrainer/compiler/compiler.cpp
new file mode 100644 (file)
index 0000000..ac6c90b
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: Apache-2.0
+/**
+ * Copyright (C) 2021 Jihoon Lee <jhoon.it.lee@samsung.com>
+ *
+ * @file compiler.cpp
+ * @date 01 April 2021
+ * @brief NNTrainer compiler that reads and generates excutable graph
+ * @see        https://github.com/nnstreamer/nntrainer
+ * @author Jihoon Lee <jhoon.it.lee@samsung.com>
+ * @bug No known bugs except for NYI items
+ */
+
+#include <iostream>
+
+namespace nntrainer {
+
+void hello_world() { std::cout << "hello_world\n"; }
+
+} // namespace nntrainer
diff --git a/nntrainer/compiler/compiler.h b/nntrainer/compiler/compiler.h
new file mode 100644 (file)
index 0000000..c4eb04f
--- /dev/null
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: Apache-2.0
+/**
+ * Copyright (C) 2021 Jihoon Lee <jhoon.it.lee@samsung.com>
+ *
+ * @file compiler.h
+ * @date 01 April 2021
+ * @brief NNTrainer compiler that reads and generates excutable graph
+ * @see        https://github.com/nnstreamer/nntrainer
+ * @author Jihoon Lee <jhoon.it.lee@samsung.com>
+ * @bug No known bugs except for NYI items
+ */
+
+namespace nntrainer {
+
+/**
+ * @brief a simple scaffoliding function
+ *
+ */
+void hello_world();
+
+} // namespace nntrainer
diff --git a/nntrainer/compiler/meson.build b/nntrainer/compiler/meson.build
new file mode 100644 (file)
index 0000000..cd2ae62
--- /dev/null
@@ -0,0 +1,14 @@
+compiler_sources = [
+  'compiler.cpp'
+]
+
+compiler_headers = []
+
+foreach s : compiler_sources
+  nntrainer_sources += meson.current_source_dir() / s
+endforeach
+
+foreach h : compiler_headers
+  nntrainer_headers += meson.current_source_dir() / h
+endforeach
+
index 5888b88..621dd0b 100644 (file)
@@ -21,6 +21,7 @@ if build_platform == 'tizen'
 endif
 
 nntrainer_elements = [
+  'compiler',
   'dataset',
   'layers',
   'models',
index ee4d634..225365a 100644 (file)
@@ -3,14 +3,11 @@ run_command('mkdir', '-p', nntrainer_test_resdir)
 
 nntrainer_test_inc = include_directories('./include')
 
-nntrainer_test_deps = [
-  nntrainer_dep
-]
 
 nntrainer_testutil_lib = static_library(
   'nntrainer_test_util',
   'nntrainer_test_util.cpp',
-  dependencies: [nntrainer_test_deps],
+  dependencies: [nntrainer_dep],
   include_directories: nntrainer_test_inc
 )
 
@@ -19,8 +16,17 @@ nntrainer_testutil_dep = declare_dependency(
   include_directories: nntrainer_test_inc
 )
 
-nntrainer_test_deps += nntrainer_testutil_dep
-nntrainer_test_deps += gtest_dep
+nntrainer_test_deps = [
+  nntrainer_dep,
+  nntrainer_testutil_dep,
+  gtest_dep
+]
+
+nntrainer_test_main_deps = [
+  nntrainer_dep,
+  nntrainer_testutil_dep,
+  gtest_main_dep
+]
 
 if get_option('enable-capi')
   subdir('tizen_capi')
diff --git a/test/unittest/compiler/meson.build b/test/unittest/compiler/meson.build
new file mode 100644 (file)
index 0000000..b49596a
--- /dev/null
@@ -0,0 +1,14 @@
+test_target = [
+  'unittest_compiler'
+]
+
+foreach target: test_target
+  exe = executable(
+    target,
+    target + '.cpp',
+    dependencies: nntrainer_test_main_deps,
+    install: get_option('enable-test'),
+    install_dir: application_install_dir
+  )
+  test(target, exe, args: ['--gtest_output=xml:@0@/@1@.xml'.format(meson.build_root(), target)] )
+endforeach
diff --git a/test/unittest/compiler/unittest_compiler.cpp b/test/unittest/compiler/unittest_compiler.cpp
new file mode 100644 (file)
index 0000000..ff65454
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: Apache-2.0
+/**
+ * Copyright (C) 2021 Jihoon Lee <jhoon.it.lee@samsung.com>
+ *
+ * @file unittest_compiler.cpp
+ * @date 01 April 2021
+ * @brief compiler test
+ * @see        https://github.com/nnstreamer/nntrainer
+ * @author Jihoon Lee <jhoon.it.lee@samsung.com>
+ * @bug No known bugs except for NYI items
+ */
+
+#include <gtest/gtest.h>
+
+#include <compiler.h>
+
+TEST(scaffoldingTest, sampleTest) { EXPECT_NO_THROW(nntrainer::hello_world()); }
index 27cf524..a8d1244 100644 (file)
@@ -52,3 +52,4 @@ foreach target: test_target
   test(target, exe, args: ['--gtest_output=xml:@0@/@1@.xml'.format(meson.build_root(), target)] )
 endforeach
 
+subdir('compiler')