Selaa lähdekoodia

HPCC-13099 Fix regressions compiling under windows.

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday 10 vuotta sitten
vanhempi
commit
74039b1087
3 muutettua tiedostoa jossa 15 lisäystä ja 8 poistoa
  1. 0 3
      ecl/eclcc/eclcc.cpp
  2. 3 0
      ecl/hqlcpp/hqlecl.cpp
  3. 12 5
      system/jlib/jcomp.cpp

+ 0 - 3
ecl/eclcc/eclcc.cpp

@@ -772,9 +772,6 @@ void EclCC::instantECL(EclCompileInstance & instance, IWorkUnit *wu, const char
                 if (generateOk && !optNoCompile)
                 {
                     Owned<ICppCompiler> compiler = createCompiler(processName.str());
-                    StringBuffer mainName(processName);
-                    mainName.append(".cpp");
-                    compiler->addSourceFile(mainName);
                     compiler->setSaveTemps(optSaveTemps);
 
                     bool compileOk = true;

+ 3 - 0
ecl/hqlcpp/hqlecl.cpp

@@ -500,6 +500,9 @@ void HqlDllGenerator::doExpand(HqlCppTranslator & translator)
     unsigned numExtraFiles = translator.getNumExtraCppFiles();
     bool isMultiFile = translator.spanMultipleCppFiles() && (numExtraFiles != 0);
     expandCode(MAIN_MODULE_TEMPLATE, ".cpp", code, isMultiFile, 0, translator.queryOptions().targetCompiler);
+    StringBuffer fullname;
+    fullname.append(wuname).append(".cpp");
+    sourceFiles.append(fullname);
     if (isMultiFile)
     {
         expandCode(HEADER_TEMPLATE, ".hpp", code, true, 0, translator.queryOptions().targetCompiler);

+ 12 - 5
system/jlib/jcomp.cpp

@@ -468,6 +468,9 @@ bool CppCompiler::compileFile(IThreadPool * pool, const char * filename, Semapho
         return false;
 
     StringBuffer cmdline;
+    StringBuffer basename;
+    splitFilename(filename, &basename, &basename, &basename, NULL);
+
     cmdline.append(CC_NAME[targetCompiler]);
     if (precompileHeader)
         cmdline.append(CC_OPTION_PRECOMPILEHEADER[targetCompiler]);
@@ -492,11 +495,11 @@ bool CppCompiler::compileFile(IThreadPool * pool, const char * filename, Semapho
     {
         if (targetDir.get())
             cmdline.append(" /Fo").append("\"").append(targetDir).append("\"");
-        cmdline.append(" /Fd").append("\"").append(targetDir).append(createDLL ? SharedObjectPrefix : NULL).append(filename).append(".pdb").append("\"");//MORE: prefer create a single pdb file using coreName
+        cmdline.append(" /Fd").append("\"").append(targetDir).append(createDLL ? SharedObjectPrefix : NULL).append(basename).append(".pdb").append("\"");//MORE: prefer create a single pdb file using coreName
     }
     else
     {
-        cmdline.append(" -o ").append("\"").append(targetDir).append(filename).append('.');
+        cmdline.append(" -o ").append("\"").append(targetDir).append(basename).append('.');
         if (precompileHeader)
             cmdline.append(PCH_FILE_EXT[targetCompiler]);
         else
@@ -507,7 +510,7 @@ bool CppCompiler::compileFile(IThreadPool * pool, const char * filename, Semapho
     StringBuffer expanded;
     expandRootDirectory(expanded, cmdline);
     StringBuffer logFile;
-    logFile.append(filename).append(".log.tmp");
+    logFile.append(basename).append(".log.tmp");
     logFiles.append(logFile);
 
     Owned<CCompilerThreadParam> parm;
@@ -658,7 +661,11 @@ bool CppCompiler::doLink()
     cmdline.append(stdLibs);
 
     ForEachItemIn(i0, allSources)
-        cmdline.append(" ").append("\"").append(targetDir).append(allSources.item(i0)).append(".").append(OBJECT_FILE_EXT[targetCompiler]).append("\"");
+    {
+        StringBuffer objFilename;
+        getObjectName(objFilename, allSources.item(i0));
+        cmdline.append(" ").append("\"").append(objFilename).append("\"");
+    }
 
     cmdline.append(linkerOptions);
     cmdline.append(linkerLibraries);
@@ -706,7 +713,7 @@ void CppCompiler::expandRootDirectory(StringBuffer & expanded, StringBuffer & in
 StringBuffer & CppCompiler::getObjectName(StringBuffer & out, const char * filename)
 {
     out.append(targetDir);
-    splitFilename(filename, NULL, NULL, &out, &out);
+    splitFilename(filename, NULL, NULL, &out, NULL);
     return out.append(".").append(OBJECT_FILE_EXT[targetCompiler]);
 }