diff options
author | dec05eba <dec05eba@protonmail.com> | 2018-04-15 23:48:37 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2018-04-15 23:49:27 +0200 |
commit | d9f0e34a8dbbdbfc93162f0297ff9330b86d3c01 (patch) | |
tree | 0ed7f22a6c9712c34016f50325432fac654783c1 /src | |
parent | 93abdfacc3814345ada7c756eeed982f6de09732 (diff) |
Do not build project twice if project is an executable
and running 'sibs test'
Diffstat (limited to 'src')
-rw-r--r-- | src/main.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp index 24ef61f..2223b56 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -201,6 +201,16 @@ int buildProject(const FileString &projectPath, const FileString &projectConfFil { FileString buildPath; readSibsConfig(projectPath, projectConfFilePath, sibsConfig, buildPath); + // Test project has the main project as dependency, and therefore the main project can't be built as an executable + if(sibsConfig.shouldBuildTests()) + { + // HACK: We can build a package that is defined as executable and contains main function by redefining `main` as something else. + // TODO: Do not allow defining `main` in project.conf or as program argument to sibs. + // It's ok if `define` fails. It could fail if `main` has already been replaced by other tests somehow. + sibsConfig.define("main", "sibs_lib_ignore_main"); + sibsConfig.define("wmain", "sibs_lib_ignore_wmain"); + sibsConfig.setPackageType(PackageType::DYNAMIC); + } auto startTime = high_resolution_clock::now(); if(sibsConfig.shouldUseCmake()) |