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/02/14 19:54:19 UTC
[lucy-commits] [3/7] git commit: refs/heads/master - Add chaz_Probe_msvc_version_num
Add chaz_Probe_msvc_version_num
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/6e036c58
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/6e036c58
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/6e036c58
Branch: refs/heads/master
Commit: 6e036c58629b1fc49fdf1b1a1a542a49096831e5
Parents: fc0a622
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sun Feb 10 21:21:52 2013 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Thu Feb 14 19:47:12 2013 +0100
----------------------------------------------------------------------
charmonizer/src/Charmonizer/Core/Compiler.c | 4 +-
charmonizer/src/Charmonizer/Core/Compiler.h | 6 ++--
charmonizer/src/Charmonizer/Probe.c | 4 +-
charmonizer/src/Charmonizer/Probe.h | 4 +-
clownfish/compiler/common/charmonizer.main | 14 +++++----
clownfish/runtime/common/charmonizer.main | 28 +++++++++++-------
common/charmonizer.main | 34 +++++++++++++---------
7 files changed, 54 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/6e036c58/charmonizer/src/Charmonizer/Core/Compiler.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/Compiler.c b/charmonizer/src/Charmonizer/Core/Compiler.c
index 485ecd7..5136289 100644
--- a/charmonizer/src/Charmonizer/Core/Compiler.c
+++ b/charmonizer/src/Charmonizer/Core/Compiler.c
@@ -370,7 +370,7 @@ chaz_CC_gcc_version(void) {
}
int
-chaz_CC_compiler_is_msvc(void) {
- return !!chaz_CC.intval__MSC_VER;
+chaz_CC_msvc_version_num(void) {
+ return chaz_CC.intval__MSC_VER;
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/6e036c58/charmonizer/src/Charmonizer/Core/Compiler.h
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/Compiler.h b/charmonizer/src/Charmonizer/Core/Compiler.h
index 7f0fbda..7504d40 100644
--- a/charmonizer/src/Charmonizer/Core/Compiler.h
+++ b/charmonizer/src/Charmonizer/Core/Compiler.h
@@ -90,13 +90,13 @@ const char*
chaz_CC_get_extra_cflags(void);
int
-chaz_CC_gcc_version_num();
+chaz_CC_gcc_version_num(void);
const char*
-chaz_CC_gcc_version();
+chaz_CC_gcc_version(void);
int
-chaz_CC_compiler_is_msvc(void);
+chaz_CC_msvc_version_num(void);
#ifdef __cplusplus
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/6e036c58/charmonizer/src/Charmonizer/Probe.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Probe.c b/charmonizer/src/Charmonizer/Probe.c
index c9824f1..c072e7e 100644
--- a/charmonizer/src/Charmonizer/Probe.c
+++ b/charmonizer/src/Charmonizer/Probe.c
@@ -162,6 +162,6 @@ chaz_Probe_gcc_version(void) {
}
int
-chaz_Probe_compiler_is_msvc(void) {
- return chaz_CC_compiler_is_msvc();
+chaz_Probe_msvc_version_num(void) {
+ return chaz_CC_msvc_version_num();
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/6e036c58/charmonizer/src/Charmonizer/Probe.h
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Probe.h b/charmonizer/src/Charmonizer/Probe.h
index 6adad50..9d44efa 100644
--- a/charmonizer/src/Charmonizer/Probe.h
+++ b/charmonizer/src/Charmonizer/Probe.h
@@ -87,10 +87,10 @@ chaz_Probe_gcc_version_num(void);
const char*
chaz_Probe_gcc_version(void);
-/* Returns true if the compiler is MSVC.
+/* Return the integer version of MSVC defined by _MSC_VER
*/
int
-chaz_Probe_compiler_is_msvc(void);
+chaz_Probe_msvc_version_num(void);
#ifdef __cplusplus
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/6e036c58/clownfish/compiler/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/clownfish/compiler/common/charmonizer.main b/clownfish/compiler/common/charmonizer.main
index d083f57..9709ed7 100644
--- a/clownfish/compiler/common/charmonizer.main
+++ b/clownfish/compiler/common/charmonizer.main
@@ -39,16 +39,18 @@ S_add_compiler_flags(struct chaz_CLIArgs *args) {
/* Tell GCC explicitly to run with maximum options. */
chaz_CC_add_extra_cflags("-std=gnu99 -D_GNU_SOURCE");
}
- else if (chaz_Probe_compiler_is_msvc()) {
+ else if (chaz_Probe_msvc_version_num()) {
/* Compile as C++ under MSVC. */
- chaz_CC_add_extra_cflags("-TP");
+ chaz_CC_add_extra_cflags("/TP");
/* Thwart stupid warnings. */
- chaz_CC_add_extra_cflags("-D_CRT_SECURE_NO_WARNINGS");
- chaz_CC_add_extra_cflags("-D_SCL_SECURE_NO_WARNINGS");
+ chaz_CC_add_extra_cflags("/D_CRT_SECURE_NO_WARNINGS");
+ chaz_CC_add_extra_cflags("/D_SCL_SECURE_NO_WARNINGS");
- /* Redefine 'for' to fix broken 'for' scoping under MSVC6. */
- chaz_CC_add_extra_cflags("-Dfor=\"if(0);else for\"");
+ if (chaz_Probe_msvc_version_num() < 1300) {
+ /* Redefine 'for' to fix broken 'for' scoping under MSVC6. */
+ chaz_CC_add_extra_cflags("/Dfor=\"if(0);else for\"");
+ }
}
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/6e036c58/clownfish/runtime/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/clownfish/runtime/common/charmonizer.main b/clownfish/runtime/common/charmonizer.main
index cb3649c..4c72ebe 100644
--- a/clownfish/runtime/common/charmonizer.main
+++ b/clownfish/runtime/common/charmonizer.main
@@ -55,17 +55,6 @@ S_add_compiler_flags(struct chaz_CLIArgs *args) {
/* Only core source files require this -- not our headers and
* autogenerated files. */
chaz_CC_add_extra_cflags("-std=gnu99 -D_GNU_SOURCE");
- }
- else if (chaz_Probe_compiler_is_msvc()) {
- /* Compile as C++ under MSVC. */
- chaz_CC_add_extra_cflags("/TP");
-
- /* Thwart stupid warnings. */
- chaz_CC_add_extra_cflags("-D_CRT_SECURE_NO_WARNINGS");
- chaz_CC_add_extra_cflags("-D_SCL_SECURE_NO_WARNINGS");
-
- /* Redefine 'for' to fix broken 'for' scoping under MSVC6. */
- chaz_CC_add_extra_cflags("-Dfor=\"if(0);else for\"");
/* When compiling for Perl bindings, define HAS_BOOL so that the Perl
* headers don't redefine 'bool' in conflict with C++.
@@ -77,6 +66,23 @@ S_add_compiler_flags(struct chaz_CLIArgs *args) {
chaz_CC_add_extra_cflags("-DHAS_BOOL");
}
}
+ else if (chaz_Probe_msvc_version_num()) {
+ /* Compile as C++ under MSVC. */
+ chaz_CC_add_extra_cflags("/TP");
+
+ /* Thwart stupid warnings. */
+ chaz_CC_add_extra_cflags("/D_CRT_SECURE_NO_WARNINGS");
+ chaz_CC_add_extra_cflags("/D_SCL_SECURE_NO_WARNINGS");
+
+ if (chaz_Probe_msvc_version_num() < 1300) {
+ /* Redefine 'for' to fix broken 'for' scoping under MSVC6. */
+ chaz_CC_add_extra_cflags("/Dfor=\"if(0);else for\"");
+ }
+
+ if (args->charmony_pm) {
+ chaz_CC_add_extra_cflags("/DHAS_BOOL");
+ }
+ }
}
int main(int argc, const char **argv) {
http://git-wip-us.apache.org/repos/asf/lucy/blob/6e036c58/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/common/charmonizer.main b/common/charmonizer.main
index b25680e..ba36d25 100644
--- a/common/charmonizer.main
+++ b/common/charmonizer.main
@@ -54,27 +54,33 @@ S_add_compiler_flags(struct chaz_CLIArgs *args) {
/* Only core source files require this -- not our headers and
* autogenerated files. */
chaz_CC_add_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_CC_add_extra_cflags("-DHAS_BOOL");
+ }
}
- else if (chaz_Probe_compiler_is_msvc()) {
+ else if (chaz_Probe_msvc_version_num()) {
/* Compile as C++ under MSVC. */
chaz_CC_add_extra_cflags("/TP");
/* Thwart stupid warnings. */
- chaz_CC_add_extra_cflags("-D_CRT_SECURE_NO_WARNINGS");
- chaz_CC_add_extra_cflags("-D_SCL_SECURE_NO_WARNINGS");
+ chaz_CC_add_extra_cflags("/D_CRT_SECURE_NO_WARNINGS");
+ chaz_CC_add_extra_cflags("/D_SCL_SECURE_NO_WARNINGS");
- /* Redefine 'for' to fix broken 'for' scoping under MSVC6. */
- chaz_CC_add_extra_cflags("-Dfor=\"if(0);else for\"");
- }
+ if (chaz_Probe_msvc_version_num() < 1300) {
+ /* Redefine 'for' to fix broken 'for' scoping under MSVC6. */
+ chaz_CC_add_extra_cflags("/Dfor=\"if(0);else for\"");
+ }
- /* 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_CC_add_extra_cflags("-DHAS_BOOL");
+ if (args->charmony_pm) {
+ chaz_CC_add_extra_cflags("/DHAS_BOOL");
+ }
}
}