From 45693ea9cc5aabff3b55eb7388861357bf040045 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 20 Feb 2011 10:42:51 -0800 Subject: [PATCH] Added a revision number for easy compile-time tests. --- build-scripts/updaterev.sh | 2 ++ include/SDL_revision.h | 1 + include/SDL_version.h | 10 ++++++++++ src/SDL.c | 7 +++++++ test/testver.c | 10 ++++++---- 5 files changed, 26 insertions(+), 4 deletions(-) diff --git a/build-scripts/updaterev.sh b/build-scripts/updaterev.sh index a01b3343b..61ae9b023 100755 --- a/build-scripts/updaterev.sh +++ b/build-scripts/updaterev.sh @@ -9,7 +9,9 @@ header=$outdir/include/SDL_revision.h rev=`sh showrev.sh 2>/dev/null` if [ "$rev" != "" -a "$rev" != "hg-0:baadf00d" ]; then + revnum=`echo $rev | sed 's,hg-\([0-9]*\).*,\1,'` echo "#define SDL_REVISION \"$rev\"" >$header.new + echo "#define SDL_REVISION_NUMBER $revnum" >>$header.new if diff $header $header.new >/dev/null 2>&1; then rm $header.new else diff --git a/include/SDL_revision.h b/include/SDL_revision.h index 5eb56f990..d70fd694e 100644 --- a/include/SDL_revision.h +++ b/include/SDL_revision.h @@ -1 +1,2 @@ #define SDL_REVISION "hg-0:aaaaaaaaaaah" +#define SDL_REVISION_NUMBER 0 diff --git a/include/SDL_version.h b/include/SDL_version.h index d19f5f5cc..92b55e99f 100644 --- a/include/SDL_version.h +++ b/include/SDL_version.h @@ -144,6 +144,16 @@ extern DECLSPEC void SDLCALL SDL_GetVersion(SDL_version * ver); */ extern DECLSPEC const char *SDLCALL SDL_GetRevision(void); +/** + * \brief Get the revision number of SDL that is linked against your program. + * + * Returns a number uniquely identifying the exact revision of the SDL + * library in use. It is an incrementing number based on commits to + * hg.libsdl.org. + */ +extern DECLSPEC int SDLCALL SDL_GetRevisionNumber(void); + + /* Ends C function definitions when using C++ */ #ifdef __cplusplus /* *INDENT-OFF* */ diff --git a/src/SDL.c b/src/SDL.c index bb63586bd..6399a94cb 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -236,6 +236,13 @@ SDL_GetRevision(void) return SDL_REVISION; } +/* Get the library source revision number */ +int +SDL_GetRevisionNumber(void) +{ + return SDL_REVISION_NUMBER; +} + /* Get the name of the platform */ const char * SDL_GetPlatform() diff --git a/test/testver.c b/test/testver.c index 8fb098e9e..aaabc5467 100644 --- a/test/testver.c +++ b/test/testver.c @@ -21,11 +21,13 @@ main(int argc, char *argv[]) printf("Compiled with SDL older than 1.3\n"); #endif SDL_VERSION(&compiled); - printf("Compiled version: %d.%d.%d (%s)\n", - compiled.major, compiled.minor, compiled.patch, SDL_REVISION); + printf("Compiled version: %d.%d.%d.%d (%s)\n", + compiled.major, compiled.minor, compiled.patch, + SDL_REVISION_NUMBER, SDL_REVISION); SDL_GetVersion(&linked); - printf("Linked version: %d.%d.%d (%s)\n", - linked.major, linked.minor, linked.patch, SDL_GetRevision()); + printf("Linked version: %d.%d.%d.%d (%s)\n", + linked.major, linked.minor, linked.patch, + SDL_GetRevisionNumber(), SDL_GetRevision()); SDL_Quit(); return (0); }