1
- <?xml version =" 1.0" encoding =" utf-8" ?>
2
- <Project DefaultTargets =" Build" ToolsVersion =" 4.0" xmlns =" http://schemas.microsoft.com/developer/msbuild/2003" >
1
+ <Project Sdk =" Microsoft.Build.NoTargets/1.0.110" >
3
2
<PropertyGroup >
4
- <Configuration Condition =" '$(Configuration)' == '' " >Debug</Configuration >
5
- <Platform Condition =" '$(Platform)' == '' " >AnyCPU</Platform >
6
- <ItemType >GenericProject</ItemType >
7
- <ProductVersion >8.0.30703</ProductVersion >
8
- <SchemaVersion >2.0</SchemaVersion >
9
- <ProjectGuid >{BB0AB9F7-0979-41A7-B7A9-877260655F94}</ProjectGuid >
10
- </PropertyGroup >
11
- <Import Project =" ..\..\Directory.Build.props" />
12
- <PropertyGroup Condition =" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " >
13
- <DebugSymbols >true</DebugSymbols >
3
+ <TargetFramework >net472</TargetFramework >
14
4
<OutputPath >$(ToolOutputFullPath)</OutputPath >
15
5
<JNIEnvGenPath >$(BuildToolOutputFullPath)</JNIEnvGenPath >
16
6
<OutputName >java-interop</OutputName >
17
- <CompileTarget >SharedLibrary</CompileTarget >
18
7
<DefineSymbols >DEBUG JI_DLL_EXPORT MONODEVELOP MONO_DLL_EXPORT</DefineSymbols >
19
8
<SourceDirectory >.</SourceDirectory >
20
- </PropertyGroup >
21
- <PropertyGroup Condition =" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " >
22
- <OutputPath >$(ToolOutputFullPath)</OutputPath >
23
- <OutputName >java-interop</OutputName >
24
- <JNIEnvGenPath >$(BuildToolOutputFullPath)</JNIEnvGenPath >
25
- <CompileTarget >SharedLibrary</CompileTarget >
26
9
<OptimizationLevel >3</OptimizationLevel >
27
- <DefineSymbols >JI_DLL_EXPORT MONODEVELOP MONO_DLL_EXPORT</DefineSymbols >
28
- <SourceDirectory >.</SourceDirectory >
29
10
</PropertyGroup >
11
+
30
12
<ItemGroup >
31
13
<ClInclude Include =" java-interop.h" />
32
14
<ClInclude Include =" java-interop-gc-bridge.h" />
33
15
<ClInclude Include =" java-interop-mono.h" />
34
16
</ItemGroup >
17
+
35
18
<PropertyGroup >
36
19
<_MonoIncludePath >@(MonoIncludePath->'%(FullPath)')</_MonoIncludePath >
37
20
<_JdkIncludePath >@(JdkIncludePath->'%(FullPath)')</_JdkIncludePath >
38
21
</PropertyGroup >
22
+
39
23
<ItemDefinitionGroup >
40
24
<ClCompile >
41
25
<PreprocessorDefinitions >$([MSBuild]::Unescape($(DefineSymbols.Replace(' ', ';'))))</PreprocessorDefinitions >
42
26
<AdditionalIncludeDirectories >$([MSBuild]::Unescape($(_MonoIncludePath)));$([MSBuild]::Unescape($(_JdkIncludePath)))</AdditionalIncludeDirectories >
43
27
</ClCompile >
44
28
</ItemDefinitionGroup >
29
+
45
30
<ItemGroup >
46
31
<ClCompile Include =" jni.c" />
47
32
<ClCompile Include =" java-interop.cc" />
50
35
<ClCompile Include =" java-interop-mono.cc" />
51
36
<ClCompile Include =" java-interop-gc-bridge-mono.cc" />
52
37
</ItemGroup >
53
- <PropertyGroup >
54
- <BuildDependsOn >
55
- BuildJni_c;
56
- BuildMac;
57
- BuildUnixLibraries;
58
- $(BuildDependsOn)
59
- </BuildDependsOn >
60
- </PropertyGroup >
61
- <Import Project =" java-interop.targets" />
38
+
62
39
<ItemGroup >
63
- <ProjectReference Include =" ..\..\build-tools\jnienv-gen\jnienv-gen.csproj" >
64
- <Project >{6410DA0F-5E14-4FC0-9AEE-F4C542C96C7A}</Project >
65
- <Name >jnienv-gen</Name >
66
- <ReferenceOutputAssembly >False</ReferenceOutputAssembly >
67
- </ProjectReference >
40
+ <ProjectReference Include =" ..\..\build-tools\jnienv-gen\jnienv-gen.csproj" ReferenceOutputAssembly =" false" />
68
41
</ItemGroup >
69
- </Project >
42
+
43
+ <Target Name =" BuildJni_c"
44
+ Inputs =" $(JNIEnvGenPath)\jnienv-gen.exe"
45
+ Outputs =" jni.c" >
46
+ <MakeDir Directories =" $(OutputPath)" />
47
+ <Exec Command =" $(Runtime) " $(JNIEnvGenPath)\jnienv-gen.exe" jni.g.cs jni.c" />
48
+ </Target >
49
+
50
+ <PropertyGroup >
51
+ <_MacLib >$(OutputPath)\lib$(OutputName).dylib</_MacLib >
52
+ </PropertyGroup >
53
+
54
+ <Target Name =" _CompileObjectFiles"
55
+ Condition =" '$(OS)' != 'Windows_NT' "
56
+ DependsOnTargets =" BuildJni_c"
57
+ Inputs =" @(ClCompile)"
58
+ Outputs =" obj\$(Configuration)\%(Filename).o" >
59
+ <MakeDir Directories =" obj\$(Configuration)" />
60
+ <ItemGroup >
61
+ <_Defines Include =" %(ClCompile.PreprocessorDefinitions)" />
62
+ <_Includes Include =" %(ClCompile.AdditionalIncludeDirectories)" />
63
+ </ItemGroup >
64
+ <PropertyGroup >
65
+ <_Arch Condition =" Exists ('/Library/Frameworks/') " >-m64</_Arch >
66
+ <_Cc Condition =" '%(ClCompile.Extension)' == '.c' " >gcc -std=c99 -fPIC</_Cc >
67
+ <_Cc Condition =" '%(ClCompile.Extension)' == '.cc' " >g++ -std=c++11 -fPIC</_Cc >
68
+ <_Def >@(_Defines->'-D%(Identity)', ' ')</_Def >
69
+ <_Inc >@(_Includes->'-I "%(Identity)"', ' ')</_Inc >
70
+ </PropertyGroup >
71
+ <Exec
72
+ Command =" $(_Cc) -c -g $(_Arch) -o " obj\$(Configuration)\%(ClCompile.Filename).o" $(_Def) $(_Inc) " %(Identity)" "
73
+ />
74
+ </Target >
75
+
76
+ <Target Name =" BuildMac" AfterTargets =" Build"
77
+ Condition =" '$(OS)' != 'Windows_NT' And Exists ('/Library/Frameworks/')"
78
+ DependsOnTargets =" _CompileObjectFiles"
79
+ Inputs =" @(ClCompile)"
80
+ Outputs =" $(_MacLib)" >
81
+ <PropertyGroup >
82
+ <_LinkFlags >-fvisibility=hidden -Wl,-undefined -Wl,suppress -Wl,-flat_namespace</_LinkFlags >
83
+ <_Libs >$(MonoLibs)</_Libs >
84
+ <_Files >@(ClCompile->'obj\$(Configuration)\%(Filename).o', ' ')</_Files >
85
+ </PropertyGroup >
86
+ <Exec Command =" gcc -g -shared -m64 -std=c99 -fPIC -o " $(_MacLib)" $(_LinkFlags) $(_Libs) $(_Files)" />
87
+ <!-- Mono 4.4.0 (mono-4.4.0-branch/a3fabf1) has an incorrect shared library name. Fix it -->
88
+ <Exec Command =" install_name_tool -change /private/tmp/source-mono-4.4.0/bockbuild-mono-4.4.0-branch/profiles/mono-mac-xamarin/package-root/lib/libmonosgen-2.0.1.dylib /Library/Frameworks/Mono.framework/Libraries/libmonosgen-2.0.1.dylib " $(_MacLib)" " />
89
+ </Target >
90
+
91
+ <Target Name =" BuildUnixLibraries" AfterTargets =" Build"
92
+ Condition =" '$(OS)' != 'Windows_NT' And !Exists ('/Library/Frameworks/')"
93
+ DependsOnTargets =" _CompileObjectFiles"
94
+ Inputs =" @(ClCompile)"
95
+ Outputs =" $(OutputPath)\lib$(OutputName).so" >
96
+ <PropertyGroup >
97
+ <_FixedDefines >$(DefineSymbols.Split(' '))</_FixedDefines >
98
+ </PropertyGroup >
99
+ <ItemGroup >
100
+ <_Defines Include =" $(_FixedDefines)" />
101
+ </ItemGroup >
102
+ <PropertyGroup >
103
+ <_LinkFlags >-fvisibility=hidden -Wl,-undefined -Wl,suppress -Wl,-flat_namespace -fPIC</_LinkFlags >
104
+ <_Libs >$(MonoLibs)</_Libs >
105
+ <_Files >@(ClCompile->'obj\$(Configuration)\%(Filename).o', ' ')</_Files >
106
+ </PropertyGroup >
107
+ <Exec Command =" g++ -g -shared -o " $(OutputPath)\lib$(OutputName).so" $(_LinkFlags) $(_Libs) $(_Files)" />
108
+ </Target >
109
+
110
+ </Project >
0 commit comments