Our build system uses Premake5. For convenience, we store the binary in
Premake generates Visual Studio solution in directory
premake5.luafile. Generated solution files are stored in the repository for convenience.
Premake re-generates solution files from
You only need to do that if you add or remove source files.
- install Go
- make changes to
premake5.*.luafiles, most likely
doit.bat -premakewhich runs a Go program in
PS C:\Users\kjk\src\sumatrapdf> ls *.lua Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 4/24/2020 12:20 AM 22947 premake5.files.lua -a---- 5/4/2020 7:51 PM 23565 premake5.lua -a---- 5/4/2020 7:51 PM 8457 premake5.opt.lua
Sometimes we want to customize the build with
#ifdef. We could do it by adding additional configurations, but that can spiral out of control quickly.
Instead we have
src\utils\BuildConfig.hfile. It's empty by default but you can changed it to add your
ReleaseAnalyzeruns code analysis.
We have platforms:
Win32: 32-bit build
x64: 64-bit build
x32_asan: 32-build with additional runtime Address Sanitizers checks. Only available in 32-bit build because of compiler limitations
How official builds are made
I use a Go program in
dodirectory, executed with