diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 537e2c09..ff7c5874 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -15,7 +15,7 @@ jobs: matrix: configuration: [Release] - runs-on: [self-hosted, Windows, X64, L2] # For a list of available runner types, refer to + runs-on: [self-hosted, Windows, X64, L2, AX] # For a list of available runner types, refer to # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on steps: - name: Checkout diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 09b489d7..ef3f9868 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -21,7 +21,7 @@ jobs: matrix: configuration: [Release] - runs-on: [self-hosted, Windows, X64, L3] # For a list of available runner types, refer to + runs-on: [self-hosted, Windows, X64, L3, AX] # For a list of available runner types, refer to # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on steps: - name: Checkout diff --git a/.github/workflows/pr-dev.yml b/.github/workflows/pr-dev.yml index dd6a6f0e..ac10a15d 100644 --- a/.github/workflows/pr-dev.yml +++ b/.github/workflows/pr-dev.yml @@ -15,7 +15,7 @@ jobs: matrix: configuration: [Release] - runs-on: [self-hosted, Windows, X64, L2] # For a list of available runner types, refer to + runs-on: [self-hosted, Windows, X64, L2, AX] # For a list of available runner types, refer to # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on steps: - name: Checkout diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 934fb960..f66f418c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: matrix: configuration: [Release] - runs-on: [self-hosted, Windows, X64, L3] # For a list of available runner types, refer to + runs-on: [self-hosted, Windows, X64, L3, AX] # For a list of available runner types, refer to # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on steps: - name: Checkout diff --git a/cake/Helpers.cs b/cake/Helpers.cs index eb89f8f4..8cf0527b 100644 --- a/cake/Helpers.cs +++ b/cake/Helpers.cs @@ -81,6 +81,10 @@ public static void CopyApaxPackages(string sourceDir, string destinationDir, str { //swallow } + catch + { + Console.WriteLine("Failed to delete apax directory"); + } } } diff --git a/src/AXSharp.compiler/src/AXSharp.Compiler/AXSharpProject.cs b/src/AXSharp.compiler/src/AXSharp.Compiler/AXSharpProject.cs index fd043879..e5001cfc 100644 --- a/src/AXSharp.compiler/src/AXSharp.Compiler/AXSharpProject.cs +++ b/src/AXSharp.compiler/src/AXSharp.Compiler/AXSharpProject.cs @@ -46,15 +46,30 @@ public AXSharpProject(AxProject axProject, IEnumerable builderTypes, Type { AxProject = axProject; CompilerOptions = AXSharpConfig.UpdateAndGetAXSharpConfig(axProject.ProjectFolder, cliCompilerOptions); - OutputFolder = Path.GetFullPath(Path.Combine(AxProject.ProjectFolder, CompilerOptions.OutputProjectFolder)); - if (cliCompilerOptions != null) UseBaseSymbol = cliCompilerOptions.UseBase; - + if (CompilerOptions != null) + { + if(string.IsNullOrEmpty(CompilerOptions.OutputProjectFolder)) + throw new InvalidOperationException("Output project folder must be set in the AXSharp.config.json file."); + OutputFolder = Path.GetFullPath(Path.Combine(AxProject.ProjectFolder, CompilerOptions.OutputProjectFolder)); + + if (!string.IsNullOrEmpty(CompilerOptions.ProjectFile)) + { + ProjectFile = Path.Combine(OutputFolder, CompilerOptions.ProjectFile); + } + } + if (cliCompilerOptions != null) UseBaseSymbol = cliCompilerOptions.UseBase; + if (cliCompilerOptions != null && !string.IsNullOrEmpty(cliCompilerOptions.ProjectFile)) ProjectFile = cliCompilerOptions.ProjectFile; + BuilderTypes = builderTypes; TargetProject = Activator.CreateInstance(targetProjectType, this) as ITargetProject ?? throw new InvalidOperationException("Target project type must implement ITargetProject interface."); + + } + public string ProjectFile { get; } + /// /// Get AX project. diff --git a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/CsProject.cs b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/CsProject.cs index e9ac6f96..19bc7050 100644 --- a/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/CsProject.cs +++ b/src/AXSharp.compiler/src/AXSharp.Cs.Compiler/CsProject.cs @@ -32,17 +32,29 @@ public class CsProject : ITargetProject public CsProject(AXSharpProject AXSharpProject) { AxSharpProject = AXSharpProject; - ProjectRootNamespace = MakeValidIdentifier(AXSharpProject.AxProject.ProjectInfo.Name); + ProjectRootNamespace = MakeValidIdentifier(AXSharpProject.AxProject.ProjectInfo.Name); } private AXSharpProject AxSharpProject { get; } - + /// /// Gets associated IxProject file. /// - public string IxProjectFile => Path.Combine(AxSharpProject.OutputFolder, - $"{MakeValidFileName(AxSharpProject.AxProject.ProjectInfo.Name)}.csproj"); + public string IxProjectFile + { + get + { + if(AxSharpProject.ProjectFile == null) + { + return Path.Combine(AxSharpProject.OutputFolder, + $"{MakeValidFileName(AxSharpProject.AxProject.ProjectInfo.Name)}.csproj"); + } + + return AxSharpProject.ProjectFile; + } + } + /// diff --git a/src/AXSharp.compiler/src/ixc/Properties/launchSettings.json b/src/AXSharp.compiler/src/ixc/Properties/launchSettings.json index 39da295c..310e556e 100644 --- a/src/AXSharp.compiler/src/ixc/Properties/launchSettings.json +++ b/src/AXSharp.compiler/src/ixc/Properties/launchSettings.json @@ -33,9 +33,9 @@ "commandName": "Project", "workingDirectory": "C:\\W\\Develop\\gh\\inxton\\_axopen\\axopen\\src\\traversals\\apax\\" }, - "axopen-data": { + "axopen-core": { "commandName": "Project", - "workingDirectory": "c:\\W\\Develop\\gh\\inxton\\_axopen\\axopen\\src\\data\\app\\" + "workingDirectory": "c:\\W\\Develop\\gh\\inxton\\ax\\axopen\\src\\core\\ctrl\\" } } } \ No newline at end of file