summaryrefslogtreecommitdiffhomepage
path: root/projects/scripts/windows-build.bat
diff options
context:
space:
mode:
authorRay <[email protected]>2019-02-12 12:18:26 +0100
committerRay <[email protected]>2019-02-12 12:18:26 +0100
commit2e3310c9de01f9b636075769a35db7293ed9dbb7 (patch)
treeab61d49f19ea95d2717e228c16000e7f00991bdf /projects/scripts/windows-build.bat
parent944a388b1bfee6048528c29719c5a78d4888bfa5 (diff)
downloadraylib-2e3310c9de01f9b636075769a35db7293ed9dbb7.tar.gz
raylib-2e3310c9de01f9b636075769a35db7293ed9dbb7.zip
Review scripts name and mini_al inclusion
Diffstat (limited to 'projects/scripts/windows-build.bat')
-rw-r--r--projects/scripts/windows-build.bat211
1 files changed, 0 insertions, 211 deletions
diff --git a/projects/scripts/windows-build.bat b/projects/scripts/windows-build.bat
deleted file mode 100644
index e56141bc..00000000
--- a/projects/scripts/windows-build.bat
+++ /dev/null
@@ -1,211 +0,0 @@
-@echo off
-REM Change your executable name here
-set GAME_NAME=game.exe
-
-REM Set your sources here (relative to the builds\windows directory)
-REM Example with two source folders:
-REM set SOURCES=..\..\src\*.c ..\..\src\submodule\*.c
-set SOURCES=..\..\core_basic_window.c
-
-REM Set your raylib/src location here, relative to the ./temp/x directory
-set RAYLIB_SRC=..\..\..\..\src
-
-REM About this build script: it does many things, but in essence, it's
-REM very simple. It has 3 compiler invocations: building raylib (which
-REM is not done always, see logic by searching "Build raylib"), building
-REM src/*.c files, and linking together those two. Each invocation is
-REM wrapped in an if statement to make the -qq flag work, it's pretty
-REM verbose, sorry.
-
-REM To skip to the actual building part of the script, search for ":BUILD"
-
-REM For the ! variable notation
-setlocal EnableDelayedExpansion
-REM For shifting, which the command line argument parsing needs
-setlocal EnableExtensions
-
-
-:ARG_LOOP
-set ARG=%1
-if "!ARG!" == "" ( goto PREPARE )
-IF NOT "x!ARG!" == "x!ARG:h=!" (
- goto HELP
-)
-IF NOT "x!ARG!" == "x!ARG:d=!" (
- set BUILD_DEBUG=1
-)
-IF NOT "x!ARG!" == "x!ARG:u=!" (
- set UPX_IT=1
-)
-IF NOT "x!ARG!" == "x!ARG:r=!" (
- set RUN_AFTER_BUILD=1
-)
-IF NOT "x!ARG!" == "x!ARG:c=!" (
- set BUILD_ALL=1
-)
-IF NOT "x!ARG!" == "x!ARG:qq=!" (
- set QUIET=1
- set REALLY_QUIET=1
-) ELSE IF NOT "x!ARG!" == "x!ARG:q=!" (
- IF DEFINED QUIET (
- set REALLY_QUIET=1
- ) ELSE (
- set QUIET=1
- )
-)
-IF NOT "x!ARG!" == "x!ARG:v=!" (
- set VERBOSE=1
-)
-IF NOT "%1" == "" (
- shift /1
- goto ARG_LOOP
-)
-
-
-:HELP
-echo Usage: windows-build.bat [-hdurcqqv]
-echo -h Show this information
-echo -d Faster builds that have debug symbols, and enable warnings
-echo -u Run upx* on the executable after compilation (before -r)
-echo -r Run the executable after compilation
-echo -c Remove the temp\{debug,release} directory, ie. full recompile
-echo -q Suppress this script's informational prints
-echo -qq Suppress all prints, complete silence
-echo -v cl.exe normally prints out a lot of superficial information, as
-echo well as the MSVC build environment activation scripts, but these are
-echo mostly suppressed by default. If you do want to see everything, use
-echo this flag.
-echo.
-echo * This is mostly here to make building simple "shipping" versions
-echo easier, and it's a very small bit in the build scripts. The option
-echo requires that you have upx installed and on your path, of course.
-echo.
-echo Examples:
-echo Build a release build: windows-build.bat
-echo Build a release build, full recompile: windows-build.bat -c
-echo Build a debug build and run: windows-build.bat -d -r
-echo Build in debug, run, don't print at all: windows-build.bat -drqq
-exit /B
-
-
-:PREPARE
-REM Activate the msvc build environment
-IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" (
- set VC_INIT="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat"
-) ELSE IF EXIST "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" (
- set VC_INIT="C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat"
-) ELSE IF EXIST "C:\Program Files (x86)\Microsoft Visual C++ Build Tools\vcbuildtools.bat" (
- set VC_INIT="C:\Program Files (x86)\Microsoft Visual C++ Build Tools\vcbuildtools.bat"
-) ELSE (
- REM Initialize your vc environment here if the defaults don't work
- REM set VC_INIT="C:\your\path\here\vcvarsall.bat"
- REM And then remove/comment out the following two lines
- echo "Couldn't find vcvarsall.bat or vcbuildtools.bat, please set it manually."
- exit /B
-)
-IF DEFINED VERBOSE (
- call !VC_INIT! x86
-) ELSE (
- call !VC_INIT! x86 > NUL 2>&1
-)
-
-
-:BUILD
-REM Flags
-set OUTPUT_FLAG=/Fe: "!GAME_NAME!"
-set COMPILATION_FLAGS=/O1 /GL
-set WARNING_FLAGS=
-set SUBSYSTEM_FLAGS=/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
-set LINK_FLAGS=/link /LTCG kernel32.lib user32.lib shell32.lib winmm.lib gdi32.lib opengl32.lib
-set OUTPUT_DIR=builds\windows
-REM Debug changes to flags
-IF DEFINED BUILD_DEBUG (
- set OUTPUT_FLAG=/Fe: "!GAME_NAME!"
- set COMPILATION_FLAGS=/Od /Zi
- set WARNING_FLAGS=/Wall
- set SUBSYSTEM_FLAGS=
- set LINK_FLAGS=/link kernel32.lib user32.lib shell32.lib winmm.lib gdi32.lib opengl32.lib
- set OUTPUT_DIR=builds-debug\windows
-)
-IF NOT DEFINED VERBOSE (
- set VERBOSITY_FLAG=/nologo
-)
-
-REM Display what we're doing
-IF DEFINED BUILD_DEBUG (
- IF NOT DEFINED QUIET echo COMPILE-INFO: Compiling in debug mode, flags: !COMPILATION_FLAGS! !WARNING_FLAGS!
-) ELSE (
- IF NOT DEFINED QUIET echo COMPILE-INFO: Compiling in release mode, flags: !COMPILATION_FLAGS! /link /LTCG
-)
-
-REM Create the temp directory for raylib
-set "ROOT_DIR=%CD%"
-set "TEMP_DIR=temp\release"
-IF DEFINED BUILD_DEBUG (
- set "TEMP_DIR=temp\debug"
-)
-
-IF DEFINED BUILD_ALL (
- IF EXIST !TEMP_DIR!\ (
- IF NOT DEFINED QUIET echo COMPILE-INFO: Found cached raylib, rebuilding.
- del /Q !TEMP_DIR!
- rmdir !TEMP_DIR!
- )
-)
-
-REM Build raylib if it hasn't been cached in TEMP_DIR
-IF NOT EXIST !TEMP_DIR!\ (
- mkdir !TEMP_DIR!
- cd !TEMP_DIR!
- REM Raylib's src folder
- set "RAYLIB_DEFINES=/D_DEFAULT_SOURCE /DPLATFORM_DESKTOP /DGRAPHICS_API_OPENGL_33"
- set RAYLIB_C_FILES="!RAYLIB_SRC!\core.c" "!RAYLIB_SRC!\shapes.c" "!RAYLIB_SRC!\textures.c" "!RAYLIB_SRC!\text.c" "!RAYLIB_SRC!\models.c" "!RAYLIB_SRC!\utils.c" "!RAYLIB_SRC!\raudio.c" "!RAYLIB_SRC!\rglfw.c" "!RAYLIB_SRC!\external\mini_al.c"
- set RAYLIB_INCLUDE_FLAGS=/I"!RAYLIB_SRC!" /I"!RAYLIB_SRC!\external\glfw\include"
-
- IF DEFINED REALLY_QUIET (
- cl.exe /w /c !RAYLIB_DEFINES! !RAYLIB_INCLUDE_FLAGS! !COMPILATION_FLAGS! !RAYLIB_C_FILES! > NUL 2>&1
- ) ELSE (
- cl.exe /w /c !VERBOSITY_FLAG! !RAYLIB_DEFINES! !RAYLIB_INCLUDE_FLAGS! !COMPILATION_FLAGS! !RAYLIB_C_FILES!
- )
- IF NOT DEFINED QUIET echo COMPILE-INFO: Raylib compiled into object files in: !TEMP_DIR!\
-
- REM Out of the temp directory
- cd !ROOT_DIR!
-)
-
-REM Move to the build directory
-IF NOT EXIST !OUTPUT_DIR! mkdir !OUTPUT_DIR!
-cd !OUTPUT_DIR!
-
-REM Build the actual game
-IF NOT DEFINED QUIET echo COMPILE-INFO: Compiling game code.
-IF DEFINED REALLY_QUIET (
- cl.exe !VERBOSITY_FLAG! /Fo"main.obj" !COMPILATION_FLAGS! !WARNING_FLAGS! /c /I"!RAYLIB_SRC!" !SOURCES! > NUL 2>&1
- cl.exe !VERBOSITY_FLAG! !OUTPUT_FLAG! "!ROOT_DIR!\!TEMP_DIR!\*.obj" main.obj !LINK_FLAGS! !SUBSYSTEM_FLAGS! > NUL 2>&1
-) ELSE (
- cl.exe !VERBOSITY_FLAG! /Fo"main.obj" !COMPILATION_FLAGS! !WARNING_FLAGS! /c /I"!RAYLIB_SRC!" !SOURCES!
- cl.exe !VERBOSITY_FLAG! !OUTPUT_FLAG! "!ROOT_DIR!\!TEMP_DIR!\*.obj" main.obj !LINK_FLAGS! !SUBSYSTEM_FLAGS!
-)
-del main.obj
-IF NOT DEFINED QUIET echo COMPILE-INFO: Game compiled into an executable in: !OUTPUT_DIR!\
-
-REM Run upx
-IF DEFINED UPX_IT (
- IF NOT DEFINED QUIET echo COMPILE-INFO: Packing !GAME_NAME! with upx.
- upx !GAME_NAME! > NUL 2>&1
-)
-
-REM Finally, run the produced executable
-IF DEFINED RUN_AFTER_BUILD (
- IF NOT DEFINED QUIET echo COMPILE-INFO: Running.
- IF DEFINED REALLY_QUIET (
- !GAME_NAME! > NUL 2>&1
- ) ELSE (
- !GAME_NAME!
- )
-)
-
-REM Back to development directory
-cd !ROOT_DIR!
-
-IF NOT DEFINED QUIET echo COMPILE-INFO: All done.