Safe Haskell | None |
---|---|
Language | Haskell98 |
This module provides toolchain definitions and utilities for targeting Google Pepper and Portable Native Client (PNaCl). Arguably it should be renamed appropriately. See Development.Shake.Language.C.Rules for examples of how to use a target toolchain.
- pepper :: Int -> Version
- canary :: Version
- target :: Target
- data Config
- toolChain :: FilePath -> Version -> Config -> Target -> ToolChain
- finalize :: ToolChain -> FilePath -> FilePath -> Action ()
- translate :: ToolChain -> Arch -> FilePath -> FilePath -> Action ()
- data Arch
- mk_nmf :: [(Arch, FilePath)] -> FilePath -> Action ()
Documentation
Pepper target.
LLVM_IR
(PNaCl) is the only supported target architecture at the moment.
Pepper build configuration.
This is used to select the respective library versions when linking.
:: FilePath | Pepper SDK directory ( |
-> Version | |
-> Config | Build configuration for linked libraries |
-> Target | Target, see |
-> ToolChain | Resulting toolchain |
Construct Pepper toolchain.
:: ToolChain | Toolchain, see |
-> FilePath | Bit code input executable |
-> FilePath | Finalised bit code output executable |
-> Action () |
Finalize a bit code executable.
translate :: ToolChain -> Arch -> FilePath -> FilePath -> Action () Source
Translate bit code to native code.
Pepper target architecture
:: [(Arch, FilePath)] | List of executables with the corresponding architecture |
-> FilePath | Output file |
-> Action () |
Create Native Client Manifest (nmf) file.
This file is needed for serving NaCl/PNaCl outside the Google Play store. See the native client documentation for more information on the file format.