aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/main.cpp b/src/main.cpp
index f49ba59..855b1dc 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,6 +1,7 @@
#include <cstdio>
#include <iostream>
#include <unordered_set>
+#include <chrono>
#include "../include/FileUtil.hpp"
#include "../include/Conf.hpp"
#include "../include/Exec.hpp"
@@ -8,6 +9,7 @@
using namespace std;
using namespace sibs;
+using namespace std::chrono;
// TODO: Fail if multiple versions of the same dependency is used
// as linking will fail because of multiple definitions of the same thing
@@ -20,6 +22,8 @@ using namespace sibs;
// TODO: Places that use PATH_MAX should be modified. A path CAN be longer than PATH_MAX... (does this include replacing tinydir.h?)
+// TODO: Remove install.sh when sibs supports installation of packages (so it can install itself)
+
#if OS_FAMILY == OS_FAMILY_POSIX
#define ferr std::cerr
#else
@@ -207,23 +211,7 @@ int buildProject(int argc, const _tinydir_char_t **argv)
//string projectSrcPath = projectPath + "/src";
//validateDirectoryPath(projectSrcPath.c_str());
- PackageType packageType = sibsConfig.getPackageType();
- backend::Ninja::LibraryType libraryType;
- switch(packageType)
- {
- case PackageType::EXECUTABLE:
- libraryType = backend::Ninja::LibraryType::EXECUTABLE;
- break;
- case PackageType::STATIC:
- libraryType = backend::Ninja::LibraryType::STATIC;
- break;
- case PackageType::DYNAMIC:
- case PackageType::LIBRARY:
- libraryType = backend::Ninja::LibraryType::DYNAMIC;
- break;
- }
-
- backend::Ninja ninja(libraryType);
+ backend::Ninja ninja;
FileWalkCallbackFunc collectSourceFiles = [&ninja, &sibsConfig, &collectSourceFiles](tinydir_file *file)
{
if(file->is_reg)
@@ -263,12 +251,15 @@ int buildProject(int argc, const _tinydir_char_t **argv)
break;
}
+ auto startTime = high_resolution_clock::now();
Result<bool> buildFileResult = ninja.build(sibsConfig, buildPath.c_str());
if(buildFileResult.isErr())
{
ferr << "Failed to build ninja file: " << toFileString(buildFileResult.getErrMsg()) << endl;
exit(7);
}
+ auto elapsedTime = duration_cast<duration<double>>(high_resolution_clock::now() - startTime);
+ printf("Build finished in %fs\n", elapsedTime.count());
return 0;
}