Module: wine Branch: master Commit: 0a8e3c39a1e05f47136c69671ff691dc02ae0a88 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0a8e3c39a1e05f47136c69671f...
Author: Rob Shearman robertshearman@gmail.com Date: Thu Mar 26 13:31:25 2009 +0000
widl: Include the version number in the __WIDL__ preprocessor definition.
---
tools/widl/widl.c | 32 +++++++++++++++++++++++++++++++- 1 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/tools/widl/widl.c b/tools/widl/widl.c index 62b7ff5..cbc35b7 100644 --- a/tools/widl/widl.c +++ b/tools/widl/widl.c @@ -196,6 +196,36 @@ static char *dup_basename_token(const char *name, const char *ext) return ret; }
+static void add_widl_version_define(void) +{ + unsigned int version; + const char *p = PACKAGE_VERSION; + + /* major */ + version = atoi(p) * 0x10000; + p = strchr(p, '.'); + + /* minor */ + if (p) + { + version += atoi(p + 1) * 0x100; + p = strchr(p + 1, '.'); + } + + /* build */ + if (p) + version += atoi(p + 1); + + if (version != 0) + { + char version_str[11]; + snprintf(version_str, sizeof(version_str), "0x%x", version); + wpp_add_define("__WIDL__", version_str); + } + else + wpp_add_define("__WIDL__", NULL); +} + /* clean things up when aborting on a signal */ static void exit_on_signal( int sig ) { @@ -596,7 +626,7 @@ int main(int argc,char *argv[]) if (do_client) client_token = dup_basename_token(client_name,"_c.c"); if (do_server) server_token = dup_basename_token(server_name,"_s.c");
- wpp_add_cmdline_define("__WIDL__"); + add_widl_version_define();
atexit(rm_tempfile); if (!no_preprocess)