forked from frida/libffi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlibffi.hsproj
125 lines (109 loc) · 4.37 KB
/
libffi.hsproj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{90405D48-781D-4A0B-8C28-994DD47C1B8B}</ProjectGuid>
<OutputType>lib</OutputType>
<AssemblyName>ffi</AssemblyName>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\HSBuild\HSBuild.C.Default.props" />
<PropertyGroup>
<VersionMajor>3</VersionMajor>
<VersionMinor>1</VersionMinor>
<VersionMicro>1</VersionMicro>
<Version>$(VersionMajor).$(VersionMinor)</Version>
<DisableConfigHeaderGeneration>true</DisableConfigHeaderGeneration>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)'=='x86'">
<FFITarget>X86_WIN32</FFITarget>
<FFIGlue>win32</FFIGlue>
<FFIAsmTool>$(MSVCToolPath)ml.exe</FFIAsmTool>
<FFIAsmFlags>/Cx /safeseh</FFIAsmFlags>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)'=='x86_64'">
<FFITarget>X86_WIN64</FFITarget>
<FFIGlue>win64</FFIGlue>
<FFIAsmTool>$(MSVCToolPath)ml64.exe</FFIAsmTool>
<FFIAsmFlags>/Cx</FFIAsmFlags>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\HSBuild\HSBuild.C.props" />
<Import Project="$(MSBuildExtensionsPath)\HSBuild\Frida.props" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>
%(AdditionalIncludeDirectories);
$(IntDir);
src/x86;
include;
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
$(FFITarget);
FFI_EXPORTS;
%(PreprocessorDefinitions);
</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)'=='Debug'">
FFI_DEBUG;
%(PreprocessorDefinitions);
</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup>
<InstallInclude>
<SubDirectory>../lib/libffi-$(Version)/include</SubDirectory>
</InstallInclude>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(OutputType)'=='lib'">
<Lib>
<AdditionalLibOptions>$(IntDir)$(FFIGlue).obj;%(AdditionalLibOptions)</AdditionalLibOptions>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(OutputType)'=='dll'">
<Link>
<AdditionalDependencies>$(IntDir)$(FFIGlue).obj;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<InstallPkgConfig Include="libffi.pc.in">
<SubstitutionExpressions>
%(SubstitutionExpressions);
s/@PACKAGE_NAME@/lib$(AssemblyName)/g;
s/@PACKAGE_VERSION@/$(Version)/g;
s/@FFI_CFLAGS@/-DFFI_BUILDING=1/g;
s/@toolexeclibdir@/${libdir}/g;
</SubstitutionExpressions>
</InstallPkgConfig>
<InFile Include="fficonfig.h.win32.in">
<Expressions>s/@VERSION@/$(Version)/g;%(Expressions)</Expressions>
<OutputFileName>fficonfig.h</OutputFileName>
</InFile>
<InFile Include="include\ffi.h.in">
<Expressions>s/@VERSION@/$(Version)/g;
s/@TARGET@/$(FFITarget)/g;
s/@HAVE_LONG_DOUBLE@/0/g;
s/@HAVE_LONG_DOUBLE_VARIANT@/0/g;
s/@FFI_EXEC_TRAMPOLINE_TABLE@/0/g;
%(Expressions)</Expressions>
<OutputFileName>ffi.h</OutputFileName>
</InFile>
<ClCompile Include="src\prep_cif.c" />
<ClCompile Include="src\types.c" />
<ClCompile Include="src\raw_api.c" />
<ClCompile Include="src\java_raw_api.c" />
<ClCompile Include="src\closures.c" />
<ClCompile Include="src\x86\ffi.c" />
<InstallInclude Include="$(IntDir)ffi.h" />
<InstallInclude Include="src\x86\ffitarget.h" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\HSBuild\HSBuild.C.targets" />
<Target Name="FFIAssemblyCompile">
<MakeDir Directories="$(IntDir)" />
<Error Condition=" '$(CC)' == ''" Text="Compiler not found. CC needed to preprocess assembler code." />
<Exec Command=""$(CC)" /EP /D$(FFITarget) /I"$(IntDir)" /Isrc\x86 /Iinclude src\x86\$(FFIGlue).S > "$(IntDir)$(FFIGlue).asm"" />
<Exec Command=""$(FFIAsmTool)" $(FFIAsmFlags) /c /Fo "$(IntDir)$(FFIGlue).obj" "$(IntDir)$(FFIGlue).asm"" />
</Target>
<PropertyGroup>
<CCompileTargets>
$(CCompileTargets);
FFIAssemblyCompile
</CCompileTargets>
</PropertyGroup>
</Project>