diff --git a/IDE/src/Compiler/BfCompiler.bf b/IDE/src/Compiler/BfCompiler.bf index 74f2a02c..d2f5af96 100644 --- a/IDE/src/Compiler/BfCompiler.bf +++ b/IDE/src/Compiler/BfCompiler.bf @@ -150,6 +150,11 @@ namespace IDE.Compiler public BfPassInstance mPassInstance; } + class DeletePassInstanceCommand : Command + { + public BfPassInstance mPassInstance; + } + class SetupProjectSettingsCommand : Command { public Project mProject; @@ -265,6 +270,13 @@ namespace IDE.Compiler QueueCommand(command); } + public void QueueDeletePassInstance(BfPassInstance passInstance) + { + DeletePassInstanceCommand command = new DeletePassInstanceCommand(); + command.mPassInstance = passInstance; + QueueCommand(command); + } + public void QueueSetupProjectSettings(Project project) { SetupProjectSettingsCommand command = new SetupProjectSettingsCommand(); @@ -338,6 +350,13 @@ namespace IDE.Compiler { var setPassInstanceCommand = (SetPassInstanceCommand)command; passInstance = setPassInstanceCommand.mPassInstance; + } + else if (command is DeletePassInstanceCommand) + { + var deletePassInstanceCommand = (DeletePassInstanceCommand)command; + if (passInstance == deletePassInstanceCommand.mPassInstance) + passInstance = null; + delete deletePassInstanceCommand.mPassInstance; } else if (passInstance == null) { diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index 214d58e7..43347e00 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -8272,7 +8272,12 @@ namespace IDE if (bfSystem != mBfResolveSystem) { - if (options.mBuildOptions.mBuildKind == .Test) + if (options.mBuildOptions.mBuildKind == .NotSupported) + { + OutputErrorLine("Project '{0}' is marked as 'not supported' for this platform/configuration", project.mProjectName); + success = false; + } + else if (options.mBuildOptions.mBuildKind == .Test) { if (workspaceOptions.mBuildKind == .Test) { @@ -8575,7 +8580,10 @@ namespace IDE } if (!success) + { + bfCompiler.QueueDeletePassInstance(passInstance); return null; + } for (var project in mWorkspace.mProjects) { @@ -9824,8 +9832,18 @@ namespace IDE canCompile = false; } - //TODO: canCompile = true; + switch (platform) + { + case .iOS: + canCompile = hostPlatform == .macOS; + case .Android: + canCompile = true; + case .Unknown: + canCompile = true; + default: + canCompile = platform == hostPlatform; + } if (!canCompile) { diff --git a/IDE/src/Project.bf b/IDE/src/Project.bf index 5125e3b3..ba53025c 100644 --- a/IDE/src/Project.bf +++ b/IDE/src/Project.bf @@ -818,6 +818,7 @@ namespace IDE case Test; case StaticLib; case DynamicLib; + case NotSupported; public bool IsApplicationLib {