-
Notifications
You must be signed in to change notification settings - Fork 78
/
native.gradle
97 lines (82 loc) · 3.15 KB
/
native.gradle
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
ext.isArm = hasProperty("arm")
def compilerPrefix = project.hasProperty('compilerPrefix') ? project.compilerPrefix : 'arm-frc-linux-gnueabi-'
subprojects {
plugins.withType(CPlugin).whenPluginAdded {
model {
platforms {
if (isArm) {
arm {
architecture 'arm'
operatingSystem 'linux'
}
} else {
x86 {
architecture 'x86'
}
x64 {
architecture 'x86_64'
}
}
}
toolChains {
gcc(Gcc) {
target("arm") {
cCompiler.executable = compilerPrefix + cCompiler.executable
linker.executable = compilerPrefix + linker.executable
assembler.executable = compilerPrefix + assembler.executable
cCompiler.withArguments {args ->
args << '-fPIC'
args.remove("-m32")
}
linker.withArguments { args ->
args << '-shared'
args.remove('-m32')
}
staticLibArchiver.executable = compilerPrefix + staticLibArchiver.executable
}
}
macGcc(Clang) {
target("arm") {
cCompiler.executable = compilerPrefix + "gcc"
linker.executable = compilerPrefix + "gcc"
assembler.executable = compilerPrefix + "gcc"
cCompiler.withArguments {args ->
args << '-fPIC'
args.remove("-m32")
}
linker.withArguments { args ->
args << '-shared'
args.remove('-m32')
}
staticLibArchiver.executable = compilerPrefix + "ar"
}
}
}
}
}
}
project.ext.installBinary = { binary, headers ->
def allHeaders = fileTree(dir: headers.absolutePath, include: '**/*.h').getFiles().collect { file ->
file.absolutePath
}
def prefix = "/usr/local"
if (project.hasProperty("prefix")) prefix = project.prefix
if (allHeaders.size > 0) {
exec {
executable "install"
args "-m", "0755", "-d", "$prefix/include"
}
exec {
executable "cp"
args "-r", "${headers.absolutePath}/", "$prefix/include"
}
}
exec {
executable "install"
args "-m", "0755", "-d", "$prefix/lib"
}
exec {
executable "install"
args "-m", "0755", "${binary.absolutePath}", "$prefix/lib"
}
}