You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by al...@apache.org on 2018/06/07 16:37:21 UTC

nifi-minifi-cpp git commit: MINIFICPP-524: Make building rocksdb default

Repository: nifi-minifi-cpp
Updated Branches:
  refs/heads/master 9dbad3bde -> 8c94b3421


MINIFICPP-524: Make building rocksdb default

MINIFICPP-526: Update script to support changing rocksdb options

This closes #352.

Signed-off-by: Aldrin Piri <al...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/8c94b342
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/8c94b342
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/8c94b342

Branch: refs/heads/master
Commit: 8c94b3421e0156a25a84b8cfe71b6d6a5399678e
Parents: 9dbad3b
Author: Marc Parisi <ph...@apache.org>
Authored: Tue Jun 5 10:51:04 2018 -0400
Committer: Aldrin Piri <al...@apache.org>
Committed: Thu Jun 7 11:49:45 2018 -0400

----------------------------------------------------------------------
 CMakeLists.txt |   1 +
 bootstrap.sh   | 107 +++++++++++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 98 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8c94b342/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e44507..4a4e2e6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,6 +29,7 @@ option(USE_SYSTEM_OPENSSL "Instructs the build system to search for and use an S
 option(USE_SYSTEM_UUID "Instructs the build system to search for and use an UUID library available in the host system" ON)
 option(USE_SYSTEM_CURL "Instructs the build system to search for and use a cURL library available in the host system" ON)
 option(USE_SYSTEM_ZLIB "Instructs the build system to search for and use a zlib library available in the host system" ON)
+option(BUILD_ROCKSDB "Instructs the build system to use RocksDB from the third party directory" ON)
 
 include(FeatureSummary)
 include(ExternalProject)

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8c94b342/bootstrap.sh
----------------------------------------------------------------------
diff --git a/bootstrap.sh b/bootstrap.sh
index d5fb8ec..b0fecdb 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -30,6 +30,7 @@ FALSE="Disabled"
 FEATURES_SELECTED="false"
 AUTO_REMOVE_EXTENSIONS="true"
 export NO_PROMPT="false"
+ALL_FEATURES_ENABLED=${FALSE}
 
 DEPLOY="false"
 OPTIONS=()
@@ -87,7 +88,8 @@ EnableAllFeatures(){
     #	eval "$option=${TRUE}"
   done
 }
-
+MENU="features"
+GUIDED_INSTALL=${FALSE}
 while :; do
   case $1 in
     -n|--noprompt)
@@ -113,6 +115,12 @@ while :; do
       BUILD="true"
       PACKAGE="true"
       ;;
+    -i|--install)
+      GUIDED_INSTALL="Enabled"
+      EnableAllFeatures
+      MENU="main"
+      ALL_FEATURES_ENABLED=${TRUE}
+      ;;
     -b|--build)
       CORES=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || sysctl -n hw.ncpu)
       BUILD="true"
@@ -238,6 +246,7 @@ CMAKE_REVISION=`echo $CMAKE_VERSION | cut -d. -f3`
 
 add_cmake_option PORTABLE_BUILD ${TRUE}
 add_cmake_option DEBUG_SYMBOLS ${FALSE}
+add_cmake_option BUILD_ROCKSDB ${TRUE}
 ## uses the source from the third party directory
 add_enabled_option ROCKSDB_ENABLED ${TRUE} "DISABLE_ROCKSDB"
 ## need libcurl installed
