mirror of
https://github.com/enso-org/enso.git
synced 2024-11-25 21:25:20 +03:00
49e78adb88
* Build distribution for amd64 and aarch64 MacOS Possible after the GraalVM upgrade. * Another attempt at building on MacOS M1 * One less hardcoded architecture * Eliminate one more hardcoded architecture * add more debug info * nit
50 lines
1.4 KiB
Scala
50 lines
1.4 KiB
Scala
object Platform {
|
|
|
|
/** Returns true if the build system is running on Windows.
|
|
*/
|
|
def isWindows: Boolean =
|
|
sys.props("os.name").toLowerCase().contains("windows")
|
|
|
|
/** Returns true if the build system is running on Linux.
|
|
*/
|
|
def isLinux: Boolean =
|
|
sys.props("os.name").toLowerCase().contains("linux")
|
|
|
|
/** Returns true if the build system is running on macOS.
|
|
*/
|
|
def isMacOS: Boolean =
|
|
sys.props("os.name").toLowerCase().contains("mac")
|
|
|
|
def isAmd64: Boolean = {
|
|
val arch = sys.props("os.arch").toLowerCase()
|
|
arch.contains("amd64") || arch.contains("x86_64")
|
|
}
|
|
|
|
def isArm64: Boolean =
|
|
sys.props("os.arch").toLowerCase().contains("aarch64")
|
|
|
|
/** Returns the dynamic library file name on the current platform.
|
|
*
|
|
* @param libraryName the library name
|
|
* @return the file name of provided library on the current platform
|
|
*/
|
|
def dynamicLibraryFileName(libraryName: String): String = {
|
|
if (isMacOS) s"lib$libraryName.dylib"
|
|
else if (isWindows) s"$libraryName.dll"
|
|
else if (isLinux) s"lib$libraryName.so"
|
|
else {
|
|
throw new RuntimeException(s"Unknown platform [${sys.props("os.name")}].")
|
|
}
|
|
}
|
|
|
|
/** Returns the executable file name on the current platform.
|
|
*
|
|
* @param name the executable name
|
|
* @return the file name of provided executable on the current platform
|
|
*/
|
|
def executableFileName(name: String): String = {
|
|
if (isWindows) s".\\$name.bat" else name
|
|
}
|
|
|
|
}
|