OS判別
cmincamlっていうのを作ってるのですが、メインマシンがmacにしてコンパイルしたらうまく動きませんでした。
これは、osxに対応するしかない!ってことで、os判別して、mac osxでも動くバイナリ吐きだすぞー
ってことで、os判別だけ作りました。
以下ソースです。
object test { def main (args:Array[String]) { val os = OS(); println("os=" + os); os match { case MacOsxX86() => Emit_MacOsxX86() case MacOsxX86_64() => Emit_MacOsxX86_64() case WindowsX86() => Emit_WindowsX86() case UnknownOS() => Emit_UnknownOS() } } } sealed abstract class OS() case class MacOsxX86_64() extends OS() case class MacOsxX86() extends OS() case class WindowsX86() extends OS() case class UnknownOS() extends OS() object OS { def apply():OS = (System.getProperty("os.name"), System.getProperty("os.arch")) match { case ("Mac OS X","x86_64") => MacOsxX86_64() case ("Mac OS X","x86") => MacOsxX86_64() case _ => UnknownOS() } } object Emit_MacOsxX86_64 { def apply() { println("emit macos x86 64") } } object Emit_MacOsxX86 { def apply() { println("emit macos x86") } } object Emit_WindowsX86 { def apply() { println("emit windows x86") } } object Emit_UnknownOS { def apply() { println("emit unknown os") } }