Allow users to skip contrib project build (#1623)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Fri, 21 Sep 2018 06:18:47 +0000 (15:18 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Fri, 21 Sep 2018 06:18:47 +0000 (15:18 +0900)
With this commit, users are now allowed to skip some projects under
contrib via cmake options (-DBUILD_CONTRIB_XXX).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/CMakeLists.txt

index b034c86..80b5f31 100644 (file)
@@ -1,5 +1,24 @@
-# NOTE Add caffegen, nnkit, and ann before enco as enco's test framework depends on these projects
-add_subdirectory(caffegen)
-add_subdirectory(nnkit)
-add_subdirectory(ann)
-add_subdirectories(EXCLUDES caffegen nnkit ann)
+function(add_nncc_contrib_directory DIR)
+  string(TOUPPER ${DIR} PREFIX)
+
+  set(BUILD_CONTRIB_${PREFIX} ON CACHE BOOL "Build contrib/${dir}")
+
+  if(BUILD_CONTRIB_${PREFIX})
+    add_subdirectory(${DIR})
+  endif(BUILD_CONTRIB_${PREFIX})
+endfunction(add_nncc_contrib_directory)
+
+function(add_nncc_contrib_directories)
+  # NOTE Add caffegen, nnkit, and ann before enco as enco's test framework depends on these projects
+  add_nncc_contrib_directory(caffegen)
+  add_nncc_contrib_directory(nnkit)
+  add_nncc_contrib_directory(ann)
+
+  list_subdirectories(PROJECT_DIRS EXCLUDES caffegen nnkit ann)
+
+  foreach(PROJECT_DIR IN ITEMS ${PROJECT_DIRS})
+    add_nncc_contrib_directory(${PROJECT_DIR})
+  endforeach(PROJECT_DIR)
+endfunction(add_nncc_contrib_directories)
+
+add_nncc_contrib_directories()