build-all.bat 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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% -lvulkan-1 -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" ADDL_LINK_FLAGS="%LNK_CORE_RT% -lkohi.plugin.ui.standard -lkohi.plugin.audio.openal"
  61. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  62. @REM ---------------------------------------------------
  63. @REM Executables
  64. @REM ---------------------------------------------------
  65. REM Testbed
  66. make -j -f "Makefile.executable.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=testbed.kapp ADDL_INC_FLAGS="%INC_CORE_RT%" ADDL_LINK_FLAGS="%LNK_CORE_RT%"
  67. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  68. REM Tests
  69. 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%"
  70. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  71. REM Tools
  72. make -j -f "Makefile.executable.mak" %ACTION% TARGET=%TARGET% ASSEMBLY=kohi.tools ADDL_INC_FLAGS="%INC_CORE_RT%" ADDL_LINK_FLAGS="%LNK_CORE_RT%"
  73. IF %ERRORLEVEL% NEQ 0 (echo Error:%ERRORLEVEL% && exit)
  74. ECHO All assemblies %ACTION_STR_PAST% successfully on %PLATFORM% (%TARGET%).