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/12 21:11:52 UTC

[lucy-commits] [1/8] git commit: refs/heads/c-bindings-cfc - 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/cf67dd85
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/cf67dd85
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/cf67dd85

Branch: refs/heads/c-bindings-cfc
Commit: cf67dd8522c332a95af0c49ca33d6145a6fb1f8c
Parents: 4cbd991
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sun Feb 10 21:21:52 2013 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sun Feb 10 21:21:52 2013 +0100

----------------------------------------------------------------------
 charmonizer/src/Charmonizer/Core/Compiler.c |    4 +-
 charmonizer/src/Charmonizer/Core/Compiler.h |   14 ++++----
 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, 58 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/cf67dd85/charmonizer/src/Charmonizer/Core/Compiler.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/Compiler.c b/charmonizer/src/Charmonizer/Core/Compiler.c
index 1d3d48a..440afdf 100644
--- a/charmonizer/src/Charmonizer/Core/Compiler.c
+++ b/charmonizer/src/Charmonizer/Core/Compiler.c
@@ -370,8 +370,8 @@ 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;
 }
 
 const char*

http://git-wip-us.apache.org/repos/asf/lucy/blob/cf67dd85/charmonizer/src/Charmonizer/Core/Compiler.h
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/Compiler.h b/charmonizer/src/Charmonizer/Core/Compiler.h
index a1291dd..2f03178 100644
--- a/charmonizer/src/Charmonizer/Core/Compiler.h
+++ b/charmonizer/src/Charmonizer/Core/Compiler.h
@@ -90,25 +90,25 @@ 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);
 
 const char*
-chaz_CC_link_command();
+chaz_CC_link_command(void);
 
 const char*
-chaz_CC_link_flags();
+chaz_CC_link_flags(void);
 
 const char*
-chaz_CC_link_shared_obj_flag();
+chaz_CC_link_shared_obj_flag(void);
 
 const char*
-chaz_CC_link_output_flag();
+chaz_CC_link_output_flag(void);
 
 #ifdef __cplusplus
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/cf67dd85/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/cf67dd85/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/cf67dd85/clownfish/compiler/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/clownfish/compiler/common/charmonizer.main b/clownfish/compiler/common/charmonizer.main
index 702312d..27ef71e 100644
--- a/clownfish/compiler/common/charmonizer.main
+++ b/clownfish/compiler/common/charmonizer.main
@@ -46,16 +46,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/cf67dd85/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/cf67dd85/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");
+        }
     }
 }