[Bf-blender-cvs] [b2e16c5] master: Fix Cycles OpenCL compile error on Windows.

Brecht Van Lommel noreply at git.blender.org
Sun Jul 31 04:02:51 CEST 2016


Commit: b2e16c57002aed98dc433e84f4c3f8206b29b1c3
Author: Brecht Van Lommel
Date:   Sun Jul 31 01:54:05 2016 +0200
Branches: master
https://developer.blender.org/rBb2e16c57002aed98dc433e84f4c3f8206b29b1c3

Fix Cycles OpenCL compile error on Windows.

===================================================================

M	intern/cycles/util/util_path.cpp

===================================================================

diff --git a/intern/cycles/util/util_path.cpp b/intern/cycles/util/util_path.cpp
index 800dfa2..f23f2cb 100644
--- a/intern/cycles/util/util_path.cpp
+++ b/intern/cycles/util/util_path.cpp
@@ -728,6 +728,17 @@ bool path_remove(const string& path)
 	return remove(path.c_str()) == 0;
 }
 
+static string line_directive(const string& path, int line)
+{
+	string escaped_path = path;
+	string_replace(escaped_path, "\"", "\\\"");
+	string_replace(escaped_path, "\'", "\\\'");
+	string_replace(escaped_path, "\?", "\\\?");
+	string_replace(escaped_path, "\\", "\\\\");
+	return string_printf("#line %d \"%s\"", line, escaped_path.c_str());
+}
+
+
 string path_source_replace_includes(const string& source, const string& path)
 {
 	/* Our own little c preprocessor that replaces #includes with the file
@@ -759,14 +770,10 @@ string path_source_replace_includes(const string& source, const string& path)
 						text = path_source_replace_includes(
 						        text, path_dirname(filepath));
 						text = path_source_replace_includes(text, path);
-						line = token.replace(0, n_end + 1, "\n" + text + "\n");
-
-						/* Line directives for better error messages. */
-						line =   string_printf("#line %d \"%s\"\n",
-						                       (int)0, filepath.c_str())
-						       + line
-						       + string_printf("\n#line %d \"%s\"",
-						                       (int)i, path.c_str());
+						/* Use line directives for better error messages. */
+						line = line_directive(filepath, 1)
+						     + token.replace(0, n_end + 1, "\n" + text + "\n")
+						     + line_directive(path, i);
 					}
 				}
 			}




More information about the Bf-blender-cvs mailing list