2017-03-09 42 views

回答

1

一般你應該改變你的想法。在SBT中,所有庫都使用普通的scala。

<profiles> 
    <profile> 
     <id>lwjgl-natives-linux></id> 
     <activation> 
      <os><family>unix</family></os> 
     </activation> 
     <properties> 
      <lwjgl.natives>natives-linux</lwjgl.natives> 
     </properties> 
    </profile> 
    <profile> 
     <id>lwjgl-natives-macos></id> 
     <activation> 
      <os><family>mac</family></os> 
     </activation> 
     <properties> 
      <lwjgl.natives>natives-macos</lwjgl.natives> 
     </properties> 
    </profile> 
    <profile> 
     <id>lwjgl-natives-windows></id> 
     <activation> 
      <os><family>windows</family></os> 
     </activation> 
     <properties> 
      <lwjgl.natives>natives-windows</lwjgl.natives> 
     </properties> 
    </profile> 
</profiles> 

根據你的例子,定義變量。 (見How do I programmatically determine operating system in Java?):

val lwjglNatives = sys.props("os.name").toLowerCase match { 
    case os if os.contains("uni") => 
      "natives-linux" 
    case os if os.contains("mac") | os.contains("darwin") => 
     "natives-macos" 
    case os if os.contains("win") => 
     "natives-windows"  
} 

然後你可以使用lwjglNatives取決於操作系統。