浏览代码

ENH: Changed generation of gccxml command to write out define and include flags explicitly instead of using CMAKE_CXX_FLAGS and INCLUDE_FLAGS variables. This should help it run when gccxml is not the compiler that will build the generated wrappers.

Brad King 24 年之前
父节点
当前提交
19b183808a
共有 1 个文件被更改,包括 14 次插入1 次删除
  1. 14 1
      Source/cmCableWrapTclCommand.cxx

+ 14 - 1
Source/cmCableWrapTclCommand.cxx

@@ -257,7 +257,20 @@ void cmCableWrapTclCommand::GenerateCableClassFiles(const char* name,
     std::vector<std::string> depends;
     depends.push_back(command);
     command = cmSystemTools::EscapeSpaces(command.c_str());
-    command += " ${CMAKE_CXXFLAGS} ${INCLUDE_FLAGS} -fsyntax-only -fxml=" + classXmlName + " " + classCxxName;
+    
+    std::string defineFlags = m_Makefile->GetDefineFlags();
+    std::string includeFlags = "-I";
+    includeFlags += m_Makefile->GetStartDirectory();
+    
+    const std::vector<std::string>& includes = m_Makefile->GetIncludeDirectories();
+    for(std::vector<std::string>::const_iterator i = includes.begin();
+        i != includes.end(); ++i)
+      {
+      includeFlags += " -I";
+      includeFlags += cmSystemTools::EscapeSpaces(i->c_str());
+      }
+    
+    command += " "+defineFlags+" "+includeFlags+" -fsyntax-only -fxml="+classXmlName+" "+classCxxName;
     
     std::vector<std::string> outputs;
     outputs.push_back(classXmlName);