You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by lo...@apache.org on 2012/06/12 02:59:22 UTC
[lucy-commits] svn commit: r1349080 - in /lucy/trunk/charmonizer/src/Charmonizer:
Core/Compiler.c Core/Compiler.h Probe/SymbolVisibility.c
Author: logie
Date: Tue Jun 12 00:59:22 2012
New Revision: 1349080
URL: http://svn.apache.org/viewvc?rev=1349080&view=rev
Log:
JIRA-237
Modified:
lucy/trunk/charmonizer/src/Charmonizer/Core/Compiler.c
lucy/trunk/charmonizer/src/Charmonizer/Core/Compiler.h
lucy/trunk/charmonizer/src/Charmonizer/Probe/SymbolVisibility.c
Modified: lucy/trunk/charmonizer/src/Charmonizer/Core/Compiler.c
URL: http://svn.apache.org/viewvc/lucy/trunk/charmonizer/src/Charmonizer/Core/Compiler.c?rev=1349080&r1=1349079&r2=1349080&view=diff
==============================================================================
--- lucy/trunk/charmonizer/src/Charmonizer/Core/Compiler.c (original)
+++ lucy/trunk/charmonizer/src/Charmonizer/Core/Compiler.c Tue Jun 12 00:59:22 2012
@@ -42,9 +42,16 @@ static char *try_obj_name = NULL;
static char include_flag[10] = "";
static char object_flag[10] = "";
static char exe_flag[10] = "";
+static char error_flag[10] = "";
static int defines___GNUC__ = 0;
static int defines__MSC_VER = 0;
static int defines___clang__ = 0;
+static int warnings_as_errors = 0;
+
+void
+CC_set_warnings_as_errors(const int flag) {
+ warnings_as_errors = flag;
+}
void
CC_init(const char *compiler_command, const char *compiler_flags) {
@@ -169,7 +176,15 @@ CC_compile_exe(const char *source_path,
char *junk = (char*)malloc(junk_buf_size);
size_t exe_file_buf_len = sprintf(exe_file, "%s%s", exe_name, exe_ext);
char *inc_dir_string = S_inc_dir_string();
+ if (warnings_as_errors) {
+ if (defines__MSC_VER) {
+ strcpy(error_flag, "/WX");
+ } else {
+ strcpy(error_flag, "-Werror");
+ }
+ }
size_t command_max_size = strlen(cc_command)
+ + strlen(error_flag)
+ strlen(source_path)
+ strlen(exe_flag)
+ exe_file_buf_len
@@ -184,10 +199,11 @@ CC_compile_exe(const char *source_path,
Util_write_file(source_path, code);
/* Prepare and run the compiler command. */
- sprintf(command, "%s %s %s%s %s %s",
- cc_command, source_path,
- exe_flag, exe_file,
- inc_dir_string, cc_flags);
+ sprintf(command, "%s %s %s %s%s %s %s",
+ cc_command, error_flag,
+ source_path, exe_flag,
+ exe_file, inc_dir_string,
+ cc_flags);
if (Util_verbosity < 2) {
OS_run_quietly(command);
}
@@ -226,7 +242,16 @@ CC_compile_obj(const char *source_path,
char *obj_file = (char*)malloc(obj_file_buf_size);
size_t obj_file_buf_len = sprintf(obj_file, "%s%s", obj_name, obj_ext);
char *inc_dir_string = S_inc_dir_string();
+ if (warnings_as_errors) {
+ if (defines__MSC_VER) {
+ strcpy(error_flag, "/WX");
+ } else {
+ strcpy(error_flag, "-Werror");
+ }
+ }
+
size_t command_max_size = strlen(cc_command)
+ + strlen(error_flag)
+ strlen(source_path)
+ strlen(object_flag)
+ obj_file_buf_len
@@ -241,10 +266,10 @@ CC_compile_obj(const char *source_path,
Util_write_file(source_path, code);
/* Prepare and run the compiler command. */
- sprintf(command, "%s %s %s%s %s %s",
- cc_command, source_path,
- object_flag, obj_file,
- inc_dir_string,
+ sprintf(command, "%s %s %s %s%s %s %s",
+ cc_command, error_flag,
+ source_path, object_flag,
+ obj_file, inc_dir_string,
cc_flags);
if (Util_verbosity < 2) {
OS_run_quietly(command);
Modified: lucy/trunk/charmonizer/src/Charmonizer/Core/Compiler.h
URL: http://svn.apache.org/viewvc/lucy/trunk/charmonizer/src/Charmonizer/Core/Compiler.h?rev=1349080&r1=1349079&r2=1349080&view=diff
==============================================================================
--- lucy/trunk/charmonizer/src/Charmonizer/Core/Compiler.h (original)
+++ lucy/trunk/charmonizer/src/Charmonizer/Core/Compiler.h Tue Jun 12 00:59:22 2012
@@ -72,6 +72,9 @@ chaz_CC_init(const char *cc_command, con
void
chaz_CC_clean_up(void);
+void
+chaz_CC_set_warnings_as_errors(const int flag);
+
#ifdef CHAZ_USE_SHORT_NAMES
#define CC_compile_exe chaz_CC_compile_exe
#define CC_compile_obj chaz_CC_compile_obj
@@ -80,6 +83,7 @@ chaz_CC_clean_up(void);
#define CC_test_compile chaz_CC_test_compile
#define CC_capture_output chaz_CC_capture_output
#define CC_init chaz_CC_init
+ #define CC_set_warnings_as_errors chaz_CC_set_warnings_as_errors
#endif
#ifdef __cplusplus
Modified: lucy/trunk/charmonizer/src/Charmonizer/Probe/SymbolVisibility.c
URL: http://svn.apache.org/viewvc/lucy/trunk/charmonizer/src/Charmonizer/Probe/SymbolVisibility.c?rev=1349080&r1=1349079&r2=1349080&view=diff
==============================================================================
--- lucy/trunk/charmonizer/src/Charmonizer/Probe/SymbolVisibility.c (original)
+++ lucy/trunk/charmonizer/src/Charmonizer/Probe/SymbolVisibility.c Tue Jun 12 00:59:22 2012
@@ -38,6 +38,7 @@ SymbolVisibility_run(void) {
char code_buf[sizeof(symbol_exporting_code) + 100];
ConfWriter_start_module("SymbolVisibility");
+ CC_set_warnings_as_errors(1);
/* Windows. */
if (!can_control_visibility) {
@@ -62,6 +63,7 @@ SymbolVisibility_run(void) {
ConfWriter_append_conf("#define CHY_IMPORT\n");
}
}
+ CC_set_warnings_as_errors(0);
/* Default. */
if (!can_control_visibility) {