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);
     }
 }
 

Reply via email to