PmProject.dcl 4.33 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
41
42
save_project_template_file :: !String !Project !String !*Files -> (!Bool, !*Files)

read_project_template_file	:: !String !String !*Files -> (!(!Bool, !Project, !{#Char}),!*Files)

43
44
change_root_directory_of_project :: !{#Char} !{#Char} !Project -> Project

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

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

89
90
PR_UpdateModule				:: !Modulename !(ModInfo -> ModInfo) !Project -> Project
PR_UpdateModules			:: ![Modulename] !(ModInfo -> ModInfo) !Project -> Project
Diederik van Arkel's avatar
Diederik van Arkel committed
91
92
93
94
95
96
97

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

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

98
PR_GetABCLinkInfo			:: !Project -> ABCLinkInfo
Diederik van Arkel's avatar
Diederik van Arkel committed
99

100
PR_GetStaticLibsInfo		:: !Project -> StaticLibInfo
Diederik van Arkel's avatar
Diederik van Arkel committed
101
102
PR_SetStaticLibsInfo		:: !StaticLibInfo !Project -> Project

103
PR_GetTarget				:: !Project -> String
Diederik van Arkel's avatar
Diederik van Arkel committed
104
105
PR_SetTarget				:: !String !Project -> Project

106
107
PR_GetExecPath				:: !Project -> String
PR_SetExecPath				:: !String !Project -> Project
Diederik van Arkel's avatar
Diederik van Arkel committed
108
109
110
111
112
113
114
115
116
117
118
119
120
121

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)
122
123

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