1 #ifndef MINGW_MODULEHANDLER_H
2 #define MINGW_MODULEHANDLER_H
4 #include "../backend.h"
6 class MingwModuleHandler
9 MingwModuleHandler ( FILE* fMakefile
);
10 virtual bool CanHandleModule ( Module
& module
) = 0;
11 virtual void Process ( Module
& module
) = 0;
13 std::string
MingwModuleHandler::GetWorkingDirectory ();
14 std::string
ReplaceExtension ( std::string filename
,
15 std::string newExtension
);
16 std::string
GetModuleArchiveFilename ( Module
& module
);
17 std::string
GetImportLibraryDependencies ( Module
& module
);
18 std::string
GetSourceFilenames ( Module
& module
);
19 std::string
GetObjectFilename ( std::string sourceFilename
);
20 std::string
GetObjectFilenames ( Module
& module
);
21 void GenerateObjectFileTargets ( Module
& module
);
22 void GenerateArchiveTarget ( Module
& module
);
25 std::string
ConcatenatePaths ( std::string path1
,
27 std::string
GenerateGccDefineParametersFromVector ( std::vector
<Define
*> defines
);
28 std::string
GenerateGccDefineParameters ( Module
& module
);
29 std::string
GenerateGccIncludeParametersFromVector ( std::string basePath
,
30 std::vector
<Include
*> includes
);
31 std::string
GenerateGccIncludeParameters ( Module
& module
);
32 std::string
GenerateGccParameters ( Module
& module
);
36 class MingwKernelModuleHandler
: public MingwModuleHandler
39 MingwKernelModuleHandler ( FILE* fMakefile
);
40 virtual bool CanHandleModule ( Module
& module
);
41 virtual void Process ( Module
& module
);
43 void GenerateKernelModuleTarget ( Module
& module
);
47 class MingwStaticLibraryModuleHandler
: public MingwModuleHandler
50 MingwStaticLibraryModuleHandler ( FILE* fMakefile
);
51 virtual bool CanHandleModule ( Module
& module
);
52 virtual void Process ( Module
& module
);
54 void GenerateStaticLibraryModuleTarget ( Module
& module
);
57 #endif /* MINGW_MODULEHANDLER_H */