build: refactor platform checks

also improve verbosity when downloading dependencies fails
This commit is contained in:
Svyatoslav Scherbina
2016-11-11 16:36:46 +07:00
committed by SvyatoslavScherbina
parent 720947facb
commit bee2a76008
4 changed files with 40 additions and 16 deletions
+1 -1
View File
@@ -92,7 +92,7 @@ String[] linkerOpts1() {
'-lLLVMCore',
'-lLLVMSupport']
List<String> ldflags = new ArrayList<>()
if (System.properties['os.name'].startsWith("Linux"))
if (isLinux())
ldflags.addAll(["-L$llvmDir/lib",
"-Wl,-Bstatic", "-Wl,--whole-archive"]
+ libs
+1 -1
View File
@@ -83,7 +83,7 @@ abstract class KonanTest extends DefaultTask {
}
private linux() {
return System.properties['os.name'].startsWith('Linux')
return project.isLinux()
}
protected String linkDl() {
+31
View File
@@ -6,6 +6,8 @@ if (new File("$project.rootDir/local.properties").exists()) {
props.each {prop -> project.ext.set(prop.key, prop.value)}
}
convention.plugins.platformInfo = new PlatformInfo()
allprojects {
if (path != ":dependencies") {
evaluationDependsOn(":dependencies")
@@ -34,4 +36,33 @@ allprojects {
}
}
}
}
class PlatformInfo {
private final String osName = System.properties['os.name']
private final String osArch = System.properties['os.arch']
boolean isMac() {
return osName == 'Mac OS X'
}
boolean isLinux() {
return osName == 'Linux'
}
boolean isAmd64() {
return osArch in ['x86_64', 'amd64']
}
String getGnuTriplet() {
if (isLinux() && isAmd64()) {
return "x86_64-unknown-linux-gnu"
} else {
throw unsupportedPlatformException()
}
}
Throwable unsupportedPlatformException() {
return new Error("unsupported platform: $osName/$osArch")
}
}
+7 -14
View File
@@ -1,20 +1,12 @@
abstract class NativeDep extends DefaultTask {
private static String getCurrentHostTarget() {
String osName = System.properties['os.name']
String osArch = System.properties['os.arch']
// TODO: implement more generally
if (osArch in ['x86_64', 'amd64']) {
if (osName == 'Mac OS X') {
return 'darwin-macos'
} else if (osName == 'Linux') {
return 'linux-x86-64'
} else {
throw new Error("Unsupported OS: $osName")
}
private String getCurrentHostTarget() {
if (project.isMac() && project.isAmd64()) {
return 'darwin-macos'
} else if (project.isLinux() && project.isAmd64()) {
return 'linux-x86-64'
} else {
throw new Error("Unsupported arch: $osArch")
throw project.unsupportedPlatformException()
}
}
@@ -67,6 +59,7 @@ class TgzNativeDep extends NativeDep {
args "xf", archived
}
} catch (Throwable e) {
e.printStackTrace()
project.delete(outputDir)
throw e
}