@@ -297,6 +306,7 @@ can_deploy(){
 
 ToggleFeature(){
   VARIABLE_VALUE=${!1}
+  ALL_FEATURES_ENABLED="Disabled"
   if [ $VARIABLE_VALUE = "Enabled" ]; then
     eval "$1=${FALSE}"
   else
@@ -390,8 +400,68 @@ fi
 
 ## change to the directory
 
+
+
 pushd build
 
+if [ "$GUIDED_INSTALL" == "${TRUE}" ]; then
+  EnableAllFeatures
+  ALL_FEATURES_ENABLED=${TRUE}
+fi
+
+
+show_main_menu() {
+  clear
+  echo "****************************************"
+  echo " MiNiFi C++ Main Menu."
+  echo "****************************************"
+  echo "A. Select MiNIFi C++ Features " 
+  if [ "$ALL_FEATURES_ENABLED" = "${TRUE}" ]; then
+    echo "  All features enabled  ........$(print_feature_status ALL_FEATURES_ENABLED)"
+  fi
+  echo "B. Select Advanced Features   "
+  echo "C. Continue with selected options   "
+  echo -e "Q. Exit\r\n"
+}
+
+read_main_menu_options(){
+  local choice
+  read -p "Enter choice [ A-C ] " choice
+  choice=$(echo ${choice} | tr '[:upper:]' '[:lower:]')
+  case $choice in
+    a) MENU="features" ;;
+    b) MENU="advanced" ;;
+    c) FEATURES_SELECTED="true" ;;
+    q) exit 0;;
+    *) echo -e "${RED}Please enter a valid option...${NO_COLOR}" && sleep 1
+  esac
+}
+
+show_advanced_features_menu() {
+  clear
+  echo "****************************************"
+  echo " MiNiFi C++ Advanced Features."
+  echo "****************************************"
+  echo "A. Portable Build ..............$(print_feature_status PORTABLE_BUILD)"
+  echo "B. Build with Debug symbols ....$(print_feature_status DEBUG_SYMBOLS)"
+  echo "C. Build RocksDB from source ...$(print_feature_status BUILD_ROCKSDB)"
+  echo -e "R. Return to Main Menu\r\n"
+}
+
+read_advanced_menu_options(){
+  local choice
+  read -p "Enter choice [ A-C ] " choice
+  choice=$(echo ${choice} | tr '[:upper:]' '[:lower:]')
+  case $choice in
+    a) ToggleFeature PORTABLE_BUILD ;;
+    b) ToggleFeature DEBUG_SYMBOLS ;;
+    c) ToggleFeature BUILD_ROCKSDB ;;
+    r) MENU="main" ;;
+    *) echo -e "${RED}Please enter a valid option...${NO_COLOR}" && sleep 1
+  esac
+}
+
+
 
 show_supported_features() {
   clear
@@ -411,14 +481,16 @@ show_supported_features() {
   echo "K. Bustache Support ............$(print_feature_status BUSTACHE_ENABLED)"
   echo "L. MQTT Support ................$(print_feature_status MQTT_ENABLED)"
   echo "M. Enable all extensions"
-  echo "N. Portable Build ..............$(print_feature_status PORTABLE_BUILD)"
-  echo "O. Build with Debug symbols ....$(print_feature_status DEBUG_SYMBOLS)"
   echo "P. Continue with these options"
-  echo "Q. Exit"
+  if [ "$GUIDED_INSTALL" = "${TRUE}" ]; then
+ 	 echo "R. Return to Main Menu"
+  fi
+  echo "Q. Quit"
   echo "* Extension cannot be installed due to"
   echo -e "  version of cmake or other software\r\n"
 }
-read_options(){
+
+read_feature_options(){
   local choice
   read -p "Enter choice [ A - N ] " choice
   choice=$(echo ${choice} | tr '[:upper:]' '[:lower:]')
@@ -436,9 +508,11 @@ read_options(){
     k) ToggleFeature BUSTACHE_ENABLED ;;
     l) ToggleFeature MQTT_ENABLED ;;
     m) EnableAllFeatures ;;
-    n) ToggleFeature PORTABLE_BUILD ;;
-    o) ToggleFeature DEBUG_SYMBOLS ;;
     p) FEATURES_SELECTED="true" ;;
+    r) if [ "$GUIDED_INSTALL" = "${TRUE}" ]; then
+	   MENU="main" 
+       fi
+       ;;
     q) exit 0;;
     *) echo -e "${RED}Please enter an option A-L...${NO_COLOR}" && sleep 2
   esac
@@ -446,10 +520,17 @@ read_options(){
 
 while [ ! "$FEATURES_SELECTED" == "true" ]
 do
-  show_supported_features
-  read_options
+  if [ "$MENU"  == "main" ]; then
+    show_main_menu
+    read_main_menu_options
+  elif [ "$MENU" == "advanced" ]; then
+    show_advanced_features_menu
+    read_advanced_menu_options
+  else
+    show_supported_features
+    read_feature_options 
+  fi
 done
-
 ### ensure we have all dependencies
 
 
@@ -514,6 +595,12 @@ build_cmake_command(){
     CMAKE_BUILD_COMMAND="${CMAKE_BUILD_COMMAND} -DPORTABLE=OFF "
   fi
 
+  if [ "${BUILD_ROCKSDB}" = "${TRUE}" ]; then
+    CMAKE_BUILD_COMMAND="${CMAKE_BUILD_COMMAND} -DBUILD_ROCKSDB=ON "
+  else
+    CMAKE_BUILD_COMMAND="${CMAKE_BUILD_COMMAND} -DBUILD_ROCKSDB= "
+  fi
+
   CMAKE_BUILD_COMMAND="${CMAKE_BUILD_COMMAND} -DBUILD_IDENTIFIER=${BUILD_IDENTIFIER}"
 
   add_os_flags