diff --git a/.gitmodules b/.gitmodules
index cd2562f2..5294ada6 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -12,7 +12,7 @@
url = https://github.com/mwasplund/Json11.git
[submodule "Dependencies/toml11"]
path = Dependencies/toml11
- url = https://github.com/mwasplund/toml11.gits
+ url = https://github.com/mwasplund/toml11.git
[submodule "Dependencies/cpp-httplib"]
path = Dependencies/cpp-httplib
url = https://github.com/mwasplund/cpp-httplib.git
@@ -28,3 +28,6 @@
[submodule "Dependencies/Opal"]
path = Dependencies/Opal
url = https://github.com/mwasplund/Opal.git
+[submodule "Dependencies/Detours"]
+ path = Dependencies/Detours
+ url = https://github.com/mwasplund/Detours.git
diff --git a/.vscode/settings.json b/.vscode/settings.json
index eb354598..9399a942 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -89,6 +89,7 @@
"string_view": "cpp",
"complex": "cpp",
"*.inc": "cpp",
- "compare": "cpp"
+ "compare": "cpp",
+ "cwctype": "cpp"
}
}
\ No newline at end of file
diff --git a/Dependencies/Detours b/Dependencies/Detours
new file mode 160000
index 00000000..51cf823f
--- /dev/null
+++ b/Dependencies/Detours
@@ -0,0 +1 @@
+Subproject commit 51cf823fc302393ee9123ad3ac21562f03e2428d
diff --git a/Dependencies/Opal b/Dependencies/Opal
index 30bbf5aa..30fd7ea6 160000
--- a/Dependencies/Opal
+++ b/Dependencies/Opal
@@ -1 +1 @@
-Subproject commit 30bbf5aa73aa3b7cd714b7d22770d21b15fec70b
+Subproject commit 30fd7ea6c2131aba28811b05a2358df9913a9b19
diff --git a/Dependencies/SoupSyntax b/Dependencies/SoupSyntax
index 88d5a937..7bf8618e 160000
--- a/Dependencies/SoupSyntax
+++ b/Dependencies/SoupSyntax
@@ -1 +1 @@
-Subproject commit 88d5a93700be4a15b5cd7b5b3e7d8b8e3e9b0f16
+Subproject commit 7bf8618e7429cf8663b4a3ad27bb0dcf287453cd
diff --git a/Dependencies/cpp-httplib b/Dependencies/cpp-httplib
index 4199e5b5..de388a12 160000
--- a/Dependencies/cpp-httplib
+++ b/Dependencies/cpp-httplib
@@ -1 +1 @@
-Subproject commit 4199e5b5100f697a1d876bb58165981c7f9ab80c
+Subproject commit de388a124ca8ee817d3874ca9f4dcd9a2494eb68
diff --git a/Docs/Samples/Simple-Build-Extension.md b/Docs/Samples/Simple-Build-Extension.md
index 3d4d61c4..c814c098 100644
--- a/Docs/Samples/Simple-Build-Extension.md
+++ b/Docs/Samples/Simple-Build-Extension.md
@@ -12,7 +12,7 @@ Version = "1.0.0"
Dependencies = [
"Opal@0.1.2",
"Soup.Build@0.3.0",
- "Soup.Build.Extensions@0.3.0",
+ "Soup.Build.Utilities@0.3.0",
]
Source = [
@@ -63,7 +63,7 @@ namespace SimpleBuildExtension
Soup::Build::ApiCallResult Execute(
Soup::Build::IBuildState& buildState) noexcept override final
{
- auto buildStateWrapper = Soup::Build::Extensions::BuildStateWrapper(buildState);
+ auto buildStateWrapper = Soup::Build::Utilities::BuildStateWrapper(buildState);
try
{
@@ -83,20 +83,20 @@ namespace SimpleBuildExtension
///
/// The Core Execute task
///
- void Execute(Soup::Build::Extensions::BuildStateWrapper& buildState)
+ void Execute(Soup::Build::Utilities::BuildStateWrapper& buildState)
{
buildState.LogHighPriority("Running After Build!");
}
private:
- static Soup::Build::Extensions::StringList _runBeforeList;
- static Soup::Build::Extensions::StringList _runAfterList;
+ static Soup::Build::Utilities::StringList _runBeforeList;
+ static Soup::Build::Utilities::StringList _runAfterList;
};
- Soup::Build::Extensions::StringList AfterBuildTask::_runBeforeList =
- Soup::Build::Extensions::StringList();
- Soup::Build::Extensions::StringList AfterBuildTask::_runAfterList =
- Soup::Build::Extensions::StringList({
+ Soup::Build::Utilities::StringList AfterBuildTask::_runBeforeList =
+ Soup::Build::Utilities::StringList();
+ Soup::Build::Utilities::StringList AfterBuildTask::_runAfterList =
+ Soup::Build::Utilities::StringList({
"Build",
});
}
@@ -145,7 +145,7 @@ namespace SimpleBuildExtension
Soup::Build::ApiCallResult Execute(
Soup::Build::IBuildState& buildState) noexcept override final
{
- auto buildStateWrapper = Soup::Build::Extensions::BuildStateWrapper(buildState);
+ auto buildStateWrapper = Soup::Build::Utilities::BuildStateWrapper(buildState);
try
{
@@ -165,7 +165,7 @@ namespace SimpleBuildExtension
///
/// The Core Execute task
///
- void Execute(Soup::Build::Extensions::BuildStateWrapper& buildState)
+ void Execute(Soup::Build::Utilities::BuildStateWrapper& buildState)
{
buildState.LogHighPriority("Running Before Build!");
auto rootTable = buildState.GetActiveState();
@@ -180,16 +180,16 @@ namespace SimpleBuildExtension
}
private:
- static Soup::Build::Extensions::StringList _runBeforeList;
- static Soup::Build::Extensions::StringList _runAfterList;
+ static Soup::Build::Utilities::StringList _runBeforeList;
+ static Soup::Build::Utilities::StringList _runAfterList;
};
- Soup::Build::Extensions::StringList BeforeBuildTask::_runBeforeList =
- Soup::Build::Extensions::StringList({
+ Soup::Build::Utilities::StringList BeforeBuildTask::_runBeforeList =
+ Soup::Build::Utilities::StringList({
"Build",
});
- Soup::Build::Extensions::StringList BeforeBuildTask::_runAfterList =
- Soup::Build::Extensions::StringList();
+ Soup::Build::Utilities::StringList BeforeBuildTask::_runAfterList =
+ Soup::Build::Utilities::StringList();
}
```
@@ -200,7 +200,7 @@ The Cpp file that implements the predefined `RegisterBuildExtension` C method to
import Opal;
import Soup.Build;
-import Soup.Build.Extensions;
+import Soup.Build.Utilities;
#include "AfterBuildTask.h"
#include "BeforeBuildTask.h"
diff --git a/Samples/SimpleBuildExtension/Extension/AfterBuildTask.h b/Samples/SimpleBuildExtension/Extension/AfterBuildTask.h
index f964b1d4..980d8fb9 100644
--- a/Samples/SimpleBuildExtension/Extension/AfterBuildTask.h
+++ b/Samples/SimpleBuildExtension/Extension/AfterBuildTask.h
@@ -38,7 +38,7 @@ namespace SimpleBuildExtension
Soup::Build::ApiCallResult Execute(
Soup::Build::IBuildState& buildState) noexcept override final
{
- auto buildStateWrapper = Soup::Build::Extensions::BuildStateWrapper(buildState);
+ auto buildStateWrapper = Soup::Build::Utilities::BuildStateWrapper(buildState);
try
{
@@ -58,20 +58,20 @@ namespace SimpleBuildExtension
///
/// The Core Execute task
///
- void Execute(Soup::Build::Extensions::BuildStateWrapper& buildState)
+ void Execute(Soup::Build::Utilities::BuildStateWrapper& buildState)
{
buildState.LogHighPriority("Running After Build!");
}
private:
- static Soup::Build::Extensions::StringList _runBeforeList;
- static Soup::Build::Extensions::StringList _runAfterList;
+ static Soup::Build::Utilities::StringList _runBeforeList;
+ static Soup::Build::Utilities::StringList _runAfterList;
};
- Soup::Build::Extensions::StringList AfterBuildTask::_runBeforeList =
- Soup::Build::Extensions::StringList();
- Soup::Build::Extensions::StringList AfterBuildTask::_runAfterList =
- Soup::Build::Extensions::StringList({
+ Soup::Build::Utilities::StringList AfterBuildTask::_runBeforeList =
+ Soup::Build::Utilities::StringList();
+ Soup::Build::Utilities::StringList AfterBuildTask::_runAfterList =
+ Soup::Build::Utilities::StringList({
"Build",
});
}
diff --git a/Samples/SimpleBuildExtension/Extension/BeforeBuildTask.h b/Samples/SimpleBuildExtension/Extension/BeforeBuildTask.h
index 54e81724..69096b26 100644
--- a/Samples/SimpleBuildExtension/Extension/BeforeBuildTask.h
+++ b/Samples/SimpleBuildExtension/Extension/BeforeBuildTask.h
@@ -38,7 +38,7 @@ namespace SimpleBuildExtension
Soup::Build::ApiCallResult Execute(
Soup::Build::IBuildState& buildState) noexcept override final
{
- auto buildStateWrapper = Soup::Build::Extensions::BuildStateWrapper(buildState);
+ auto buildStateWrapper = Soup::Build::Utilities::BuildStateWrapper(buildState);
try
{
@@ -58,7 +58,7 @@ namespace SimpleBuildExtension
///
/// The Core Execute task
///
- void Execute(Soup::Build::Extensions::BuildStateWrapper& buildState)
+ void Execute(Soup::Build::Utilities::BuildStateWrapper& buildState)
{
buildState.LogHighPriority("Running Before Build!");
auto rootTable = buildState.GetActiveState();
@@ -73,14 +73,14 @@ namespace SimpleBuildExtension
}
private:
- static Soup::Build::Extensions::StringList _runBeforeList;
- static Soup::Build::Extensions::StringList _runAfterList;
+ static Soup::Build::Utilities::StringList _runBeforeList;
+ static Soup::Build::Utilities::StringList _runAfterList;
};
- Soup::Build::Extensions::StringList BeforeBuildTask::_runBeforeList =
- Soup::Build::Extensions::StringList({
+ Soup::Build::Utilities::StringList BeforeBuildTask::_runBeforeList =
+ Soup::Build::Utilities::StringList({
"Build",
});
- Soup::Build::Extensions::StringList BeforeBuildTask::_runAfterList =
- Soup::Build::Extensions::StringList();
+ Soup::Build::Utilities::StringList BeforeBuildTask::_runAfterList =
+ Soup::Build::Utilities::StringList();
}
diff --git a/Samples/SimpleBuildExtension/Extension/Recipe.toml b/Samples/SimpleBuildExtension/Extension/Recipe.toml
index 42f41801..e73afc2d 100644
--- a/Samples/SimpleBuildExtension/Extension/Recipe.toml
+++ b/Samples/SimpleBuildExtension/Extension/Recipe.toml
@@ -4,7 +4,7 @@ Version = "1.0.0"
Dependencies = [
"Opal@0.1.2",
"Soup.Build@0.3.0",
- "Soup.Build.Extensions@0.3.0",
+ "Soup.Build.Utilities@0.3.0",
]
Source = [
diff --git a/Samples/SimpleBuildExtension/Extension/Register.cpp b/Samples/SimpleBuildExtension/Extension/Register.cpp
index 2ae67f3c..144e8d7a 100644
--- a/Samples/SimpleBuildExtension/Extension/Register.cpp
+++ b/Samples/SimpleBuildExtension/Extension/Register.cpp
@@ -2,7 +2,7 @@
import Opal;
import Soup.Build;
-import Soup.Build.Extensions;
+import Soup.Build.Utilities;
#include "AfterBuildTask.h"
#include "BeforeBuildTask.h"
diff --git a/Scripts/Build.cmd b/Scripts/Build.cmd
new file mode 100644
index 00000000..d0bd2016
--- /dev/null
+++ b/Scripts/Build.cmd
@@ -0,0 +1,24 @@
+@echo off
+SET Flavor=%1
+SET ScriptsDir=%~dp0
+SET SourceDir=%ScriptsDir%..\Source
+SET ClientCLIDir=%SourceDir%\Client\CLI
+SET DetoursDir=%SourceDir%\Monitor\Detours
+SET BinaryDirectorPath=out\bin\MSVC\%Flavor%\win32
+SET ClientCLIBinaryDirectory=%ClientCLIDir%\%BinaryDirectorPath%
+SET DetoursBinaryDirectory=%DetoursDir%\%BinaryDirectorPath%
+REM - Build the host
+echo soup build %ClientCLIDir% -flavor %Flavor%
+call soup build %ClientCLIDir% -flavor %Flavor%
+if %ERRORLEVEL% NEQ 0 exit /B %ERRORLEVEL%
+REM - Build Each version of the detours dll
+echo soup build %DetoursDir% -architecture x64 -flavor %Flavor%
+call soup build %DetoursDir% -architecture x64 -flavor %Flavor%
+if %ERRORLEVEL% NEQ 0 exit /B %ERRORLEVEL%
+echo copy %DetoursBinaryDirectory%\x64\Monitor.Detours.dll %ClientCLIBinaryDirectory%\x64\Monitor.Detours.64.dll
+copy %DetoursBinaryDirectory%\x64\Monitor.Detours.dll %ClientCLIBinaryDirectory%\x64\Monitor.Detours.64.dll > nul
+echo soup build %DetoursDir% -architecture x86 -flavor %Flavor%
+call soup build %DetoursDir% -architecture x86 -flavor %Flavor%
+if %ERRORLEVEL% NEQ 0 exit /B %ERRORLEVEL%
+echo copy %DetoursBinaryDirectory%\x86\Monitor.Detours.dll %ClientCLIBinaryDirectory%\x64\Monitor.Detours.32.dll
+copy %DetoursBinaryDirectory%\x86\Monitor.Detours.dll %ClientCLIBinaryDirectory%\x64\Monitor.Detours.32.dll > nul
\ No newline at end of file
diff --git a/Scripts/alltest.cmd b/Scripts/alltest.cmd
index 1c93351c..baf3d1bb 100644
--- a/Scripts/alltest.cmd
+++ b/Scripts/alltest.cmd
@@ -1,28 +1,95 @@
@echo off
SET ScriptsDir=%~dp0
-SET SourceDir=%ScriptsDir%..\Source\
+SET SourceDir=%ScriptsDir%..\Source
-pushd %SourceDir%\Build\Extensions.UnitTests\
+echo %SourceDir%\Build\Execute.UnitTests\
+pushd %SourceDir%\Build\Execute.UnitTests\
+if %ERRORLEVEL% NEQ 0 exit /B %ERRORLEVEL%
call soup build
+if %ERRORLEVEL% NEQ 0 (
+ popd
+ exit /B %ERRORLEVEL%
+)
call soup run
+if %ERRORLEVEL% NEQ 0 (
+ echo Failed
+ popd
+ exit /B %ERRORLEVEL%
+)
popd
+echo %SourceDir%\Build\Utilities.UnitTests\
+pushd %SourceDir%\Build\Utilities.UnitTests\
+if %ERRORLEVEL% NEQ 0 exit /B %ERRORLEVEL%
+call soup build
+if %ERRORLEVEL% NEQ 0 (
+ popd
+ exit /B %ERRORLEVEL%
+)
+call soup run
+if %ERRORLEVEL% NEQ 0 (
+ popd
+ exit /B %ERRORLEVEL%
+)
+popd
+
+echo %SourceDir%\Extensions\Compiler\Core.UnitTests\
pushd %SourceDir%\Extensions\Compiler\Core.UnitTests\
+if %ERRORLEVEL% NEQ 0 exit /B %ERRORLEVEL%
call soup build
+if %ERRORLEVEL% NEQ 0 (
+ popd
+ exit /B %ERRORLEVEL%
+)
call soup run
+if %ERRORLEVEL% NEQ 0 (
+ popd
+ exit /B %ERRORLEVEL%
+)
popd
+echo %SourceDir%\Extensions\Compiler\Clang.UnitTests\
pushd %SourceDir%\Extensions\Compiler\Clang.UnitTests\
+if %ERRORLEVEL% NEQ 0 exit /B %ERRORLEVEL%
call soup build
+if %ERRORLEVEL% NEQ 0 (
+ popd
+ exit /B %ERRORLEVEL%
+)
call soup run
+if %ERRORLEVEL% NEQ 0 (
+ echo Failed
+ popd
+ exit /B %ERRORLEVEL%
+)
popd
+echo %SourceDir%\Extensions\Compiler\MSVC.UnitTests\
pushd %SourceDir%\Extensions\Compiler\MSVC.UnitTests\
+if %ERRORLEVEL% NEQ 0 exit /B %ERRORLEVEL%
call soup build
+if %ERRORLEVEL% NEQ 0 (
+ popd
+ exit /B %ERRORLEVEL%
+)
call soup run
+if %ERRORLEVEL% NEQ 0 (
+ popd
+ exit /B %ERRORLEVEL%
+)
popd
+echo %SourceDir%\Client\Core.UnitTests\
pushd %SourceDir%\Client\Core.UnitTests\
+if %ERRORLEVEL% NEQ 0 exit /B %ERRORLEVEL%
call soup build
+if %ERRORLEVEL% NEQ 0 (
+ popd
+ exit /B %ERRORLEVEL%
+)
call soup run
+if %ERRORLEVEL% NEQ 0 (
+ popd
+ exit /B %ERRORLEVEL%
+)
popd
\ No newline at end of file
diff --git a/Scripts/soup b/Scripts/soup
deleted file mode 100755
index d1117488..00000000
--- a/Scripts/soup
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-CONFIG=Debug
-ScriptsDir="$(dirname "${BASH_SOURCE[0]}")"
-RootDir="$(dirname "$ScriptsDir")"
-
-dotnet $RootDir/bin/Soup.Client/$CONFIG/netcoreapp2.1/Soup.dll "$@"
-#dotnet run -no-build -p $RootDir/Source/Client "$@"
diff --git a/Scripts/soup.cmd b/Scripts/soup.cmd
index 9105dc05..3e6bac8a 100644
--- a/Scripts/soup.cmd
+++ b/Scripts/soup.cmd
@@ -5,6 +5,7 @@ SET OutDir=%ClientDir%\out
SET BinaryDir=%OutDir%\bin
SET RunDir=%OutDir%\run
REM - Use a copy of the final binary in case we are re-buiding itself
-xcopy /s /Y %BinaryDir%\MSVC\Release\* %RunDir%\ > nul
+rmdir /S /Q %RunDir%
+xcopy /s /Y %BinaryDir%\MSVC\release\win32\x64\* %RunDir%\ > nul
copy %ClientDir%\LocalUserConfig.json %RunDir%\LocalUserConfig.json > nul
%RunDir%\Soup.exe %*
\ No newline at end of file
diff --git a/Scripts/soupd.cmd b/Scripts/soupd.cmd
index dae382b2..ca3a4362 100644
--- a/Scripts/soupd.cmd
+++ b/Scripts/soupd.cmd
@@ -5,6 +5,7 @@ SET OutDir=%ClientDir%\out
SET BinaryDir=%OutDir%\bin
SET RunDir=%OutDir%\run
REM - Use a copy of the final binary in case we are re-buiding itself
-xcopy /s /Y %BinaryDir%\MSVC\Debug\* %RunDir%\ > nul
+rmdir /S /Q %RunDir%
+xcopy /s /Y %BinaryDir%\MSVC\debug\win32\x64\* %RunDir%\ > nul
copy %ClientDir%\LocalUserConfig.json %RunDir%\LocalUserConfig.json > nul
%RunDir%\Soup.exe %*
\ No newline at end of file
diff --git a/Source/Build/Core/ApiCallResult.h b/Source/Build/Contracts/ApiCallResult.h
similarity index 100%
rename from Source/Build/Core/ApiCallResult.h
rename to Source/Build/Contracts/ApiCallResult.h
diff --git a/Source/Build/Core/IBuildOperation.h b/Source/Build/Contracts/IBuildOperation.h
similarity index 100%
rename from Source/Build/Core/IBuildOperation.h
rename to Source/Build/Contracts/IBuildOperation.h
diff --git a/Source/Build/Core/IBuildState.h b/Source/Build/Contracts/IBuildState.h
similarity index 100%
rename from Source/Build/Core/IBuildState.h
rename to Source/Build/Contracts/IBuildState.h
diff --git a/Source/Build/Core/IBuildSystem.h b/Source/Build/Contracts/IBuildSystem.h
similarity index 100%
rename from Source/Build/Core/IBuildSystem.h
rename to Source/Build/Contracts/IBuildSystem.h
diff --git a/Source/Build/Core/IBuildTask.h b/Source/Build/Contracts/IBuildTask.h
similarity index 100%
rename from Source/Build/Core/IBuildTask.h
rename to Source/Build/Contracts/IBuildTask.h
diff --git a/Source/Build/Core/IList.h b/Source/Build/Contracts/IList.h
similarity index 100%
rename from Source/Build/Core/IList.h
rename to Source/Build/Contracts/IList.h
diff --git a/Source/Build/Core/IReadOnlyList.h b/Source/Build/Contracts/IReadOnlyList.h
similarity index 100%
rename from Source/Build/Core/IReadOnlyList.h
rename to Source/Build/Contracts/IReadOnlyList.h
diff --git a/Source/Build/Core/IValue.h b/Source/Build/Contracts/IValue.h
similarity index 100%
rename from Source/Build/Core/IValue.h
rename to Source/Build/Contracts/IValue.h
diff --git a/Source/Build/Core/IValueList.h b/Source/Build/Contracts/IValueList.h
similarity index 100%
rename from Source/Build/Core/IValueList.h
rename to Source/Build/Contracts/IValueList.h
diff --git a/Source/Build/Core/IValuePrimitive.h b/Source/Build/Contracts/IValuePrimitive.h
similarity index 100%
rename from Source/Build/Core/IValuePrimitive.h
rename to Source/Build/Contracts/IValuePrimitive.h
diff --git a/Source/Build/Core/IValueTable.h b/Source/Build/Contracts/IValueTable.h
similarity index 100%
rename from Source/Build/Core/IValueTable.h
rename to Source/Build/Contracts/IValueTable.h
diff --git a/Source/Build/Core/Module.cpp b/Source/Build/Contracts/Module.cpp
similarity index 100%
rename from Source/Build/Core/Module.cpp
rename to Source/Build/Contracts/Module.cpp
diff --git a/Source/Build/Contracts/Recipe.toml b/Source/Build/Contracts/Recipe.toml
new file mode 100644
index 00000000..04366ec3
--- /dev/null
+++ b/Source/Build/Contracts/Recipe.toml
@@ -0,0 +1,11 @@
+Name = "Soup.Build"
+Description = """The core Soup Build Contracts used to define
+the stable Binary Interface layer between the Build Evaluation
+engine and the Extensions."""
+Version = "0.3.0"
+Dependencies = [
+ "../../../Dependencies/Opal/Source/",
+ # "Opal@0.1.2",
+]
+
+Public = "Module.cpp"
diff --git a/Source/Build/Core/Recipe.toml b/Source/Build/Core/Recipe.toml
deleted file mode 100644
index 0c1329ef..00000000
--- a/Source/Build/Core/Recipe.toml
+++ /dev/null
@@ -1,8 +0,0 @@
-Name = "Soup.Build"
-Version = "0.3.0"
-Dependencies = [
- "../../../Dependencies/Opal/Source/",
- # "Opal@0.1.2",
-]
-
-Public = "Module.cpp"
diff --git a/Source/Build/Runtime/BuildSimpleList.h b/Source/Build/Evaluate/BuildSimpleList.h
similarity index 92%
rename from Source/Build/Runtime/BuildSimpleList.h
rename to Source/Build/Evaluate/BuildSimpleList.h
index d67f0349..5c54181f 100644
--- a/Source/Build/Runtime/BuildSimpleList.h
+++ b/Source/Build/Evaluate/BuildSimpleList.h
@@ -4,7 +4,7 @@
#pragma once
-namespace Soup::Build::Runtime
+namespace Soup::Build::Evaluate
{
///
/// Build list implementation for simple objects
diff --git a/Source/Build/Runtime/BuildState.h b/Source/Build/Evaluate/BuildState.h
similarity index 92%
rename from Source/Build/Runtime/BuildState.h
rename to Source/Build/Evaluate/BuildState.h
index 075a52d8..d9b445e1 100644
--- a/Source/Build/Runtime/BuildState.h
+++ b/Source/Build/Evaluate/BuildState.h
@@ -5,7 +5,7 @@
#pragma once
#include "ValueTable.h"
-namespace Soup::Build::Runtime
+namespace Soup::Build::Evaluate
{
///
/// Build State Extension interface
@@ -107,7 +107,7 @@ namespace Soup::Build::Runtime
}
private:
- Extensions::BuildOperationList _rootOperations;
+ Utilities::BuildOperationList _rootOperations;
ValueTable _activeState;
ValueTable _sharedState;
};
diff --git a/Source/Build/Runtime/BuildSystem.h b/Source/Build/Evaluate/BuildSystem.h
similarity index 93%
rename from Source/Build/Runtime/BuildSystem.h
rename to Source/Build/Evaluate/BuildSystem.h
index 06c1bb91..f0fcf7f9 100644
--- a/Source/Build/Runtime/BuildSystem.h
+++ b/Source/Build/Evaluate/BuildSystem.h
@@ -5,7 +5,7 @@
#pragma once
#include "BuildState.h"
-namespace Soup::Build::Runtime
+namespace Soup::Build::Evaluate
{
class BuildTaskContainer
{
@@ -55,9 +55,9 @@ namespace Soup::Build::Runtime
Log::Diag("RegisterTask: " + taskName);
// TODO: Remove const casts
- auto runBeforeList = Extensions::ReadOnlyStringListWrapper(
+ auto runBeforeList = Utilities::ReadOnlyStringListWrapper(
ourTask->GetRunBeforeList());
- auto runAfterList = Extensions::ReadOnlyStringListWrapper(
+ auto runAfterList = Utilities::ReadOnlyStringListWrapper(
ourTask->GetRunAfterList());
auto taskContainer = BuildTaskContainer(
ourTask,
diff --git a/Source/Build/Runtime/Module.cpp b/Source/Build/Evaluate/Module.cpp
similarity index 78%
rename from Source/Build/Runtime/Module.cpp
rename to Source/Build/Evaluate/Module.cpp
index 377f553f..d34b380f 100644
--- a/Source/Build/Runtime/Module.cpp
+++ b/Source/Build/Evaluate/Module.cpp
@@ -8,11 +8,11 @@
#include
#include
-export module Soup.Build.Runtime;
+export module Soup.Build.Evaluate;
import Opal;
import Soup.Build;
-import Soup.Build.Extensions;
+import Soup.Build.Utilities;
using namespace Opal;
diff --git a/Source/Build/Evaluate/Recipe.toml b/Source/Build/Evaluate/Recipe.toml
new file mode 100644
index 00000000..a7022a66
--- /dev/null
+++ b/Source/Build/Evaluate/Recipe.toml
@@ -0,0 +1,17 @@
+Name = "Soup.Build.Evaluate"
+Description = """The Build Evaluation implementation of the contract classes that are
+used inside the primary Build Evaluation Engine."""
+Version = "0.1.0"
+Dependencies = [
+ "../Contracts/",
+ # "Soup.Build@0.3.0",
+ "../Utilities/",
+ # "Soup.Build.Utilities@0.3.0",
+ "../../../Dependencies/Opal/Source/",
+ # "Opal@0.1.2",
+]
+
+Public = "Module.cpp"
+Source = [
+ "Value.cpp",
+]
diff --git a/Source/Build/Runtime/Value.cpp b/Source/Build/Evaluate/Value.cpp
similarity index 94%
rename from Source/Build/Runtime/Value.cpp
rename to Source/Build/Evaluate/Value.cpp
index c6c5c688..11572bfe 100644
--- a/Source/Build/Runtime/Value.cpp
+++ b/Source/Build/Evaluate/Value.cpp
@@ -11,11 +11,11 @@ module;
#include
#include
-module Soup.Build.Runtime;
+module Soup.Build.Evaluate;
using namespace Opal;
-namespace Soup::Build::Runtime
+namespace Soup::Build::Evaluate
{
Value::Value() :
diff --git a/Source/Build/Runtime/Value.h b/Source/Build/Evaluate/Value.h
similarity index 94%
rename from Source/Build/Runtime/Value.h
rename to Source/Build/Evaluate/Value.h
index 466ec292..636c07aa 100644
--- a/Source/Build/Runtime/Value.h
+++ b/Source/Build/Evaluate/Value.h
@@ -4,7 +4,7 @@
#pragma once
-namespace Soup::Build::Runtime
+namespace Soup::Build::Evaluate
{
export class ValueTable;
export class ValueList;
diff --git a/Source/Build/Runtime/ValueList.h b/Source/Build/Evaluate/ValueList.h
similarity index 92%
rename from Source/Build/Runtime/ValueList.h
rename to Source/Build/Evaluate/ValueList.h
index 509636d5..00680bd2 100644
--- a/Source/Build/Runtime/ValueList.h
+++ b/Source/Build/Evaluate/ValueList.h
@@ -4,7 +4,7 @@
#pragma once
-namespace Soup::Build::Runtime
+namespace Soup::Build::Evaluate
{
///
/// Build list implementation for simple objects
diff --git a/Source/Build/Runtime/ValuePrimitive.h b/Source/Build/Evaluate/ValuePrimitive.h
similarity index 93%
rename from Source/Build/Runtime/ValuePrimitive.h
rename to Source/Build/Evaluate/ValuePrimitive.h
index e2dd4529..62a23517 100644
--- a/Source/Build/Runtime/ValuePrimitive.h
+++ b/Source/Build/Evaluate/ValuePrimitive.h
@@ -6,7 +6,7 @@
#include "Value.h"
#include "ValueList.h"
-namespace Soup::Build::Runtime
+namespace Soup::Build::Evaluate
{
///
/// Build State Extension interface
diff --git a/Source/Build/Runtime/ValueTable.h b/Source/Build/Evaluate/ValueTable.h
similarity index 93%
rename from Source/Build/Runtime/ValueTable.h
rename to Source/Build/Evaluate/ValueTable.h
index 3693b9c4..37c184ab 100644
--- a/Source/Build/Runtime/ValueTable.h
+++ b/Source/Build/Evaluate/ValueTable.h
@@ -6,7 +6,7 @@
#include "Value.h"
#include "ValueList.h"
-namespace Soup::Build::Runtime
+namespace Soup::Build::Evaluate
{
///
/// Build State Extension interface
@@ -188,7 +188,7 @@ namespace Soup::Build::Runtime
}
private:
- Extensions::StringList _keyList;
+ Utilities::StringList _keyList;
std::map _values;
};
}
diff --git a/Source/Client/Core.UnitTests/Build/Runner/BuildHistoryCheckerTests.h b/Source/Build/Execute.UnitTests/BuildHistoryCheckerTests.h
similarity index 99%
rename from Source/Client/Core.UnitTests/Build/Runner/BuildHistoryCheckerTests.h
rename to Source/Build/Execute.UnitTests/BuildHistoryCheckerTests.h
index ac6c5516..73a1eb86 100644
--- a/Source/Client/Core.UnitTests/Build/Runner/BuildHistoryCheckerTests.h
+++ b/Source/Build/Execute.UnitTests/BuildHistoryCheckerTests.h
@@ -3,8 +3,9 @@
//
#pragma once
+#include "Helpers.h"
-namespace Soup::Build::UnitTests
+namespace Soup::Build::Execute::UnitTests
{
class BuildHistoryCheckerTests
{
diff --git a/Source/Client/Core.UnitTests/Build/Runner/BuildHistoryJsonTests.h b/Source/Build/Execute.UnitTests/BuildHistoryJsonTests.h
similarity index 98%
rename from Source/Client/Core.UnitTests/Build/Runner/BuildHistoryJsonTests.h
rename to Source/Build/Execute.UnitTests/BuildHistoryJsonTests.h
index 9d03aa5d..92ff3e95 100644
--- a/Source/Client/Core.UnitTests/Build/Runner/BuildHistoryJsonTests.h
+++ b/Source/Build/Execute.UnitTests/BuildHistoryJsonTests.h
@@ -4,7 +4,7 @@
#pragma once
-namespace Soup::Build::UnitTests
+namespace Soup::Build::Execute::UnitTests
{
class BuildHistoryJsonTests
{
diff --git a/Source/Client/Core.UnitTests/Build/Runner/BuildHistoryManagerTests.h b/Source/Build/Execute.UnitTests/BuildHistoryManagerTests.h
similarity index 98%
rename from Source/Client/Core.UnitTests/Build/Runner/BuildHistoryManagerTests.h
rename to Source/Build/Execute.UnitTests/BuildHistoryManagerTests.h
index dd1e3d89..84d5efc4 100644
--- a/Source/Client/Core.UnitTests/Build/Runner/BuildHistoryManagerTests.h
+++ b/Source/Build/Execute.UnitTests/BuildHistoryManagerTests.h
@@ -4,7 +4,7 @@
#pragma once
-namespace Soup::Build::UnitTests
+namespace Soup::Build::Execute::UnitTests
{
class BuildHistoryManagerTests
{
diff --git a/Source/Client/Core.UnitTests/Build/Runner/BuildHistoryTests.h b/Source/Build/Execute.UnitTests/BuildHistoryTests.h
similarity index 99%
rename from Source/Client/Core.UnitTests/Build/Runner/BuildHistoryTests.h
rename to Source/Build/Execute.UnitTests/BuildHistoryTests.h
index 986d082c..d1a0e9db 100644
--- a/Source/Client/Core.UnitTests/Build/Runner/BuildHistoryTests.h
+++ b/Source/Build/Execute.UnitTests/BuildHistoryTests.h
@@ -4,7 +4,7 @@
#pragma once
-namespace Soup::Build::UnitTests
+namespace Soup::Build::Execute::UnitTests
{
class BuildHistoryTests
{
diff --git a/Source/Client/Core.UnitTests/Build/Runner/BuildRunnerTests.h b/Source/Build/Execute.UnitTests/BuildRunnerTests.h
similarity index 91%
rename from Source/Client/Core.UnitTests/Build/Runner/BuildRunnerTests.h
rename to Source/Build/Execute.UnitTests/BuildRunnerTests.h
index 5288b2cf..e49df76f 100644
--- a/Source/Client/Core.UnitTests/Build/Runner/BuildRunnerTests.h
+++ b/Source/Build/Execute.UnitTests/BuildRunnerTests.h
@@ -4,7 +4,7 @@
#pragma once
-namespace Soup::Build::UnitTests
+namespace Soup::Build::Execute::UnitTests
{
class BuildRunnerTests
{
@@ -33,11 +33,11 @@ namespace Soup::Build::UnitTests
auto uut = BuildRunner(Path("C:/BuildDirectory/"));
// Setup the input build state
- auto operations = Extensions::BuildOperationList();
+ auto operations = Utilities::BuildOperationList();
auto objectDirectory = Path("out/obj/release/");
auto forceBuild = true;
uut.Execute(
- Extensions::BuildOperationListWrapper(operations),
+ Utilities::BuildOperationListWrapper(operations),
objectDirectory,
forceBuild);
@@ -86,11 +86,11 @@ namespace Soup::Build::UnitTests
auto uut = BuildRunner(Path("C:/BuildDirectory/"));
// Setup the input build state
- auto operations = Extensions::BuildOperationList();
+ auto operations = Utilities::BuildOperationList();
auto objectDirectory = Path("out/obj/release/");
auto forceBuild = false;
uut.Execute(
- Extensions::BuildOperationListWrapper(operations),
+ Utilities::BuildOperationListWrapper(operations),
objectDirectory,
forceBuild);
@@ -143,9 +143,9 @@ namespace Soup::Build::UnitTests
auto uut = BuildRunner(Path("C:/BuildDirectory/"));
// Setup the input build state
- auto operations = Extensions::BuildOperationList(
- std::vector>({
- new Extensions::BuildOperation(
+ auto operations = Utilities::BuildOperationList(
+ std::vector>({
+ new Utilities::BuildOperation(
"TestCommand: 1",
Path("Command.exe"),
"Arguments",
@@ -160,7 +160,7 @@ namespace Soup::Build::UnitTests
auto objectDirectory = Path("out/obj/release/");
bool forceBuild = true;
uut.Execute(
- Extensions::BuildOperationListWrapper(operations),
+ Utilities::BuildOperationListWrapper(operations),
objectDirectory,
forceBuild);
@@ -189,7 +189,12 @@ namespace Soup::Build::UnitTests
// Verify expected process requests
Assert::AreEqual(
std::vector({
- "Execute: [C:/TestWorkingDirectory/] Command.exe Arguments",
+ "CreateProcess: 1 [C:/TestWorkingDirectory/] Command.exe Arguments",
+ "ProcessStart: 1",
+ "WaitForExit: 1",
+ "GetStandardOutput: 1",
+ "GetStandardError: 1",
+ "GetExitCode: 1",
}),
processManager->GetRequests(),
"Verify process manager requests match expected.");
@@ -213,9 +218,9 @@ namespace Soup::Build::UnitTests
auto uut = BuildRunner(Path("C:/BuildDirectory/"));
// Setup the input build state
- auto operations = Extensions::BuildOperationList(
- std::vector>({
- new Extensions::BuildOperation(
+ auto operations = Utilities::BuildOperationList(
+ std::vector>({
+ new Utilities::BuildOperation(
"TestCommand: 1",
Path("Command.exe"),
"Arguments",
@@ -230,7 +235,7 @@ namespace Soup::Build::UnitTests
auto objectDirectory = Path("out/obj/debug/");
auto forceBuild = false;
uut.Execute(
- Extensions::BuildOperationListWrapper(operations),
+ Utilities::BuildOperationListWrapper(operations),
objectDirectory,
forceBuild);
@@ -263,7 +268,12 @@ namespace Soup::Build::UnitTests
// Verify expected process requests
Assert::AreEqual(
std::vector({
- "Execute: [C:/TestWorkingDirectory/] Command.exe Arguments",
+ "CreateProcess: 1 [C:/TestWorkingDirectory/] Command.exe Arguments",
+ "ProcessStart: 1",
+ "WaitForExit: 1",
+ "GetStandardOutput: 1",
+ "GetStandardError: 1",
+ "GetExitCode: 1",
}),
processManager->GetRequests(),
"Verify process manager requests match expected.");
@@ -295,9 +305,9 @@ namespace Soup::Build::UnitTests
auto uut = BuildRunner(Path("C:/BuildDirectory/"));
// Setup the input build state
- auto operations = Extensions::BuildOperationList(
- std::vector>({
- new Extensions::BuildOperation(
+ auto operations = Utilities::BuildOperationList(
+ std::vector>({
+ new Utilities::BuildOperation(
"TestCommand: 1",
Path("Command.exe"),
"Arguments",
@@ -312,7 +322,7 @@ namespace Soup::Build::UnitTests
auto objectDirectory = Path("out/obj/debug/");
auto forceBuild = false;
uut.Execute(
- Extensions::BuildOperationListWrapper(operations),
+ Utilities::BuildOperationListWrapper(operations),
objectDirectory,
forceBuild);
@@ -378,9 +388,9 @@ namespace Soup::Build::UnitTests
auto uut = BuildRunner(Path("C:/BuildDirectory/"));
// Setup the input build state
- auto operations = Extensions::BuildOperationList(
- std::vector>({
- new Extensions::BuildOperation(
+ auto operations = Utilities::BuildOperationList(
+ std::vector>({
+ new Utilities::BuildOperation(
"TestCommand: 1",
Path("Command.exe"),
"Arguments",
@@ -395,7 +405,7 @@ namespace Soup::Build::UnitTests
auto objectDirectory = Path("out/obj/debug/");
auto forceBuild = false;
uut.Execute(
- Extensions::BuildOperationListWrapper(operations),
+ Utilities::BuildOperationListWrapper(operations),
objectDirectory,
forceBuild);
@@ -469,9 +479,9 @@ namespace Soup::Build::UnitTests
auto uut = BuildRunner(Path("C:/BuildDirectory/"));
// Setup the input build state
- auto operations = Extensions::BuildOperationList(
- std::vector>({
- new Extensions::BuildOperation(
+ auto operations = Utilities::BuildOperationList(
+ std::vector>({
+ new Utilities::BuildOperation(
"TestCommand: 1",
Path("Command.exe"),
"Arguments",
@@ -486,7 +496,7 @@ namespace Soup::Build::UnitTests
auto objectDirectory = Path("out/obj/debug/");
auto forceBuild = false;
uut.Execute(
- Extensions::BuildOperationListWrapper(operations),
+ Utilities::BuildOperationListWrapper(operations),
objectDirectory,
forceBuild);
@@ -565,9 +575,9 @@ namespace Soup::Build::UnitTests
auto uut = BuildRunner(Path("C:/BuildDirectory/"));
// Setup the input build state
- auto operations = Extensions::BuildOperationList(
- std::vector>({
- new Extensions::BuildOperation(
+ auto operations = Utilities::BuildOperationList(
+ std::vector>({
+ new Utilities::BuildOperation(
"TestCommand: 1",
Path("Command.exe"),
"Arguments",
@@ -582,7 +592,7 @@ namespace Soup::Build::UnitTests
auto objectDirectory = Path("out/obj/debug/");
auto forceBuild = false;
uut.Execute(
- Extensions::BuildOperationListWrapper(operations),
+ Utilities::BuildOperationListWrapper(operations),
objectDirectory,
forceBuild);
diff --git a/Source/Build/Execute.UnitTests/Helpers.h b/Source/Build/Execute.UnitTests/Helpers.h
new file mode 100644
index 00000000..e23496db
--- /dev/null
+++ b/Source/Build/Execute.UnitTests/Helpers.h
@@ -0,0 +1,23 @@
+//
+// Copyright (c) Soup. All rights reserved.
+//
+
+#pragma once
+
+namespace Soup::Build::Execute::UnitTests
+{
+ std::time_t CreateDateTime(int year, int month, int day, int hour, int minutes)
+ {
+ std::tm timeInfo = std::tm();
+
+ // Year is offset from 1900
+ timeInfo.tm_year = year - 1900;
+ timeInfo.tm_mon = month;
+ timeInfo.tm_mday = day;
+ timeInfo.tm_hour = hour;
+ timeInfo.tm_min = minutes;
+
+ std::time_t time = std::mktime(&timeInfo);
+ return time;
+ }
+}
\ No newline at end of file
diff --git a/Source/Build/Execute.UnitTests/Recipe.toml b/Source/Build/Execute.UnitTests/Recipe.toml
new file mode 100644
index 00000000..78045669
--- /dev/null
+++ b/Source/Build/Execute.UnitTests/Recipe.toml
@@ -0,0 +1,17 @@
+Name = "Soup.Build.Execute.UnitTests"
+Version = "1.0.0"
+Type = "Executable"
+Dependencies = [
+ # "../../Dependencies/json11/",
+ "json11@1.0.0",
+ # "../../Dependencies/SoupTest/Assert/",
+ "SoupTest@0.1.0",
+ "../Execute/",
+ "../../TestUtilities/",
+]
+Source = [
+ "gen/Main.cpp"
+]
+IncludePaths = [
+ "./",
+]
diff --git a/Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryCheckerTests.gen.h b/Source/Build/Execute.UnitTests/gen/BuildHistoryCheckerTests.gen.h
similarity index 87%
rename from Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryCheckerTests.gen.h
rename to Source/Build/Execute.UnitTests/gen/BuildHistoryCheckerTests.gen.h
index d0692f95..9bb3236b 100644
--- a/Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryCheckerTests.gen.h
+++ b/Source/Build/Execute.UnitTests/gen/BuildHistoryCheckerTests.gen.h
@@ -1,10 +1,10 @@
#pragma once
-#include "Build/Runner/BuildHistoryCheckerTests.h"
+#include "BuildHistoryCheckerTests.h"
TestState RunBuildHistoryCheckerTests()
{
auto className = "BuildHistoryCheckerTests";
- auto testClass = std::make_shared();
+ auto testClass = std::make_shared();
TestState state = { 0, 0 };
state += SoupTest::RunTest(className, "IsOutdated_ZeroInput_Throws", [&testClass]() { testClass->IsOutdated_ZeroInput_Throws(); });
state += SoupTest::RunTest(className, "IsOutdated_SingleInput_MissingTarget", [&testClass]() { testClass->IsOutdated_SingleInput_MissingTarget(); });
diff --git a/Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryJsonTests.gen.h b/Source/Build/Execute.UnitTests/gen/BuildHistoryJsonTests.gen.h
similarity index 88%
rename from Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryJsonTests.gen.h
rename to Source/Build/Execute.UnitTests/gen/BuildHistoryJsonTests.gen.h
index 262acdb7..fcca59c7 100644
--- a/Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryJsonTests.gen.h
+++ b/Source/Build/Execute.UnitTests/gen/BuildHistoryJsonTests.gen.h
@@ -1,10 +1,10 @@
#pragma once
-#include "Build/Runner/BuildHistoryJsonTests.h"
+#include "BuildHistoryJsonTests.h"
TestState RunBuildHistoryJsonTests()
{
auto className = "BuildHistoryJsonTests";
- auto testClass = std::make_shared();
+ auto testClass = std::make_shared();
TestState state = { 0, 0 };
state += SoupTest::RunTest(className, "Deserialize_GarbageThrows", [&testClass]() { testClass->Deserialize_GarbageThrows(); });
state += SoupTest::RunTest(className, "Deserialize_MissingKnownFiles", [&testClass]() { testClass->Deserialize_MissingKnownFiles(); });
diff --git a/Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryManagerTests.gen.h b/Source/Build/Execute.UnitTests/gen/BuildHistoryManagerTests.gen.h
similarity index 78%
rename from Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryManagerTests.gen.h
rename to Source/Build/Execute.UnitTests/gen/BuildHistoryManagerTests.gen.h
index bfe897e1..6c1921aa 100644
--- a/Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryManagerTests.gen.h
+++ b/Source/Build/Execute.UnitTests/gen/BuildHistoryManagerTests.gen.h
@@ -1,10 +1,10 @@
#pragma once
-#include "Build/Runner/BuildHistoryManagerTests.h"
+#include "BuildHistoryManagerTests.h"
TestState RunBuildHistoryManagerTests()
{
auto className = "BuildHistoryManagerTests";
- auto testClass = std::make_shared();
+ auto testClass = std::make_shared();
TestState state = { 0, 0 };
state += SoupTest::RunTest(className, "TryLoadFromFile_MissingFile", [&testClass]() { testClass->TryLoadFromFile_MissingFile(); });
state += SoupTest::RunTest(className, "TryLoadFromFile_GarbageFile", [&testClass]() { testClass->TryLoadFromFile_GarbageFile(); });
diff --git a/Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryTests.gen.h b/Source/Build/Execute.UnitTests/gen/BuildHistoryTests.gen.h
similarity index 87%
rename from Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryTests.gen.h
rename to Source/Build/Execute.UnitTests/gen/BuildHistoryTests.gen.h
index 56c156d1..8ae5e057 100644
--- a/Source/Client/Core.UnitTests/gen/Build/Runner/BuildHistoryTests.gen.h
+++ b/Source/Build/Execute.UnitTests/gen/BuildHistoryTests.gen.h
@@ -1,10 +1,10 @@
#pragma once
-#include "Build/Runner/BuildHistoryTests.h"
+#include "BuildHistoryTests.h"
TestState RunBuildHistoryTests()
{
auto className = "BuildHistoryTests";
- auto testClass = std::make_shared();
+ auto testClass = std::make_shared();
TestState state = { 0, 0 };
state += SoupTest::RunTest(className, "TryBuildIncludeClosure_SourceFileMissingFails", [&testClass]() { testClass->TryBuildIncludeClosure_SourceFileMissingFails(); });
state += SoupTest::RunTest(className, "TryBuildIncludeClosure_DependencyFileMissingFails", [&testClass]() { testClass->TryBuildIncludeClosure_DependencyFileMissingFails(); });
diff --git a/Source/Client/Core.UnitTests/gen/Build/Runner/BuildRunnerTests.gen.h b/Source/Build/Execute.UnitTests/gen/BuildRunnerTests.gen.h
similarity index 91%
rename from Source/Client/Core.UnitTests/gen/Build/Runner/BuildRunnerTests.gen.h
rename to Source/Build/Execute.UnitTests/gen/BuildRunnerTests.gen.h
index f71a43be..b6c1808a 100644
--- a/Source/Client/Core.UnitTests/gen/Build/Runner/BuildRunnerTests.gen.h
+++ b/Source/Build/Execute.UnitTests/gen/BuildRunnerTests.gen.h
@@ -1,10 +1,10 @@
#pragma once
-#include "Build/Runner/BuildRunnerTests.h"
+#include "BuildRunnerTests.h"
TestState RunBuildRunnerTests()
{
auto className = "BuildRunnerTests";
- auto testClass = std::make_shared();
+ auto testClass = std::make_shared();
TestState state = { 0, 0 };
state += SoupTest::RunTest(className, "Initialize", [&testClass]() { testClass->Initialize(); });
state += SoupTest::RunTest(className, "Execute_NoOperations_ForceBuild", [&testClass]() { testClass->Execute_NoOperations_ForceBuild(); });
diff --git a/Source/Build/Execute.UnitTests/gen/Main.cpp b/Source/Build/Execute.UnitTests/gen/Main.cpp
new file mode 100644
index 00000000..98262481
--- /dev/null
+++ b/Source/Build/Execute.UnitTests/gen/Main.cpp
@@ -0,0 +1,47 @@
+#include
+#include
+#include
+#include