1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-26 14:38:30 +02:00
VVVVVV/desktop_version/src
Misa 02a45f9cbc Don't recompile all files when the commit hash is changed
The previous implementation of showing the commit hash on the title
screen used a preprocessor definition added at CMake time to pass the
hash and date. This was passed for every file compiled, so if the date
or hash changed, then every file would be recompiled. This is especially
annoying if you're working on the game and switching branches all the
time - the game has at least 50 source files to recompile!

To fix this, we'll switch to using a generated file, named
Version.h.out, that only gets included by the necessary files (which
there is only one of - Render.cpp). It will be autogenerated by CMake
(by using CONFIGURE_FILE(), which takes a templated file and does a
find-and-replace on it, not unlike C macros), and since there's only one
file that includes it, only one file will need to be recompiled when it
changes.

And also to prevent Version.h.out being a required file, it will only be
included if necessary (i.e. OFFICIAL_BUILD is off). Since the C
preprocessor can't ignore non-existing include files and will always
error on them, I wrapped the #include in an #ifdef VERSION_H_EXISTS, and
CMake will add the VERSION_H_OUT_EXISTS define when generating
Version.h.out. The wrapper is named Version.h, so any file
that #includes the commit hash and date should #include Version.h
instead of Version.h.out.

As an added bonus, I've also made it so CMake will print "This is
interim commit [HASH] (committed [DATE])" at configure time if the game
is going to be compiled with an interim commit hash.

