The location for manual setting of the vcvarsall.bat location moved to line 38 in the latest change.
3.6 KiB
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 or the build tools. If you
didn't install them in the default location, write your changes around
line 38 of 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_NAMEvariable is used for the executable name.SOURCESis 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 calledsrc, you can just setSOURCESto../../src/*.c. Note: the paths should be either absolute, or relative tobuilds/platform, hence../../.RAYLIB_SRCshould point to the raylib/src directory. In this case, it's../../src, but as with theSOURCES, if the path is relative, it should be relative totemp/debug, so it's actually../../../../src.
Compilation flags
-Os(/O1with MSVC,-O2with 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(/GLand/LTCGfor MSVC) in release builds,-O0 -g(/Od /Zifor MSVC) in debug builds.-Wall -Wextra -Wpedantic(/Wallfor 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.
-hDescribes all the flags, and a few example commands-dFaster builds that have debug symbols, and enable warnings-uRun upx* on the executable after compilation (before -r)-rRun the executable after compilation-cRemove the temp/(debug|release) directory, ie. full recompile-qSuppress this script's informational prints-qqSuppress all prints, complete silence-vcl.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 |