build-all.bat 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. @ECHO OFF
  2. REM Build script for cleaning and/or building everything
  3. SET PLATFORM=%1
  4. SET ACTION=%2
  5. SET TARGET=%3
  6. if "%ACTION%" == "build" (
  7. SET ACTION=all
  8. SET ACTION_STR=Building
  9. SET ACTION_STR_PAST=built
  10. SET DO_VERSION=yes
  11. ) else (
  12. if "%ACTION%" == "clean" (
  13. SET ACTION=clean
  14. SET ACTION_STR=Cleaning
  15. SET ACTION_STR_PAST=cleaned
  16. SET DO_VERSION=no
  17. ) else (
  18. echo "Unknown action %ACTION%. Aborting" && exit
  19. )
  20. )
  21. if "%PLATFORM%" == "windows" (
  22. SET ENGINE_LINK=-luser32
  23. ) else (
  24. if "%PLATFORM%" == "linux" (
  25. SET ENGINE_LINK=
  26. ) else (
  27. if "%PLATFORM%" == "macos" (
  28. SET ENGINE_LINK=
  29. ) else (
  30. echo "Unknown platform %PLATFORM%. Aborting" && exit
  31. )
  32. )
  33. )
  34. REM del bin\*.pdb
  35. SET INC_CORE_RT=-Ikohi.core\src -Ikohi.runtime\src
  36. SET LNK_CORE_RT=-lkohi.core -lkohi.runtime
  37. ECHO "%ACTION_STR% everything on %PLATFORM% (%TARGET%)..."
  38. REM Version Generator - Build this first so it can be used later in the build process.
  39. make -j -f "Makefile.executable.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=kohi.tools.versiongen
  40. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  41. REM Engine core lib
  42. make -j -f "Makefile.library.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=kohi.core DO_VERSION=%DO_VERSION% ADDL_LINK_FLAGS="-lgdi32 %ENGINE_LINK%"
  43. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  44. REM Engine runtime lib
  45. make -j -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 %ENGINE_LINK%"
  46. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  47. REM Kohi Utils plugin lib
  48. make -j -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%"
  49. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  50. REM Vulkan Renderer plugin lib
  51. make -j -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% -lshaderc_shared -L%VULKAN_SDK%\Lib"
  52. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  53. REM OpenAL plugin lib
  54. make -j -f "Makefile.library.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=kohi.plugin.audio.openal DO_VERSION=%DO_VERSION% ADDL_INC_FLAGS="%INC_CORE_RT% -I'%programfiles(x86)%\OpenAL 1.1 SDK\include'" ADDL_LINK_FLAGS="%LNK_CORE_RT% -lopenal32 -L'%programfiles(x86)%\OpenAL 1.1 SDK\libs\win64'"
  55. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  56. REM Standard UI lib
  57. make -j -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%"
  58. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  59. REM Testbed lib
  60. make -j -f "Makefile.library.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=testbed.klib DO_VERSION=%DO_VERSION% ADDL_INC_FLAGS="%INC_CORE_RT% -Ikohi.plugin.ui.standard\src -Ikohi.plugin.audio.openal\src -Ikohi.plugin.utils\src" ADDL_LINK_FLAGS="%LNK_CORE_RT% -lkohi.plugin.ui.standard -lkohi.plugin.audio.openal -lkohi.plugin.utils"
  61. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  62. REM Overdrive2069 lib
  63. make -j -f "Makefile.library.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=overdrive2069.klib DO_VERSION=%DO_VERSION% ADDL_INC_FLAGS="%INC_CORE_RT% -Ikohi.plugin.ui.standard\src -Ikohi.plugin.audio.openal\src -Ikohi.plugin.utils\src" ADDL_LINK_FLAGS="%LNK_CORE_RT% -lkohi.plugin.ui.standard -lkohi.plugin.audio.openal -lkohi.plugin.utils"
  64. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  65. @REM ---------------------------------------------------
  66. @REM Executables
  67. @REM ---------------------------------------------------
  68. REM Testbed
  69. make -j -f "Makefile.executable.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=testbed.kapp ADDL_INC_FLAGS="%INC_CORE_RT%" ADDL_LINK_FLAGS="%LNK_CORE_RT%"
  70. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  71. REM Overdrive2069 app
  72. make -j -f "Makefile.executable.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=overdrive2069.kapp ADDL_INC_FLAGS="%INC_CORE_RT%" ADDL_LINK_FLAGS="%LNK_CORE_RT%"
  73. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  74. REM Tests
  75. make -j -f "Makefile.executable.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=kohi.core.tests ADDL_INC_FLAGS="%INC_CORE_RT%" ADDL_LINK_FLAGS="%LNK_CORE_RT%"
  76. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  77. REM Tools
  78. make -j -f "Makefile.executable.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=kohi.tools ADDL_INC_FLAGS="%INC_CORE_RT%" ADDL_LINK_FLAGS="%LNK_CORE_RT%"
  79. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  80. ECHO All assemblies %ACTION_STR_PAST% successfully on %PLATFORM% (%TARGET%).