definition module PmFiles // File I/O routines for the project manager. import StdPathname, StdMaybe import UtilOptions import PmCompilerOptions import PmTypes ProjectTable :: OptionsTable ProjectGlobalOptions CompilerOptionsTable :: OptionsTable CompilerOptions CodeGenOptionsTable :: OptionsTable CodeGenOptions LinkOptionsTable :: OptionsTable LinkOptions ApplicationOptionsTable :: OptionsTable ApplicationOptions //ProjectOptionsTable :: OptionsTable ProjectOptions ProjectFileVersion :== "1.4" :: ProjectGlobalOptions = { pg_built :: !Bool , pg_codegen :: CodeGenOptions , pg_application :: ApplicationOptions // , pg_projectOptions :: ProjectOptions , pg_link :: LinkOptions , pg_projectPaths :: List Pathname , pg_otherModules :: List ModInfoAndName , pg_mainModuleInfo :: ModInfoAndName , pg_staticLibInfo :: StaticLibInfo , pg_target :: String // specify used environment , pg_execpath :: String // move to ApplicationOptions , pg_static :: !ProjectStaticInfo , pg_dynamic :: !ProjectDynamicInfo // , pg_generateDLL :: !Bool // , pg_exportedDLL :: !String , pg_precompile :: !Maybe String // experiment: move to LinkOptions , pg_postlink :: !Maybe String // experiment: move to LinkOptions } :: ProjectStaticInfo = { stat_mods :: !List Pathname , stat_objs :: !List Pathname , stat_slibs :: !List Pathname , stat_dlibs :: !List Pathname , stat_paths :: !List Pathname , stat_app_path :: !Pathname , stat_prj_path :: !Pathname } :: ProjectDynamicInfo = { dyn_syms :: !List UndefSymbol , dyn_mods :: !List UndefModule , dyn_objs :: !List Pathname , dyn_slibs :: !List Pathname , dyn_dlibs :: !List Pathname , dyn_paths :: !List Pathname } EmptyStaticInfo :: ProjectStaticInfo EmptyDynamicInfo :: ProjectDynamicInfo :: UndefSymbol = { symbol_name :: !String , path :: !String } :: UndefModule = { module_name :: !String , path :: !String } EmptyUndefSymbol :: UndefSymbol EmptyUndefModule :: UndefModule