Switching to a static library that contains version information as const char strings has multiple benefits: * The version information provided externally via compiler definitions will fail compilation early if malformed * An updated version string (which will happen with every commit) will not invalidate existing compilation units, because only the static library is affected by the change * An update of the version change just requires a recompilation of the static library and a linker update * An update of the version will _not_ infect the rest of the codebase (as it does currently, because everything includes obsconfig.h one way or another) * Other modules which used the macro definition directly have been updated as much as possible to use the proper getter method from `libobs` instead (some Windows-specific modules use preprocessor string composition, the value has been added as a compiler definition directly in those cases) * Because the impact of a version change due to a commit hash change is limited to the static library, ccache hit rates should be improved considerably |
||
|---|---|---|
| .. | ||
| linux | ||
| macos | ||
| feature-browserpanels.cmake | ||
| feature-importers.cmake | ||
| feature-macos-update.cmake | ||
| feature-restream.cmake | ||
| feature-sparkle.cmake | ||
| feature-twitch.cmake | ||
| feature-whatsnew.cmake | ||
| feature-youtube.cmake | ||
| legacy.cmake | ||
| os-freebsd.cmake | ||
| os-linux.cmake | ||
| os-macos.cmake | ||
| os-windows.cmake | ||
| ui-elements.cmake | ||
| ui-qt.cmake | ||
| ui-windows.cmake | ||