mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-22 09:39:43 +01:00
No description
cf4511f5d1
This option is enabled by default and will replace absolute paths of all source directory file paths with relative paths in the compiled binary, if the compiler supports it. Of course, this isn't needed if you compile with all paths removed anyways (e.g. in Release mode). The purpose is to help make builds reproducible and to remove any potentially sensitive information about the user or the user's system from the compiled binary. Both Clang and GCC support -fdebug-prefix-map, -fmacro-prefix-map, and -ffile-prefix-map. In particular, -ffile-prefix-map is just a flag that does both -fdebug-prefix-map and -fmacro-prefix-map. According to https://reproducible-builds.org/docs/build-path/ , -fdebug-prefix-map is available in all GCC versions but only available starting from Clang 3.8, and -fmacro-prefix-map and -ffile-prefix-map are available since GCC 8 and Clang 10. So we check the compiler version and use the available flags depending on if the compiler supports it or not. This does make debugging a bit more annoying, but there are a couple ways to rectify this. Either disable it with -DREMOVE_ABSOLUTE_PATHS=OFF, or add a `.gdbinit` that consists of set substitute-path . ../.. so that `.` is considered to be `../..`. Of course, if you need to, replace `../..` with the actual source directory path (in my case it's `../../..` because I place my build folders in another subdirectory to have multiple build folders in one directory). This doesn't need to be a global `.gdbinit`, it can be in a directory-specific `.gdbinit` (similar to how `.gitignore`s can also be directory-specific). But then you need to add `add-auto-load-safe-path` to your `.gdbinit` to load any directory-specific `.gdbinit`s. The above is for GDB; I don't know what (if anything) needs to be done for LLDB; I don't use LLDB. Fixes #889. |
||
---|---|---|
.github | ||
desktop_version | ||
mobile_version | ||
third_party | ||
tools | ||
.gitattributes | ||
.gitmodules | ||
License exceptions.md | ||
LICENSE.md | ||
README.md |
This is the source code to VVVVVV, version 2.0+. For more context about this release, see the announcement on Terry's blog!
License
VVVVVV's source code is made available under a custom license. See LICENSE.md for more details.
In general, if you're interested in creating something that falls outside the license terms, get in touch with Terry and we'll talk about it!
Authors
- Created by Terry Cavanagh
- Room Names by Bennett Foddy
- Music by Magnus Pålsson
- Metal Soundtrack by FamilyJules
- 2.0 Update (C++ Port) by Simon Roth
- 2.2 Update (SDL2/PhysicsFS/Steamworks port) by Ethan Lee
- Beta Testing by Sam Kaplan and Pauli Kohberger
- Ending Picture by Pauli Kohberger
Versions
There are two versions of the VVVVVV source code available - the desktop version (based on the C++ port, and currently live on Steam), and the mobile version (based on a fork of the original flash source code, and currently live on iOS and Android).