From 2f2555bb21dc0f53cf28155082a2bb0ac12c8959 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 8 Jun 2019 22:04:38 +0200 Subject: Compile cmake sub project as cmake --- backend/ninja/Ninja.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'backend') diff --git a/backend/ninja/Ninja.cpp b/backend/ninja/Ninja.cpp index f5c92a4..1848e99 100644 --- a/backend/ninja/Ninja.cpp +++ b/backend/ninja/Ninja.cpp @@ -5,6 +5,7 @@ #include "../../include/Exec.hpp" #include "../../include/PkgConfig.hpp" #include "../../include/GlobalLib.hpp" +#include "../../include/CmakeModule.hpp" #include using namespace std; @@ -380,10 +381,20 @@ namespace backend errMsg += " is an executable. Only libraries can be sub projects"; return Result::Err(errMsg); } - - Result buildResult = subProject.subProject->build(*subProject.config, subProject.buildPath.c_str(), staticLinkerFlagCallbackFunc, dynamicLinkerFlagCallback, globalIncludeDirCallback); - if(!buildResult) - return buildResult; + + if(subProject.config->shouldUseCmake()) + { + CmakeModule cmakeModule; + Result buildResult = cmakeModule.compile(*subProject.config, subProject.buildPath, staticLinkerFlagCallbackFunc, dynamicLinkerFlagCallback, globalIncludeDirCallback); + if(!buildResult) + return buildResult; + } + else + { + Result buildResult = subProject.subProject->build(*subProject.config, subProject.buildPath.c_str(), staticLinkerFlagCallbackFunc, dynamicLinkerFlagCallback, globalIncludeDirCallback); + if(!buildResult) + return buildResult; + } } return Result::Ok(true); } -- cgit v1.2.3