Safe Haskell | None |
---|---|
Language | Haskell98 |
Development.Shake.Language.C.Target.NaCl
Description
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.
Arguments
:: FilePath | Pepper SDK directory ( |
-> Version | |
-> Config | Build configuration for linked libraries |
-> Target | Target, see |
-> ToolChain | Resulting toolchain |
Construct Pepper toolchain.
Arguments
:: 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
Arguments
:: [(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.