Refactor ConfigFile.cpp to be simpler
This commit is contained in:
+39
-34
@@ -16,13 +16,13 @@ void Makefile::Save(ConfigFile& conf, unsigned int flags)
|
||||
else
|
||||
Utils::GetCppAndHFiles(conf, hFiles, cppFiles);
|
||||
|
||||
std::ofstream outputFile(conf.GetConfigPath() + "Makefile");
|
||||
std::ofstream outputFile(conf.GetConfigPath() / "Makefile");
|
||||
outputFile << "# This Makefile was generated using MakeGen " << MAKEGEN_VERSION << " made by Tim Håkansson"
|
||||
<< std::endl;
|
||||
outputFile << "# and is licensed under MIT. Full source of the project can be found at" << std::endl;
|
||||
outputFile << "# https://gitea.timha.se/Thraix/MakeGen" << std::endl;
|
||||
outputFile << "CC=@g++" << std::endl;
|
||||
std::string outputtype = conf.GetSettingString(ConfigSetting::OutputType);
|
||||
std::string outputtype = conf.GetOutputType();
|
||||
if (outputtype != "executable")
|
||||
{
|
||||
if (outputtype == "sharedlibrary")
|
||||
@@ -34,19 +34,19 @@ void Makefile::Save(ConfigFile& conf, unsigned int flags)
|
||||
outputFile << "CO=@g++ -o" << std::endl;
|
||||
|
||||
outputFile << "MKDIR_P=mkdir -p" << std::endl;
|
||||
outputFile << "BIN=" << conf.GetSettingString(ConfigSetting::OutputDir) << std::endl;
|
||||
outputFile << "BIN=" << conf.GetOutputDir() << std::endl;
|
||||
outputFile << "OBJPATH=$(BIN)intermediates" << std::endl;
|
||||
outputFile << "INCLUDES=";
|
||||
std::vector<std::string>& includedirs = conf.GetSettingVectorString(ConfigSetting::IncludeDir);
|
||||
for (auto it = includedirs.begin(); it != includedirs.end(); ++it)
|
||||
const std::vector<std::string>& includeDirs = conf.GetIncludeDirs();
|
||||
for (const auto& includeDir : includeDirs)
|
||||
{
|
||||
outputFile << "-I " << *it << " ";
|
||||
outputFile << "-I " << includeDir << " ";
|
||||
}
|
||||
|
||||
std::vector<std::string>& includedirsexcldep = conf.GetSettingVectorString(ConfigSetting::IncludeDirExclDep);
|
||||
for (auto it = includedirsexcldep.begin(); it != includedirsexcldep.end(); ++it)
|
||||
const std::vector<std::string>& includeDirExclDeps = conf.GetIncludeDirExclDeps();
|
||||
for (const auto& includeDirExclDep : includeDirExclDeps)
|
||||
{
|
||||
outputFile << "-I " << *it << " ";
|
||||
outputFile << "-I " << includeDirExclDeps << " ";
|
||||
}
|
||||
outputFile << std::endl;
|
||||
outputFile << "OBJECTS=";
|
||||
@@ -67,42 +67,42 @@ void Makefile::Save(ConfigFile& conf, unsigned int flags)
|
||||
{
|
||||
outputFile << "CFLAGS=$(INCLUDES) -fPIC -std=c++17 -c ";
|
||||
}
|
||||
std::vector<std::string>& defines = conf.GetSettingVectorString(ConfigSetting::Define);
|
||||
for (auto it = defines.begin(); it != defines.end(); ++it)
|
||||
const std::vector<std::string>& defines = conf.GetDefines();
|
||||
for (const auto& define : defines)
|
||||
{
|
||||
outputFile << "-D" << *it << " ";
|
||||
outputFile << "-D" << define << " ";
|
||||
}
|
||||
std::vector<std::string>& cflags = conf.GetSettingVectorString(ConfigSetting::CFlag);
|
||||
for (auto it = cflags.begin(); it != cflags.end(); ++it)
|
||||
const std::vector<std::string>& cFlags = conf.GetCFlags();
|
||||
for (const auto& cFlag : cFlags)
|
||||
{
|
||||
outputFile << *it << " ";
|
||||
outputFile << cFlag << " ";
|
||||
}
|
||||
outputFile << std::endl;
|
||||
if (outputtype == "executable")
|
||||
{
|
||||
std::vector<std::string>& libdirs = conf.GetSettingVectorString(ConfigSetting::LibraryDir);
|
||||
const std::vector<std::string>& libraryDirs = conf.GetLibraryDirs();
|
||||
outputFile << "LIBDIR=";
|
||||
for (auto it = libdirs.begin(); it != libdirs.end(); ++it)
|
||||
for (const auto& libraryDir : libraryDirs)
|
||||
{
|
||||
outputFile << "-L " << *it << " ";
|
||||
outputFile << "-L " << libraryDir << " ";
|
||||
}
|
||||
outputFile << std::endl;
|
||||
std::vector<std::string>& lflags = conf.GetSettingVectorString(ConfigSetting::LFlag);
|
||||
const std::vector<std::string>& lFlags = conf.GetLFlags();
|
||||
outputFile << "LDFLAGS=";
|
||||
for (auto it = lflags.begin(); it != lflags.end(); ++it)
|
||||
for (const auto& lFlag : lFlags)
|
||||
{
|
||||
outputFile << *it << " ";
|
||||
outputFile << lFlag << " ";
|
||||
}
|
||||
for (auto it = libdirs.begin(); it != libdirs.end(); ++it)
|
||||
for (const auto& libraryDir : libraryDirs)
|
||||
{
|
||||
outputFile << "-Wl,-rpath=" << *it << " ";
|
||||
outputFile << "-Wl,-rpath=" << libraryDir << " ";
|
||||
}
|
||||
outputFile << std::endl;
|
||||
std::vector<std::string>& libs = conf.GetSettingVectorString(ConfigSetting::Library);
|
||||
const std::vector<std::string>& libraries = conf.GetLibraries();
|
||||
outputFile << "LIBS=$(LIBDIR) ";
|
||||
for (auto it = libs.begin(); it != libs.end(); ++it)
|
||||
for (const auto& library : libraries)
|
||||
{
|
||||
outputFile << "-l" << *it << " ";
|
||||
outputFile << "-l" << library << " ";
|
||||
}
|
||||
outputFile << std::endl;
|
||||
const std::vector<Dependency>& dependencies = conf.GetDependencies();
|
||||
@@ -116,7 +116,7 @@ void Makefile::Save(ConfigFile& conf, unsigned int flags)
|
||||
outputFile << std::endl;
|
||||
}
|
||||
}
|
||||
outputFile << "OUTPUT=$(BIN)" << conf.GetSettingString(ConfigSetting::OutputName) << std::endl;
|
||||
outputFile << "OUTPUT=$(BIN)" << conf.GetOutputName() << std::endl;
|
||||
outputFile << ".PHONY: all directories rebuild clean run" << std::endl;
|
||||
|
||||
// All
|
||||
@@ -142,13 +142,19 @@ void Makefile::Save(ConfigFile& conf, unsigned int flags)
|
||||
outputFile << "run: all" << std::endl;
|
||||
if (outputtype == "executable")
|
||||
{
|
||||
std::vector<std::string>& prearguments = conf.GetSettingVectorString(ConfigSetting::ExecPreArgument);
|
||||
std::vector<std::string>& arguments = conf.GetSettingVectorString(ConfigSetting::ExecArgument);
|
||||
const std::vector<std::string>& prearguments = conf.GetPreArguments();
|
||||
const std::vector<std::string>& arguments = conf.GetArguments();
|
||||
|
||||
outputFile << "\t@";
|
||||
for (auto&& preargument : prearguments) outputFile << preargument << " ";
|
||||
for (const auto& preargument : prearguments)
|
||||
{
|
||||
outputFile << preargument << " ";
|
||||
}
|
||||
outputFile << "./$(OUTPUT)";
|
||||
for (auto&& argument : arguments) outputFile << " " << argument;
|
||||
for (const auto& argument : arguments)
|
||||
{
|
||||
outputFile << " " << argument;
|
||||
}
|
||||
outputFile << std::endl;
|
||||
}
|
||||
|
||||
@@ -170,9 +176,8 @@ void Makefile::Save(ConfigFile& conf, unsigned int flags)
|
||||
|
||||
// Install
|
||||
outputFile << "install: all" << std::endl;
|
||||
outputFile << "\t$(info Installing " << conf.GetSettingString(ConfigSetting::ProjectName) << " to /usr/bin/)"
|
||||
<< std::endl;
|
||||
outputFile << "\t@cp $(OUTPUT) /usr/bin/" << conf.GetSettingString(ConfigSetting::OutputName) << std::endl;
|
||||
outputFile << "\t$(info Installing " << conf.GetProjectName() << " to /usr/bin/)" << std::endl;
|
||||
outputFile << "\t@cp $(OUTPUT) /usr/bin/" << conf.GetOutputName() << std::endl;
|
||||
|
||||
std::map<std::string, IncludeDeps*> dependencies;
|
||||
size_t i = 0;
|
||||
|
||||
Reference in New Issue
Block a user