drasil-code-0.1.9.0: A framework for code and document generation for scientific software - Code SubPackage
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.Drasil.Code.Imperative.Build.AST

Synopsis

Documentation

type CommandFragment = MakeString Source #

Used to build commands. Type synonym of a MakeString for clarity.

data BuildName Source #

Type for holding the build name.

data Ext Source #

File extentions.

Constructors

CodeExt 
OtherExt MakeString 

data BuildDependencies Source #

Builds may only require themselves or have a dependency.

Constructors

BcSource 
BcSingle BuildName 

data BuildConfig Source #

Build configuration. In the function parameter, the first parameter is the list of inputs, 2nd parameter is the output file, 3rd parameter is additional name if needed. The two Maybe BuildNames are the output file and the additional name. Also holds the build dependencies.

data RunType Source #

Run commands as they are or through an interpreter.

data Runnable Source #

Contains all the information needed to run a command.

data DocConfig Source #

Configures a document based on dependencies and commands.

data NameOpts Source #

Naming options. Includes a package separator and an option for including extensions.

Constructors

NameOpts 

Fields

nameOpts :: NameOpts Source #

Default name options. Packages separately by "/" and includes extension.

type BuildCommand = [CommandFragment] Source #

Build commands. Made up of CommandFragments.

type InterpreterCommand = String Source #

Interpreter commands are made up of a String.

type InterpreterOption = String Source #

Interpreter options are made up of a String.

asFragment :: String -> CommandFragment Source #

Translates a String into a command fragment.

osClassDefault :: String -> String -> String -> CommandFragment Source #

OS default variable (Windows). Calls mkWindowsVar.

buildAll :: ([CommandFragment] -> CommandFragment -> [BuildCommand]) -> BuildName -> Maybe BuildConfig Source #

Constructor for a build configuration. No additional name included.

buildAllAdditionalName :: ([CommandFragment] -> CommandFragment -> CommandFragment -> [BuildCommand]) -> BuildName -> BuildName -> Maybe BuildConfig Source #

Constructor for a build configuration with an additional name included.

buildSingle :: ([CommandFragment] -> CommandFragment -> [BuildCommand]) -> BuildName -> BuildName -> Maybe BuildConfig Source #

Constructor for a build configuration. No additional name included, but takes in a single dependency.

nativeBinary :: Maybe Runnable Source #

Default runnable information.

executable :: BuildName Source #

Default target extension is ".exe".

sharedLibrary :: BuildName Source #

Default library has the extentions ".dll, .dylib, .so".

interp :: BuildName -> NameOpts -> InterpreterCommand -> [InterpreterOption] -> Maybe Runnable Source #

Constructor for a runnable command that goes through an interpreter.

interpMM :: InterpreterCommand -> Maybe Runnable Source #

Constructs a runnable command that goes through an interpreter (for main module file).

mainModule :: BuildName Source #

Main module.

mainModuleFile :: BuildName Source #

Main module with a default code extension.

inCodePackage :: BuildName -> BuildName Source #

Module for an in-code package.

withExt :: BuildName -> String -> BuildName Source #

Adds an extension to a BuildName.

cCompiler :: CommandFragment Source #

C compiler command fragment.

cppCompiler :: CommandFragment Source #

C++ compiler command fragment.

doxygenDocConfig :: FilePath -> DocConfig Source #

Helper for configuring doxygen documentation.