PmEnvironment.dcl 1.32 KB
Newer Older
Diederik van Arkel's avatar
Diederik van Arkel committed
1 2 3 4
definition module PmEnvironment

import StdFile,StdString,StdMaybe
import UtilStrictLists
5
from PmTypes import ::Processor
Diederik van Arkel's avatar
Diederik van Arkel committed
6 7 8 9 10 11 12 13 14 15 16

EnvsFileName :== "IDEEnvs"

:: Target =
	{ target_name	:: !String			// environment identifier
	, target_path	:: !List String		// search paths
	, target_libs	:: !List String		// dynamic libraries
	, target_objs	:: !List String		// object files
	, target_stat	:: !List String		// static libraries
	, target_comp	:: !String			// compiler
	, target_cgen	:: !String			// code generator
17 18 19
	, target_abcopt	:: !String			// abc optimiser
	, target_bcgen	:: !String			// bytecode generator
	, target_bclink	:: !String			// bytecode linker
20
	, target_bcstrip :: !String			// bytecode stripper
Diederik van Arkel's avatar
Diederik van Arkel committed
21 22 23
	, target_link	:: !String			// static/eager linker
	, target_dynl	:: !String			// dynamic linker
	, target_vers	:: !Int				// abc version
24
	, env_64_bit_processor :: !Bool
Diederik van Arkel's avatar
Diederik van Arkel committed
25 26
	, target_redc	:: !Bool			// redirect console?
	, target_meth	:: !CompileMethod	// compile strategy
27
	, target_proc	:: !Processor		// object type
Diederik van Arkel's avatar
Diederik van Arkel committed
28 29 30 31 32 33 34
	}

:: CompileMethod
	= CompileSync
	| CompileAsync !Int
	| CompilePers
	
Diederik van Arkel's avatar
Diederik van Arkel committed
35
getEnvironments :: !String !String !*env -> *([Target],*env) | FileSystem, FileEnv env
Diederik van Arkel's avatar
Diederik van Arkel committed
36 37 38
openEnvironments	:: !String !String !*env -> *([Target],*env) | FileEnv env
saveEnvironments	:: !String ![Target] !*env -> *(Bool,*env) | FileEnv env

39
t_StdEnv :: Target