From 61d9e8699687342c2e32c32c8d4eb71760d5d290 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 26 Jun 2021 17:33:24 +0200 Subject: Use fork/exec instead of popen. Add Path class --- include/Conf.hpp | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) (limited to 'include/Conf.hpp') diff --git a/include/Conf.hpp b/include/Conf.hpp index 8098206..cfe0133 100644 --- a/include/Conf.hpp +++ b/include/Conf.hpp @@ -237,10 +237,10 @@ namespace sibs switch(optimizationLevel) { case OPT_LEV_DEBUG: - cmakeArgsGlobal = TINYDIR_STRING("-G Ninja \"-DCMAKE_BUILD_TYPE=Debug\""); + cmakeArgsGlobal = { TINYDIR_STRING("-G"), TINYDIR_STRING("Ninja"), TINYDIR_STRING("-DCMAKE_BUILD_TYPE=Debug") }; break; case OPT_LEV_RELEASE: - cmakeArgsGlobal = TINYDIR_STRING("-G Ninja \"-DCMAKE_BUILD_TYPE=Release\""); + cmakeArgsGlobal = { TINYDIR_STRING("-G"), TINYDIR_STRING("Ninja"), TINYDIR_STRING("-DCMAKE_BUILD_TYPE=Release") }; break; } } @@ -274,7 +274,7 @@ namespace sibs this->testPath = testPath; } - virtual const std::vector& getPackageListDependencies() const + virtual const std::vector& getPackageListDependencies() const { return packageListDependencies; } @@ -340,30 +340,24 @@ namespace sibs } // Get cmake args for all builds. This is args under [cmake] only - const FileString& getCmakeArgs() const + const std::vector& getCmakeArgs() const { return cmakeArgsGlobal; } // Get cmake args for static build. This is a combination of args under [cmake] and under [cmake.static] - FileString getCmakeArgsStatic() const + std::vector getCmakeArgsStatic() const { - FileString result; - result.reserve(cmakeArgsGlobal.size() + 1 + cmakeArgsStatic.size()); - result += cmakeArgsGlobal; - result += TINYDIR_STRING(" "); - result += cmakeArgsStatic; + std::vector result = cmakeArgsGlobal; + result.insert(result.end(), cmakeArgsStatic.begin(), cmakeArgsStatic.end()); return result; } // Get cmake args for dynamic build. This is a combination of args under [cmake] and under [cmake.dynamic] - FileString getCmakeArgsDynamic() const + std::vector getCmakeArgsDynamic() const { - FileString result; - result.reserve(cmakeArgsGlobal.size() + 1 + cmakeArgsDynamic.size()); - result += cmakeArgsGlobal; - result += TINYDIR_STRING(" "); - result += cmakeArgsDynamic; + std::vector result = cmakeArgsGlobal; + result.insert(result.end(), cmakeArgsDynamic.begin(), cmakeArgsDynamic.end()); return result; } @@ -451,7 +445,7 @@ namespace sibs std::string parsePlatformConfigStatic(const StringView &fieldName, const ConfigValue &fieldValue); void parsePlatformConfigStaticDebug(const StringView &fieldName, const ConfigValue &fieldValue); void parsePlatformConfigStaticRelease(const StringView &fieldName, const ConfigValue &fieldValue); - void parseCmake(const StringView &fieldName, const ConfigValue &fieldValue, FileString &cmakeDir, FileString &cmakeArgs); + void parseCmake(const StringView &fieldName, const ConfigValue &fieldValue, FileString &cmakeDir, std::vector &cmakeArgs); void validatePackageName() const; protected: StringView currentObject; @@ -460,7 +454,7 @@ namespace sibs std::string packageName; FileString testPath; PackageType packageType; - std::vector packageListDependencies; + std::vector packageListDependencies; std::vector platforms; std::unordered_map defines; OptimizationLevel optimizationLevel; @@ -469,9 +463,9 @@ namespace sibs FileString cmakeDirGlobal; FileString cmakeDirStatic; FileString cmakeDirDynamic; - FileString cmakeArgsGlobal; - FileString cmakeArgsStatic; - FileString cmakeArgsDynamic; + std::vector cmakeArgsGlobal; + std::vector cmakeArgsStatic; + std::vector cmakeArgsDynamic; CVersion cVersion; CPPVersion cppVersion; bool useCmake; -- cgit v1.2.3