shake-language-c 0.6.3 → 0.6.4
raw patch · 3 files changed
+23/−9 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +5/−0
- shake-language-c.cabal +1/−1
- src/Development/Shake/Language/C/Target/Android.hs +17/−8
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Changelog for shake-language-c +## [v0.6.4][]++* Fix Android toolchain definition for `x86` architecture+ ## [v0.6.3][] ### Changed@@ -36,6 +40,7 @@ First released version. +[v0.6.4]: https://github.com/samplecount/shake-language-c/tree/v0.6.4 [v0.6.3]: https://github.com/samplecount/shake-language-c/tree/v0.6.3 [v0.6.2]: https://github.com/samplecount/shake-language-c/tree/v0.6.2 [v0.6.1]: https://github.com/samplecount/shake-language-c/tree/v0.6.1
shake-language-c.cabal view
@@ -13,7 +13,7 @@ -- limitations under the License. Name: shake-language-c-Version: 0.6.3+Version: 0.6.4 Synopsis: Utilities for cross-compiling with Shake Description: This library provides <http://hackage.haskell.org/package/shake Shake> utilities for cross-compiling @C@, @C++@ and @ObjC@ code for various target platforms. Currently supported target platforms are Android, iOS, Linux, MacOS X, Windows\/MinGW and Google Portable Native Client (PNaCl). Supported host platforms are MacOS X, Linux and Windows. Category: Development
src/Development/Shake/Language/C/Target/Android.hs view
@@ -48,6 +48,12 @@ Arm _ -> "arm-linux-androideabi-" arch -> unsupportedArch arch +toolPrefix_ :: Target -> String+toolPrefix_ x =+ case targetArch x of+ X86 _ -> "i686-linux-android-"+ _ -> toolChainPrefix x+ osPrefix :: String osPrefix = System.os ++ "-" ++ cpu where cpu = case System.arch of@@ -102,6 +108,13 @@ sdkVersion :: Int -> Version sdkVersion n = Version [n] [] +gccToolChain :: FilePath -> Target -> Version -> FilePath+gccToolChain ndk target version =+ ndk </> "toolchains"+ </> toolChainPrefix target ++ showVersion version+ </> "prebuilt"+ </> osPrefix+ -- | Construct an Android toolchain. toolChain :: FilePath -- ^ NDK source directory -> Version -- ^ SDK version, see `sdkVersion`@@ -111,12 +124,8 @@ toolChain "" _ (_, _) _ = error "Empty NDK directory" toolChain ndk version (GCC, tcVersion) t = set variant GCC- $ set toolDirectory (Just (ndk </> "toolchains"- </> toolChainPrefix t ++ showVersion tcVersion- </> "prebuilt"- </> osPrefix- </> "bin"))- $ set toolPrefix (toolChainPrefix t)+ $ set toolDirectory (Just (gccToolChain ndk t tcVersion </> "bin"))+ $ set toolPrefix (toolPrefix_ t) $ set compilerCommand "gcc" $ set archiverCommand "ar" $ set linkerCommand "g++"@@ -133,8 +142,8 @@ $ set archiverCommand "llvm-ar" $ set linkerCommand "clang++" $ set defaultBuildFlags (return $- let gcc_toolchain = ndk </> "toolchains/arm-linux-androideabi-4.8/prebuilt" </> osPrefix- flags = ["-target", llvmTarget t, "-gcc-toolchain", gcc_toolchain]+ let flags = [ "-target", llvmTarget t+ , "-gcc-toolchain", gccToolChain ndk t (Version [4,8] []) ] in mkDefaultBuildFlags ndk version (targetArch t) . append compilerFlags [(Nothing, flags)] . append linkerFlags flags