Updated Branches: refs/heads/chaz-cflags 45abb0cff -> aa74b0aa0
Add chaz_CFlags_add_define Project: http://git-wip-us.apache.org/repos/asf/lucy/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/8e24b88e Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/8e24b88e Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/8e24b88e Branch: refs/heads/chaz-cflags Commit: 8e24b88e12f1c5e69abf62c9e0006b54a5c9f485 Parents: 45abb0c Author: Nick Wellnhofer <[email protected]> Authored: Wed Apr 3 18:44:28 2013 +0200 Committer: Nick Wellnhofer <[email protected]> Committed: Wed Apr 3 18:44:28 2013 +0200 ---------------------------------------------------------------------- charmonizer/src/Charmonizer/Core/CFlags.c | 22 ++++++++++++++++++++++ charmonizer/src/Charmonizer/Core/CFlags.h | 4 ++++ common/charmonizer.main | 22 +++++++++------------- 3 files changed, 35 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy/blob/8e24b88e/charmonizer/src/Charmonizer/Core/CFlags.c ---------------------------------------------------------------------- diff --git a/charmonizer/src/Charmonizer/Core/CFlags.c b/charmonizer/src/Charmonizer/Core/CFlags.c index 6978a43..180427e 100644 --- a/charmonizer/src/Charmonizer/Core/CFlags.c +++ b/charmonizer/src/Charmonizer/Core/CFlags.c @@ -98,6 +98,28 @@ chaz_CFlags_set_output_exe(chaz_CFlags *flags, const char *filename) { } void +chaz_CFlags_add_define(chaz_CFlags *flags, const char *name, + const char *value) { + const char *define; + char *string; + if (flags->style == CHAZ_CFLAGS_STYLE_MSVC) { + define = "/D"; + } + else { + /* POSIX */ + define = "-D "; + } + if (value) { + string = chaz_Util_join("", define, name, "=", value, NULL); + } + else { + string = chaz_Util_join("", define, name, NULL); + } + chaz_CFlags_append(flags, string); + free(string); +} + +void chaz_CFlags_add_include_dir(chaz_CFlags *flags, const char *dir) { const char *include; char *string; http://git-wip-us.apache.org/repos/asf/lucy/blob/8e24b88e/charmonizer/src/Charmonizer/Core/CFlags.h ---------------------------------------------------------------------- diff --git a/charmonizer/src/Charmonizer/Core/CFlags.h b/charmonizer/src/Charmonizer/Core/CFlags.h index 4749460..4e712ed 100644 --- a/charmonizer/src/Charmonizer/Core/CFlags.h +++ b/charmonizer/src/Charmonizer/Core/CFlags.h @@ -52,6 +52,10 @@ void chaz_CFlags_set_output_exe(chaz_CFlags *flags, const char *filename); void +chaz_CFlags_add_define(chaz_CFlags *flags, const char *name, + const char *value); + +void chaz_CFlags_add_include_dir(chaz_CFlags *flags, const char *dir); void http://git-wip-us.apache.org/repos/asf/lucy/blob/8e24b88e/common/charmonizer.main ---------------------------------------------------------------------- diff --git a/common/charmonizer.main b/common/charmonizer.main index 2cc653c..eb93309 100644 --- a/common/charmonizer.main +++ b/common/charmonizer.main @@ -62,16 +62,6 @@ S_add_compiler_flags(struct chaz_CLIArgs *args) { /* Only core source files require this -- not our headers and * autogenerated files. */ chaz_CFlags_append(extra_cflags, "-std=gnu99 -D_GNU_SOURCE"); - - /* When compiling for Perl bindings, define HAS_BOOL so that the Perl - * headers don't redefine 'bool' in conflict with C++. - * - * TODO: Compile all files that #include Perl headers separately and - * remove this directive. - */ - if (args->charmony_pm) { - chaz_CFlags_append(extra_cflags, "-DHAS_BOOL"); - } } else if (chaz_Probe_msvc_version_num()) { /* Compile as C++ under MSVC. */ @@ -85,10 +75,16 @@ S_add_compiler_flags(struct chaz_CLIArgs *args) { /* Redefine 'for' to fix broken 'for' scoping under MSVC6. */ chaz_CFlags_append(extra_cflags, "/Dfor=\"if(0);else for\""); } + } - if (args->charmony_pm) { - chaz_CFlags_append(extra_cflags, "/DHAS_BOOL"); - } + /* When compiling for Perl bindings, define HAS_BOOL so that the Perl + * headers don't redefine 'bool' in conflict with C++. + * + * TODO: Compile all files that #include Perl headers separately and + * remove this directive. + */ + if (args->charmony_pm) { + chaz_CFlags_add_define(extra_cflags, "HAS_BOOL", NULL); } }
