Create file list after preprocessing
Signed-off-by: Alain <alainmarcel@yahoo.com>
diff --git a/src/SourceCompile/Compiler.cpp b/src/SourceCompile/Compiler.cpp
index f965a4c..9a5d4de 100644
--- a/src/SourceCompile/Compiler.cpp
+++ b/src/SourceCompile/Compiler.cpp
@@ -47,6 +47,8 @@
#include <mutex>
#include <thread>
#include <vector>
+#include <iostream>
+#include <fstream>
using namespace SURELOG;
Compiler::Compiler(CommandLineParser* commandLineParser, ErrorContainer* errors,
@@ -229,12 +231,38 @@
return true;
}
+bool Compiler::createFileList_()
+{
+ if (m_commandLineParser->writePpOutput() ||
+ (m_commandLineParser->writePpOutputFileId() != 0)) {
+ SymbolTable* symbolTable = getSymbolTable();
+ const std::string& directory =
+ symbolTable->getSymbol(m_commandLineParser->getFullCompileDir());
+ std::ofstream ofs;
+ std::string fileList = directory + "/file.lst";
+ ofs.open(fileList);
+ if (ofs.good()) {
+ unsigned int size = m_compilers.size();
+ for (unsigned int i = 0; i < size; i++) {
+ std::string fileName = m_compilers[i]->getSymbolTable()->getSymbol(
+ m_compilers[i]->getPpOutputFileId());
+ fileName = StringUtils::replaceAll(fileName, "//", "/");
+ ofs << fileName << std::flush << std::endl;
+ }
+ ofs.close();
+ } else {
+ std::cout << "Could not create filelist: " << fileList << std::endl;
+ }
+ }
+}
+
+
bool Compiler::parseinit_() {
Precompiled* prec = Precompiled::getSingleton();
// Single out the large files.
// Small files are going to be scheduled in multiple threads based on size.
// Large files are going to be compiled in a different batch in multithread
-
+
if (!m_commandLineParser->fileunit()) {
unsigned int size = m_symbolTables.size();
for (unsigned int i = 0; i < size; i++) {
@@ -564,7 +592,7 @@
profile += msg;
tmr.reset();
}
-
+ createFileList_();
// Parse
bool parserInitialized = false;
if (m_commandLineParser->parse() || m_commandLineParser->pythonListener() ||
diff --git a/src/SourceCompile/Compiler.h b/src/SourceCompile/Compiler.h
index 80c182b..3e3cbd8 100644
--- a/src/SourceCompile/Compiler.h
+++ b/src/SourceCompile/Compiler.h
@@ -74,6 +74,7 @@
bool parseLibrariesDef_();
bool ppinit_();
+ bool createFileList_();
bool parseinit_();
bool pythoninit_();
bool compileFileSet_(CompileSourceFile::Action action, bool allowMultithread,