mirror of
				https://github.com/raysan5/raylib.git
				synced 2025-10-26 12:27:01 +00:00 
			
		
		
		
	The location for manual setting of the vcvarsall.bat location moved to line 38 in the latest change.
		
			
				
	
	
		
			69 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| Here are dependency-less build scripts for raylib projects.
 | |
| 
 | |
| ## Dependencies
 | |
| The scripts, as mentioned above, do not have dependencies. There's one
 | |
| exception to this however, and that is Windows, because Windows
 | |
| doesn't have a built-in C compiler. On Windows, you'll need to install
 | |
| [Visual Studio][visual-studio] or the [build tools][vs-tools]. If you
 | |
| didn't install them in the default location, write your changes around
 | |
| line 38 of [`build-windows.bat`](build-windows.bat).
 | |
| 
 | |
| ## Script customization
 | |
| First of all, the scripts have a few variables at the very top, which
 | |
| are supposed to be configured for each project separately:
 | |
| - `GAME_NAME` variable is used for the executable name.
 | |
| - `SOURCES` is a list of .c source files, divided by spaces, which are
 | |
|   going to be compiled and linked with raylib to create the final
 | |
|   executable. You can use wildcards, so if you have all your .c files
 | |
|   in a directory called `src`, you can just set `SOURCES` to
 | |
|   `../../src/*.c`. Note: the paths should be either absolute, or
 | |
|   relative to `builds/platform`, hence `../../`.
 | |
| - `RAYLIB_SRC` should point to the raylib/src directory. In this case,
 | |
|   it's `../../src`, but as with the `SOURCES`, if the path is
 | |
|   relative, it should be relative to `temp/debug`, so it's actually
 | |
|   `../../../../src`.
 | |
| 
 | |
| ## Compilation flags
 | |
| - `-Os` (`/O1` with MSVC, `-O2` with clang\*) is used for release
 | |
|   builds, to save space. Since it's a good practice to make your games
 | |
|   run on the slowest possible systems, only a few games would benefit
 | |
|   from additional runtime performance on almost all systems. Other
 | |
|   flags: `-flto` (`/GL` and `/LTCG` for MSVC) in release builds, `-O0
 | |
|   -g` (`/Od /Zi` for MSVC) in debug builds.
 | |
| - `-Wall -Wextra -Wpedantic` (`/Wall` for MSVC) are used for warnings.
 | |
| 
 | |
| \* Clang 7.0.1 seems to have problems compiling with `-flto` and `-Os`
 | |
| enabled at the same time, so `-Os` is replaced with `-O2` for clang.
 | |
| 
 | |
| ## Command line arguments
 | |
| The build scripts accept some flags, which can be given either one at
 | |
| a time (`-d -c -r`) or in bunches (`-dcr`). Here's a description of
 | |
| all of the flags.
 | |
| - `-h` Describes all the flags, and a few example commands
 | |
| - `-d` Faster builds that have debug symbols, and enable warnings
 | |
| - `-u` Run upx\* on the executable after compilation (before -r)
 | |
| - `-r` Run the executable after compilation
 | |
| - `-c` Remove the temp/(debug|release) directory, ie. full recompile
 | |
| - `-q` Suppress this script's informational prints
 | |
| - `-qq` Suppress all prints, complete silence
 | |
| - `-v` cl.exe normally prints out a lot of superficial information, as
 | |
|   well as the MSVC build environment activation scripts, but these are
 | |
|   mostly suppressed by default. If you do want to see everything, use
 | |
|   this flag.
 | |
| 
 | |
| \* This is mostly here to make building simple "shipping" versions
 | |
|    easier, and it's a very small bit in the build scripts. The option
 | |
|    requires that you have upx installed and on your path, of course.
 | |
| 
 | |
| #### Examples
 | |
| | What the command does                                       | Command                   |
 | |
| |-------------------------------------------------------------|---------------------------|
 | |
| | Build a release build, on Windows                           | `build-windows.bat`       |
 | |
| | Build a release build, full recompile, on Linux             | `./build-linux.sh -c`     |
 | |
| | Build a debug build and run, on macOS                       | `./build-osx.sh -d -r`    |
 | |
| | Build in debug, run, don't print at all, on Linux with `sh` | `sh build-linux.sh -drqq` |
 | |
| 
 | |
| 
 | |
| [visual-studio]: https://visualstudio.microsoft.com/downloads/#visual-studio-community-2017
 | |
| [vs-tools]: https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017
 |