build-all.sh 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. #!/bin/bash
  2. # Build script for cleaning and/or building everything
  3. PLATFORM="$1"
  4. ACTION="$2"
  5. TARGET="$3"
  6. set echo off
  7. txtgrn=$(echo -e '\e[0;32m')
  8. txtred=$(echo -e '\e[0;31m')
  9. txtrst=$(echo -e '\e[0m')
  10. if [ $ACTION = "all" ] || [ $ACTION = "build" ]
  11. then
  12. ACTION="all"
  13. ACTION_STR="Building"
  14. ACTION_STR_PAST="built"
  15. DO_VERSION="yes"
  16. elif [ $ACTION = "clean" ]
  17. then
  18. ACTION="clean"
  19. ACTION_STR="Cleaning"
  20. ACTION_STR_PAST="cleaned"
  21. DO_VERSION="no"
  22. else
  23. echo "Unknown action $ACTION. Aborting" && exit
  24. fi
  25. INC_CORE_RT="-I./kohi.core/src -I./kohi.runtime/src"
  26. LNK_CORE_RT="-lkohi.core -lkohi.runtime"
  27. echo "$ACTION_STR everything on $PLATFORM ($TARGET)..."
  28. # Version Generator - Build this first so it can be used later in the build process.
  29. make -f Makefile.executable.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.tools.versiongen
  30. ERRORLEVEL=$?
  31. if [ $ERRORLEVEL -ne 0 ]
  32. then
  33. echo "error:"$errorlevel | sed -e "s/error/${txtred}error${txtrst}/g" && exit
  34. fi
  35. # Kohi Core
  36. make -f Makefile.library.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.core DO_VERSION=$DO_VERSION
  37. ERRORLEVEL=$?
  38. if [ $ERRORLEVEL -ne 0 ]
  39. then
  40. echo "error:"$errorlevel | sed -e "s/error/${txtred}error${txtrst}/g" && exit
  41. fi
  42. # Kohi Runtime
  43. make -f Makefile.library.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.runtime DO_VERSION=$DO_VERSION ADDL_INC_FLAGS="$INC_CORE_RT" ADDL_LINK_FLAGS="-lkohi.core"
  44. ERRORLEVEL=$?
  45. if [ $ERRORLEVEL -ne 0 ]
  46. then
  47. echo "error:"$errorlevel | sed -e "s/error/${txtred}error${txtrst}/g" && exit
  48. fi
  49. # Kohi Utils plugin Lib
  50. make -f Makefile.library.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.plugin.utils DO_VERSION=$DO_VERSION ADDL_INC_FLAGS="$INC_CORE_RT" ADDL_LINK_FLAGS="$LNK_CORE_RT"
  51. ERRORLEVEL=$?
  52. if [ $ERRORLEVEL -ne 0 ]
  53. then
  54. echo "error:"$errorlevel | sed -e "s/error/${txtred}error${txtrst}/g" && exit
  55. fi
  56. # Vulkan Renderer Lib
  57. if [ $PLATFORM = 'macos' ]
  58. then
  59. VULKAN_SDK=/usr/local/
  60. fi
  61. make -f Makefile.library.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.plugin.renderer.vulkan DO_VERSION=$DO_VERSION ADDL_INC_FLAGS="$INC_CORE_RT -I$VULKAN_SDK/include" ADDL_LINK_FLAGS="$LNK_CORE_RT -lvulkan -lshaderc_shared -L$VULKAN_SDK/lib"
  62. ERRORLEVEL=$?
  63. if [ $ERRORLEVEL -ne 0 ]
  64. then
  65. echo "error:"$errorlevel | sed -e "s/error/${txtred}error${txtrst}/g" && exit
  66. fi
  67. # Standard UI Lib
  68. make -f Makefile.library.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.plugin.ui.standard DO_VERSION=$DO_VERSION ADDL_INC_FLAGS="$INC_CORE_RT" ADDL_LINK_FLAGS="$LNK_CORE_RT"
  69. ERRORLEVEL=$?
  70. if [ $ERRORLEVEL -ne 0 ]
  71. then
  72. echo "error:"$errorlevel | sed -e "s/error/${txtred}error${txtrst}/g" && exit
  73. fi
  74. # OpenAL Audio Plugin lib
  75. if [ $PLATFORM = 'macos' ]
  76. then
  77. OPENAL_INC=-I/opt/homebrew/opt/openal-soft/include/
  78. OPENAL_LIB=-L/opt/homebrew/opt/openal-soft/lib/
  79. fi
  80. make -f Makefile.library.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.plugin.audio.openal DO_VERSION=$DO_VERSION ADDL_INC_FLAGS="$INC_CORE_RT $OPENAL_INC" ADDL_LINK_FLAGS="$LNK_CORE_RT -lopenal $OPENAL_LIB"
  81. ERRORLEVEL=$?
  82. if [ $ERRORLEVEL -ne 0 ]
  83. then
  84. echo "error:"$errorlevel | sed -e "s/error/${txtred}error${txtrst}/g" && exit
  85. fi
  86. # Testbed Lib
  87. make -f Makefile.library.mak $ACTION TARGET=$TARGET ASSEMBLY=testbed.klib DO_VERSION=$DO_VERSION ADDL_INC_FLAGS="$INC_CORE_RT -I./kohi.plugin.ui.standard/src -I./kohi.plugin.audio.openal/src" ADDL_LINK_FLAGS="$LNK_CORE_RT -lkohi.plugin.ui.standard -lkohi.plugin.audio.openal"
  88. ERRORLEVEL=$?
  89. if [ $ERRORLEVEL -ne 0 ]
  90. then
  91. echo "Error:"$ERRORLEVEL | sed -e "s/Error/${txtred}Error${txtrst}/g" && exit
  92. fi
  93. # ---------------------------------------------------
  94. # Executables
  95. # ---------------------------------------------------
  96. # Testbed
  97. make -f Makefile.executable.mak $ACTION TARGET=$TARGET ASSEMBLY=testbed.kapp ADDL_INC_FLAGS="$INC_CORE_RT" ADDL_LINK_FLAGS="$LNK_CORE_RT -lkohi.plugin.ui.standard -lkohi.plugin.audio.openal"
  98. ERRORLEVEL=$?
  99. if [ $ERRORLEVEL -ne 0 ]
  100. then
  101. echo "Error:"$ERRORLEVEL | sed -e "s/Error/${txtred}Error${txtrst}/g" && exit
  102. fi
  103. # Tests
  104. make -f Makefile.executable.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.core.tests ADDL_INC_FLAGS="$INC_CORE_RT" ADDL_LINK_FLAGS="$LNK_CORE_RT"
  105. ERRORLEVEL=$?
  106. if [ $ERRORLEVEL -ne 0 ]
  107. then
  108. echo "Error:"$ERRORLEVEL | sed -e "s/Error/${txtred}Error${txtrst}/g" && exit
  109. fi
  110. # Tools
  111. make -f Makefile.executable.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.tools ADDL_INC_FLAGS="$INC_CORE_RT" ADDL_LINK_FLAGS="$LNK_CORE_RT"
  112. ERRORLEVEL=$?
  113. if [ $ERRORLEVEL -ne 0 ]
  114. then
  115. echo "Error:"$ERRORLEVEL | sed -e "s/Error/${txtred}Error${txtrst}/g" && exit
  116. fi
  117. echo "All assemblies $ACTION_STR_PAST successfully on $PLATFORM ($TARGET)." | sed -e "s/successfully/${txtgrn}successfully${txtrst}/g"