diff --git a/src/Core/Toolchains/MonoToolchain.cs b/src/Core/Toolchains/ManagedToolchain.cs similarity index 67% rename from src/Core/Toolchains/MonoToolchain.cs rename to src/Core/Toolchains/ManagedToolchain.cs index c730c27a..ebca9e1d 100644 --- a/src/Core/Toolchains/MonoToolchain.cs +++ b/src/Core/Toolchains/ManagedToolchain.cs @@ -5,19 +5,19 @@ using System.Linq; namespace CppSharp { - public static class MonoToolchain + public static class ManagedToolchain { public static string FindMonoPath() { if (Platform.IsWindows) - return @"C:\\Program Files (x86)\\Mono"; + return @"C:\\Program Files (x86)\\Mono\bin"; else if (Platform.IsMacOS) - return "/Library/Frameworks/Mono.framework/Versions/Current"; + return "/Library/Frameworks/Mono.framework/Versions/Current/bin"; throw new NotImplementedException(); } - public static string FindCSharpCompilerPath() + public static string FindCSharpCompilerDir() { if (Platform.IsWindows) { @@ -27,10 +27,15 @@ namespace CppSharp var sdk = versions.Last(); - return Path.Combine(sdk.Directory, "csc.exe"); + return sdk.Directory; } - return Path.Combine(FindMonoPath(), "bin", "mcs.exe"); + return FindMonoPath(); + } + + public static string FindCSharpCompilerPath() + { + return Path.Combine(FindCSharpCompilerDir(), Platform.IsWindows ? "csc.exe" : "mcs"); } } } diff --git a/src/Generator/Driver.cs b/src/Generator/Driver.cs index 34f703d0..175eaef9 100644 --- a/src/Generator/Driver.cs +++ b/src/Generator/Driver.cs @@ -428,7 +428,8 @@ namespace CppSharp Diagnostics.Message("Compiling {0}...", module.LibraryName); CompilerResults compilerResults; using (var codeProvider = new CSharpCodeProvider( - new Dictionary { { "CompilerVersion", "v4.0" } })) + new Dictionary { + { "CompilerDirectoryPath", ManagedToolchain.FindCSharpCompilerDir() } })) { compilerResults = codeProvider.CompileAssemblyFromFile( compilerParameters, module.CodeFiles.ToArray());