You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2013/04/08 21:31:00 UTC
[lucy-commits] [07/12] git commit: refs/heads/master - Add chaz_CFlags_add_define
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/3de236ed
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/3de236ed
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/3de236ed
Branch: refs/heads/master
Commit: 3de236ed53126032320c641d18e9886e27f0bdfa
Parents: 77d7cf7
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Wed Apr 3 18:44:28 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Mon Apr 8 21:23:22 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/3de236ed/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/3de236ed/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/3de236ed/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/common/charmonizer.main b/common/charmonizer.main
index 00a930a..02343fa 100644
--- a/common/charmonizer.main
+++ b/common/charmonizer.main
@@ -65,16 +65,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. */
@@ -88,10 +78,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);
}
}