Add 'GEMMLowpSource' as an external module (#178)
author박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 <jh1302.park@samsung.com>
Mon, 30 Apr 2018 08:08:41 +0000 (17:08 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Mon, 30 Apr 2018 08:08:41 +0000 (17:08 +0900)
This commit adds 'GEMMLowpSource' (which is necessary to build
tensorflow lite) as an external module that nncc_find_package can load.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
CMakeLists.txt
cmake/packages/GEMMLowpSourceConfig.cmake [new file with mode: 0644]

index 3addb55..dfc34e6 100644 (file)
@@ -15,6 +15,7 @@ endmacro(nncc_find_package)
 ###
 option(DOWNLOAD_EIGEN "Download Eigen source" OFF)
 option(DOWNLOAD_FARMHASH "Download farmhash source" OFF)
+option(DOWNLOAD_GEMMLOWP "Download GEMM low precesion library source" OFF)
 option(DOWNLOAD_FLATBUFFERS "Download FlatBuffers source" OFF)
 option(DOWNLOAD_TENSORFLOW "Download TensorFlow source" OFF)
 
diff --git a/cmake/packages/GEMMLowpSourceConfig.cmake b/cmake/packages/GEMMLowpSourceConfig.cmake
new file mode 100644 (file)
index 0000000..f58e1ab
--- /dev/null
@@ -0,0 +1,19 @@
+function(_GEMMLowpSource_import)
+  if(NOT DOWNLOAD_GEMMLOWP)
+    set(GEMMLowpSource_FOUND FALSE PARENT_SCOPE)
+    return()
+  endif(NOT DOWNLOAD_GEMMLOWP)
+
+  nncc_find_package(ExternalSourceTools REQUIRED)
+  nncc_find_package(OptionTools REQUIRED)
+
+  # NOTE TensorFlow 1.7 uses the following URL
+  envoption(GEMMLOWP_URL https://github.com/google/gemmlowp/archive/7c7c744640ddc3d0af18fb245b4d23228813a71b.zip)
+
+  ExternalSource_Download(GEMMLOWP ${GEMMLOWP_URL})
+
+  set(GEMMLowpSource_DIR ${GEMMLOWP_SOURCE_DIR} PARENT_SCOPE)
+  set(GEMMLowpSource_FOUND TRUE PARENT_SCOPE)
+endfunction(_GEMMLowpSource_import)
+
+_GEMMLowpSource_import()