PmProject.dcl 3.95 KB
Newer Older
Diederik van Arkel's avatar
Diederik van Arkel committed
1 2 3
definition module PmProject

import PmTypes
4
from UtilStrictLists import :: List
Diederik van Arkel's avatar
Diederik van Arkel committed
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
import PmFiles
import StdMaybe, StdFile


DclMod :== True
IclMod :== False

:: Def_and_Imp		:== Bool

:: Project

SaveProjectFile	::
	!String			// path to projectfile
	!Project		// the project
	!String			// the application directory
	!*Files			// the filesystem environment
	->
	( !Bool			// success
	, !*Files		// returned filesystem
	);
ReadProjectFile	::
	!String			// path to projectfile
	!String			// the application directory
	!*Files			// the filesystem environment
	->
	((!Project		// the project
	, !Bool			// success: true if successful except when failed to close
					// project file. Then success is true but errmsg (next entry)
					// is nonempty.
	, !{#Char}		// errmsg: reports the encountered error if any
	),!*Files		// returned filesystem
	)

getDynamicInfo	:: !Project -> (ProjectDynamicInfo,Project)
setDynamicInfo	:: !.ProjectDynamicInfo !.Project -> .Project

//--

PR_InitProject	:: Project
PR_ProjectSet	:: !Project -> Bool
PR_NewProject	:: !String !EditWdOptions !CompilerOptions !CodeGenOptions !ApplicationOptions
					!(List String) !LinkOptions -> Project

PR_SetBuilt					:: !(List Modulename) !.Project -> .Project
PR_ClearDependencies		:: !Project -> Project
PR_SetRoot					:: !String !EditWdOptions !CompilerOptions !Project -> Project
PR_SetCompiled				:: !Modulename !Project -> Project
PR_SetCodeGenerated			:: !Modulename !Project -> Project
PR_SetSysCodeGenerated		:: !Project -> Project
PR_SetLinked				:: !Project -> Project
PR_SetSaved					:: !Project -> Project
PR_SetCodeGenOptions		:: !CodeGenOptions !Project -> Project
PR_SetApplicationOptions	:: !ApplicationOptions !Project -> Project
PR_SetPaths					:: !Bool !(List String) !(List String) !Project -> Project

PR_GetCodeGenOptions		:: !Project -> CodeGenOptions
61
//PR_GetProcessor				:: !Project -> Processor
Diederik van Arkel's avatar
Diederik van Arkel committed
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
PR_GetApplicationOptions	:: !Project -> ApplicationOptions
PR_GetPaths					:: !Project -> List String
PR_GetRootModuleName		:: !Project -> String
PR_GetRootPathName			:: !Project -> (String,Project)
PR_GetRootPath				:: !Project -> String
PR_GetModulenames			:: !Bool !Def_and_Imp !Project -> (List String,Project)
PR_GetOpenModulenames		:: !Project -> List String
PR_GetModuleStuff			:: !Project -> List (Modulename,String,Modulename,String)

PR_Built					:: !Project -> Bool
PR_SrcUpToDate				:: !Modulename !Project -> Bool
PR_ABCUpToDate				:: !Modulename !Project -> Bool
PR_SysUptoDate				:: !Project -> Bool
PR_ExecUpToDate				:: !Project -> Bool
PR_Saved					:: !Project -> Bool

78
PR_GetModuleInfo			:: !Modulename !Project -> Maybe ModInfo
Diederik van Arkel's avatar
Diederik van Arkel committed
79

80 81
PR_UpdateModule				:: !Modulename !(ModInfo -> ModInfo) !Project -> Project
PR_UpdateModules			:: ![Modulename] !(ModInfo -> ModInfo) !Project -> Project
Diederik van Arkel's avatar
Diederik van Arkel committed
82 83 84 85 86 87 88

PR_SetLinkOptions			:: !Project !LinkOptions -> Project
PR_GetLinkOptions			:: !Project -> LinkOptions

PR_AddABCInfo				:: !String !(List LinkObjFileName) !(List LinkLibraryName)
								!CompilerOptions !EditWdOptions !EditWdOptions !Project -> Project

89
PR_GetABCLinkInfo			:: !Project -> ABCLinkInfo
Diederik van Arkel's avatar
Diederik van Arkel committed
90

91
PR_GetStaticLibsInfo		:: !Project -> StaticLibInfo
Diederik van Arkel's avatar
Diederik van Arkel committed
92 93
PR_SetStaticLibsInfo		:: !StaticLibInfo !Project -> Project

94
PR_GetTarget				:: !Project -> String
Diederik van Arkel's avatar
Diederik van Arkel committed
95 96
PR_SetTarget				:: !String !Project -> Project

97 98
PR_GetExecPath				:: !Project -> String
PR_SetExecPath				:: !String !Project -> Project
Diederik van Arkel's avatar
Diederik van Arkel committed
99 100 101 102 103 104 105 106 107 108 109 110 111 112

SL_Add		:: !String !StaticLibInfo -> StaticLibInfo
SL_Rem		:: ![String] !String !String !StaticLibInfo -> StaticLibInfo
SL_Libs		:: !StaticLibInfo -> List String
SL_Dcls		:: !StaticLibInfo -> List String
SL_Deps		:: !StaticLibInfo -> List String
SL_SetLibs	:: !(List String) !StaticLibInfo -> StaticLibInfo
SL_SetDcls	:: !(List String) !StaticLibInfo -> StaticLibInfo
SL_SetDeps	:: !(List String) !StaticLibInfo -> StaticLibInfo

PR_SetPrecompile	:: !(Maybe String) !Project -> Project
PR_GetPrecompile	:: !Project -> (!Maybe String, !Project)
PR_SetPostlink		:: !(Maybe String) !Project -> Project
PR_GetPostlink		:: !Project -> (!Maybe String, !Project)