build-all.sh 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. # Tools NOTE: Building tools here since it's required below.
  43. make -f Makefile.executable.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.tools 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 Runtime
  50. 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"
  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. # Kohi Utils plugin Lib
  57. 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"
  58. ERRORLEVEL=$?
  59. if [ $ERRORLEVEL -ne 0 ]
  60. then
  61. echo "error:"$errorlevel | sed -e "s/error/${txtred}error${txtrst}/g" && exit
  62. fi
  63. # Vulkan Renderer Lib
  64. if [ $PLATFORM = 'macos' ]
  65. then
  66. VULKAN_SDK=/usr/local/
  67. fi
  68. make -f Makefile.library.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.plugin.renderer.vulkan DO_VERSION=$DO_VERSION ADDL_INC_FLAGS="$INC_CORE_RT -I../bin/ -I$VULKAN_SDK/include" ADDL_LINK_FLAGS="$LNK_CORE_RT -lshaderc_shared "
  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. # Standard UI Lib
  75. 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"
  76. ERRORLEVEL=$?
  77. if [ $ERRORLEVEL -ne 0 ]
  78. then
  79. echo "error:"$errorlevel | sed -e "s/error/${txtred}error${txtrst}/g" && exit
  80. fi
  81. # OpenAL Audio Plugin lib
  82. if [ $PLATFORM = 'macos' ]
  83. then
  84. OPENAL_INC=-I/opt/homebrew/opt/openal-soft/include/
  85. OPENAL_LIB=-L/opt/homebrew/opt/openal-soft/lib/
  86. fi
  87. 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"
  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. # Testbed Lib
  94. 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 -I./kohi.plugin.utils/src" ADDL_LINK_FLAGS="$LNK_CORE_RT -lkohi.plugin.ui.standard -lkohi.plugin.audio.openal -lkohi.plugin.utils"
  95. ERRORLEVEL=$?
  96. if [ $ERRORLEVEL -ne 0 ]
  97. then
  98. echo "Error:"$ERRORLEVEL | sed -e "s/Error/${txtred}Error${txtrst}/g" && exit
  99. fi
  100. # Overdrive2069 Lib
  101. make -f Makefile.library.mak $ACTION TARGET=$TARGET ASSEMBLY=overdrive2069.klib DO_VERSION=$DO_VERSION ADDL_INC_FLAGS="$INC_CORE_RT -I./kohi.plugin.ui.standard/src -I./kohi.plugin.audio.openal/src -I./kohi.plugin.utils/src" ADDL_LINK_FLAGS="$LNK_CORE_RT -lkohi.plugin.ui.standard -lkohi.plugin.audio.openal -lkohi.plugin.utils"
  102. ERRORLEVEL=$?
  103. if [ $ERRORLEVEL -ne 0 ]
  104. then
  105. echo "Error:"$ERRORLEVEL | sed -e "s/Error/${txtred}Error${txtrst}/g" && exit
  106. fi
  107. # ---------------------------------------------------
  108. # Executables
  109. # ---------------------------------------------------
  110. # Testbed
  111. 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"
  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. # Overdrive 2069 Game
  118. make -f Makefile.executable.mak $ACTION TARGET=$TARGET ASSEMBLY=overdrive2069.kapp ADDL_INC_FLAGS="$INC_CORE_RT" ADDL_LINK_FLAGS="$LNK_CORE_RT -lkohi.plugin.ui.standard -lkohi.plugin.audio.openal"
  119. ERRORLEVEL=$?
  120. if [ $ERRORLEVEL -ne 0 ]
  121. then
  122. echo "Error:"$ERRORLEVEL | sed -e "s/Error/${txtred}Error${txtrst}/g" && exit
  123. fi
  124. # Tests
  125. make -f Makefile.executable.mak $ACTION TARGET=$TARGET ASSEMBLY=kohi.core.tests ADDL_INC_FLAGS="$INC_CORE_RT" ADDL_LINK_FLAGS="$LNK_CORE_RT"
  126. ERRORLEVEL=$?
  127. if [ $ERRORLEVEL -ne 0 ]
  128. then
  129. echo "Error:"$ERRORLEVEL | sed -e "s/Error/${txtred}Error${txtrst}/g" && exit
  130. fi
  131. echo "All assemblies $ACTION_STR_PAST successfully on $PLATFORM ($TARGET)." | sed -e "s/successfully/${txtgrn}successfully${txtrst}/g"