Now, there is also the issue that the commit hash change will only be
noticed in the first place if CMake needs to be re-ran for anything, but
that's a less severe issue than requiring recompilation of 50(!) or so
files.
2020-12-25 20:17:01 -05:00
..
BinaryBlob.cpp Use SDL stdlib funcs for free/malloc/strcmp 2020-08-14 09:51:19 -04:00
BinaryBlob.h Check index of tracks in musicclass::init() 2020-08-14 09:51:19 -04:00
BlockV.cpp Remove unnecessary string initializations from constructors 2020-07-08 19:14:21 -04:00
BlockV.h Consistently use angle brackets for SDL.h includes 2020-07-19 21:37:40 -04:00
Credits.h Fix entities in the Warp Zone's gray tileset not being gray in the editor (#480) 2020-09-25 13:35:03 -04:00
editor.cpp Move all fixed-timestep render updates to new file RenderFixed.cpp 2020-12-18 12:01:02 -05:00
editor.h Move all fixed-timestep render updates to new file RenderFixed.cpp 2020-12-18 12:01:02 -05:00
Ent.cpp Add entclass::ishumanoid() 2020-11-03 13:31:56 -05:00
Ent.h Add entclass::ishumanoid() 2020-11-03 13:31:56 -05:00
Entity.cpp Add x-room = 13 check to entity 1 behave 13 2020-11-06 15:06:11 -05:00
Entity.h Remove now-unused entityclass::hormovingplatformfix() 2020-10-11 16:18:30 -04:00
Enums.h Hello WWWWWWorld! 2020-01-08 10:37:50 -05:00
FileSystemUtils.cpp Fix other array decay too 2020-08-09 13:39:12 -04:00
FileSystemUtils.h Only re-color one-ways if assets are not mounted 2020-06-30 18:06:14 -04:00
Finalclass.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
Finalclass.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
Game.cpp Fix segfault when settings.vvv or unlock.vvv is missing 2020-12-21 20:16:45 -05:00
Game.h Allow Game::savestats() to accept a pointer to ScreenSettings 2020-12-21 20:15:30 -05:00
GOGNetwork.c Ifdef out network code for M&P 2020-08-02 23:43:55 -04:00
Graphics.cpp Fix variables shadowing other variables 2020-11-04 08:38:19 -05:00
Graphics.h Factor out entity drawing to separate function 2020-11-03 13:31:56 -05:00
GraphicsResources.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
GraphicsResources.h Consistently use angle brackets for SDL.h includes 2020-07-19 21:37:40 -04:00
GraphicsUtil.cpp Use SDL_abs() instead of libc abs() in ApplyFilter() 2020-11-07 19:41:25 -05:00
GraphicsUtil.h Axe endian_swap() function and template 2020-09-08 16:16:40 -04:00
Input.cpp Fix kludge_ingametemp being assigned after menu creation 2020-12-25 17:13:03 -05:00
Input.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
KeyPoll.cpp Remove duplicate game.controllerSensitivity proxy 2020-12-18 10:02:18 -05:00
KeyPoll.h Remove duplicate game.controllerSensitivity proxy 2020-12-18 10:02:18 -05:00
Labclass.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
Labclass.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
Logic.cpp Refactor Game::savestats() to not use a default argument 2020-12-21 19:37:34 -05:00
Logic.h Move all fixed-timestep render updates to new file RenderFixed.cpp 2020-12-18 12:01:02 -05:00
main.cpp De-duplicate script.running checks 2020-12-24 12:01:37 -05:00
MakeAndPlay.h Re-comment out #define MAKEANDPLAY 2020-02-09 10:42:03 -05:00
Map.cpp De-duplicate script.running checks 2020-12-24 12:01:37 -05:00
Map.h Remove kludge_to_bg() and bg_to_kludge() 2020-11-03 13:25:03 -05:00
Maths.h Include math.h instead of cmath 2020-11-17 12:17:04 -05:00
Music.cpp Don't set music.usingmmmmmm to true when (un)loading custom assets 2020-11-12 19:11:13 -05:00
Music.h Don't reset entire musicclass when mounting and unmounting assets 2020-11-12 19:11:13 -05:00
Network.c Remove unnecessary externs from network func forward decls 2020-08-02 23:43:55 -04:00
Network.h Add support for multiple Network backends, stub in GOGNetwork 2020-01-13 11:15:22 -05:00
Otherlevel.cpp Bounds check all entity getters that can return 0 2020-09-25 13:51:47 -04:00
Otherlevel.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
preloader.cpp Allow pressing ACTION to skip fake loading screen 2020-12-20 15:19:22 -08:00
preloader.h Allow pressing ACTION to skip fake loading screen 2020-12-20 15:19:22 -08:00
Render.cpp Don't recompile all files when the commit hash is changed 2020-12-25 20:17:01 -05:00
Render.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
RenderFixed.cpp Move all fixed-timestep render updates to new file RenderFixed.cpp 2020-12-18 12:01:02 -05:00
RenderFixed.h Move all fixed-timestep render updates to new file RenderFixed.cpp 2020-12-18 12:01:02 -05:00
Screen.cpp Allow Game::savestats() to accept a pointer to ScreenSettings 2020-12-21 20:15:30 -05:00
Screen.h Allow Game::savestats() to accept a pointer to ScreenSettings 2020-12-21 20:15:30 -05:00
ScreenSettings.h Factor out screen settings to ScreenSettings struct 2020-12-18 10:02:18 -05:00
Script.cpp De-duplicate script.running checks 2020-12-24 12:01:37 -05:00
Script.h Clean up and prevent unnecessary qualifiers to self 2020-09-28 01:34:40 -04:00
Scripts.cpp Make 'custom_' check more readable 2020-09-27 16:31:40 -04:00
SoundSystem.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
SoundSystem.h Revert "Add destructor for SoundTrack/MusicTrack (and explicitly define move constructor to prevent double-free)" 2020-06-07 22:40:03 -04:00
Spacestation2.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
Spacestation2.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
SteamNetwork.c Ifdef out network code for M&P 2020-08-02 23:43:55 -04:00
TerminalScripts.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
Textbox.cpp Remove allowspecial, replace with opaqueness check 2020-08-06 22:12:15 -04:00
Textbox.h Remove allowspecial, replace with opaqueness check 2020-08-06 22:12:15 -04:00
Tower.cpp Remove zeroed arrays from tower functions in M&P 2020-08-03 00:29:15 -04:00
Tower.h Change all tilemaps to be short[1200] instead of int[1200] 2020-07-19 16:25:53 -04:00
TowerBG.h Refactor tower background to use a separate object instead 2020-11-03 13:25:03 -05:00
UtilityClass.cpp Clean up and prevent unnecessary qualifiers to self 2020-09-28 01:34:40 -04:00
UtilityClass.h Clean up and prevent unnecessary qualifiers to self 2020-09-28 01:34:40 -04:00
Version.h Don't recompile all files when the commit hash is changed 2020-12-25 20:17:01 -05:00
Version.h.in Don't recompile all files when the commit hash is changed 2020-12-25 20:17:01 -05:00
WarpClass.cpp Separate includes into sections and alphabetize them 2020-07-19 21:37:40 -04:00
WarpClass.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
XMLUtils.cpp Move all settings to settings.vvv 2020-11-04 12:06:57 -05:00
XMLUtils.h Move all settings to settings.vvv 2020-11-04 12:06:57 -05:00