PmProject.dcl 4.15 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
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
	);
25

Diederik van Arkel's avatar
Diederik van Arkel committed
26
27
28
29
30
ReadProjectFile	::
	!String			// path to projectfile
	!String			// the application directory
	!*Files			// the filesystem environment
	->
31
	(!(!Project		// the project
Diederik van Arkel's avatar
Diederik van Arkel committed
32
33
34
35
36
37
38
	, !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
	)

39
40
change_root_directory_of_project :: !{#Char} !{#Char} !Project -> Project

Diederik van Arkel's avatar
Diederik van Arkel committed
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
64
//PR_GetProcessor				:: !Project -> Processor
Diederik van Arkel's avatar
Diederik van Arkel committed
65
66
67
PR_GetApplicationOptions	:: !Project -> ApplicationOptions
PR_GetPaths					:: !Project -> List String
PR_GetRootModuleName		:: !Project -> String
68
69
PR_GetRootPathName			:: !Project -> (!String,!Project)
PR_GetRootModuleDir			:: !Project -> String
70
71
PR_GetRootDir :: !Project -> String
PR_GetRelativeRootDir :: !Project -> String
Diederik van Arkel's avatar
Diederik van Arkel committed
72
73
74
75
76
77
78
79
80
81
82
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

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

85
86
PR_UpdateModule				:: !Modulename !(ModInfo -> ModInfo) !Project -> Project
PR_UpdateModules			:: ![Modulename] !(ModInfo -> ModInfo) !Project -> Project
Diederik van Arkel's avatar
Diederik van Arkel committed
87
88
89
90
91
92
93

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

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

94
PR_GetABCLinkInfo			:: !Project -> ABCLinkInfo
Diederik van Arkel's avatar
Diederik van Arkel committed
95

96
PR_GetStaticLibsInfo		:: !Project -> StaticLibInfo
Diederik van Arkel's avatar
Diederik van Arkel committed
97
98
PR_SetStaticLibsInfo		:: !StaticLibInfo !Project -> Project

99
PR_GetTarget				:: !Project -> String
Diederik van Arkel's avatar
Diederik van Arkel committed
100
101
PR_SetTarget				:: !String !Project -> Project

102
103
PR_GetExecPath				:: !Project -> String
PR_SetExecPath				:: !String !Project -> Project
Diederik van Arkel's avatar
Diederik van Arkel committed
104
105
106
107
108
109
110
111
112
113
114
115
116
117

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)
118
119

make_project_dir :: !Int !{#Char} -> {#Char}