BuildLinux.sh 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. #!/bin/bash
  2. export ROOT=`pwd`
  3. export NCORES=`nproc --all`
  4. unset name
  5. while getopts ":dsiuh" opt; do
  6. case ${opt} in
  7. u )
  8. UPDATE_LIB="1"
  9. ;;
  10. i )
  11. BUILD_IMAGE="1"
  12. ;;
  13. d )
  14. BUILD_DEPS="1"
  15. ;;
  16. s )
  17. BUILD_SLIC3R="1"
  18. ;;
  19. h ) echo "Usage: ./BuildLinux.sh [-i][-u][-d][-s]"
  20. echo " -i: Generate appimage (optional)"
  21. echo " -d: build deps (optional)"
  22. echo " -s: build slic3r (optional)"
  23. echo " -u: only update clock & dependency packets (optional and need sudo)"
  24. echo "For a first use, you want to 'sudo ./BuildLinux.sh -u'"
  25. echo " and then './BuildLinux.sh -dsi'"
  26. exit 0
  27. ;;
  28. esac
  29. done
  30. if [ $OPTIND -eq 1 ]
  31. then
  32. echo "Usage: ./BuildLinux.sh [-i][-u][-d][-s]"
  33. echo " -i: Generate appimage"
  34. echo " -d: build deps"
  35. echo " -s: build slic3r"
  36. echo " -u: only update clock & dependency packets (need sudo)"
  37. echo "For a first use, you want to 'sudo ./BuildLinux.sh -u'"
  38. echo " and then './BuildLinux.sh -dsi'"
  39. exit 0
  40. fi
  41. # mkdir build
  42. if [ ! -d "build" ]
  43. then
  44. mkdir build
  45. fi
  46. if [[ -n "$UPDATE_LIB" ]]
  47. then
  48. echo -n "Updating linux ..."
  49. hwclock -s
  50. apt update
  51. apt install libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git
  52. echo "done"
  53. exit 0
  54. fi
  55. FOUND_GTK2=$(dpkg -l libgtk* | grep gtk2.0-dev)
  56. echo "FOUND_GTK2=$FOUND_GTK2)"
  57. if [[ -z "$FOUND_GTK2" ]]
  58. then
  59. echo "Error, you must install the dependencies before."
  60. echo "Use option -u with sudo"
  61. exit 0
  62. fi
  63. echo "[1/9] Updating submodules..."
  64. {
  65. # update submodule profiles
  66. pushd resources/profiles
  67. git submodule update --init
  68. popd
  69. }
  70. # > $ROOT/build/Build.log # Capture all command output
  71. echo "[2/9] Changing date in version..."
  72. {
  73. # change date in version
  74. sed -i "s/+UNKNOWN/_$(date '+%F')/" version.inc
  75. }
  76. # &> $ROOT/build/Build.log # Capture all command output
  77. echo "done"
  78. # mkdir in deps
  79. if [ ! -d "deps/build" ]
  80. then
  81. mkdir deps/build
  82. fi
  83. if [[ -n "$BUILD_DEPS" ]]
  84. then
  85. echo "[3/9] Configuring dependencies..."
  86. # cmake deps
  87. pushd deps/build
  88. cmake ..
  89. # &> $ROOT/build/Build.log # Capture all command output
  90. echo "done"
  91. echo "[4/9] Building dependencies..."
  92. # make deps
  93. make -j$NCORES
  94. # &> $ROOT/build/Build.log # Capture all command output
  95. echo "done"
  96. echo "[5/9] Renaming wxscintilla library..."
  97. # rename wxscintilla
  98. pushd destdir/usr/local/lib
  99. cp libwxscintilla-3.1.a libwx_gtk2u_scintilla-3.1.a
  100. popd
  101. # &> $ROOT/build/Build.log # Capture all command output
  102. echo "done"
  103. echo "[6/9] Cleaning dependencies..."
  104. # clean deps
  105. rm -rf dep_*
  106. popd
  107. # &> $ROOT/build/Build.log # Capture all command output
  108. echo "done"
  109. fi
  110. if [[ -n "$BUILD_SLIC3R" ]]
  111. then
  112. echo "[7/9] Configuring Slic3r..."
  113. # cmake
  114. pushd build
  115. cmake .. -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DSLIC3R_STATIC=1
  116. # &> $ROOT/build/Build.log # Capture all command output
  117. echo "done"
  118. echo "[8/9] Building Slic3r..."
  119. # make Slic3r
  120. make -j$NCORES Slic3r
  121. # make .mo
  122. make gettext_po_to_mo
  123. popd
  124. # &> $ROOT/build/Build.log # Capture all command output
  125. echo "done"
  126. fi
  127. # Give proper permissions to script
  128. chmod 755 $ROOT/build/src/BuildLinuxImage.sh
  129. echo "[9/9] Generating Linux app..."
  130. pushd build
  131. if [[ -n "$BUILD_IMAGE" ]]
  132. then
  133. $ROOT/build/src/BuildLinuxImage.sh -i
  134. else
  135. $ROOT/build/src/BuildLinuxImage.sh
  136. fi
  137. # &> $ROOT/build/Build.log # Capture all command output
  138. echo "done"