From 79c9ea3818334b39eda6996cf488143a5dc586d4 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Fri, 17 Aug 2012 10:41:35 +0300 Subject: Fix build breaker in cli_ure: Avoid C# 4.0 when using MSVC 2008 Change-Id: Ieb82b73150330ddbde890f36b88637bf5dfddf51 --- oowintool | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'oowintool') diff --git a/oowintool b/oowintool index 9e40a78102f7..e418ae410037 100755 --- a/oowintool +++ b/oowintool @@ -212,11 +212,21 @@ sub print_msvs_productdir() sub print_csc_compiler_dir() { - my $csc_exe = - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v4/Client/InstallPath") || - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5/InstallPath") || - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NETFramework/InstallRoot") . "v2.0.50727"; - print cygpath ($csc_exe, 'w', $output_format); + my $csc_exe; + my $ver = find_msvc(); + if ($ver->{'ver'} == "9.0") { + # We need to compile C# with the 3.5 or 2.0 compiler in order + # for the assemblies to be loadable by managed C++ code + # compiled with MSVC 2008. + $csc_exe = + reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5/InstallPath") || + reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NETFramework/InstallRoot") . "v2.0.50727"; + } else { + # Is it enough to look for the 4.0 compiler? + $csc_exe = + reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v4/Client/InstallPath"); + } + print cygpath ($csc_exe, 'w', $output_format); } sub print_dotnetsdk_dir() -- cgit