* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef MINGW_MODULEHANDLER_H
-#define MINGW_MODULEHANDLER_H
+
+#pragma once
#include "../backend.h"
#include "mingw.h"
const std::string& filename,
const std::string& prefix );
-enum SpecFileType
-{
- None,
- Spec = 1,
- PSpec = 2
-};
-
class MingwModuleHandler
{
public:
static const FileLocation* GetImportLibraryFilename (
const Module& module,
- string_list* pclean_files );
+ string_list* pclean_files,
+ bool delayimp );
static std::string GenerateGccDefineParametersFromVector ( const std::vector<Define*>& defines, std::set<std::string> &used_defs );
static std::string GenerateDefineParametersFromVector ( const std::vector<Define*>& defines, CompilerType compiler );
void OutputCopyCommand ( const FileLocation& source,
const FileLocation& destination );
+ void OutputCopyCommandSingle ( const FileLocation& source,
+ const FileLocation& destination );
protected:
virtual void GetModuleSpecificCompilationUnits ( std::vector<CompilationUnit*>& compilationUnits );
std::string GetWorkingDirectory () const;
std::string GetBasename ( const std::string& filename ) const;
std::string GetCompilationUnitDependencies ( const CompilationUnit& compilationUnit ) const;
const FileLocation* GetModuleArchiveFilename () const;
- std::string GetImportLibraryDependency ( const Module& importedModule );
+ std::string GetImportLibraryDependency ( const Module& importedModule, bool delayimp );
void GetTargets ( const Module& dependencyModule,
string_list& targets );
void GetModuleDependencies ( string_list& dependencies );
std::string GetLinkerMacro () const;
static std::string GetDebugFormat ();
void GenerateCleanObjectsAsYouGoCode () const;
- void GenerateRunRsymCode () const;
- void GenerateRunStripCode () const;
- void GenerateLinkerCommand ( const std::string& dependencies,
- const std::string& linkerParameters,
- const std::string& pefixupParameters );
- void GeneratePhonyTarget() const;
+ void GenerateLinkerCommand () const;
void GenerateBuildMapCode ( const FileLocation *mapTarget = NULL );
void GenerateRules ();
void GenerateImportLibraryTargetIfNeeded ();
void GetBootstrapCdFiles ( std::vector<FileLocation>& out ) const;
void GetNonModuleCdFiles ( std::vector<FileLocation>& out ) const;
void GetCdFiles ( std::vector<FileLocation>& out ) const;
- void OutputBootstrapfileCopyCommands ( const std::string& bootcdDirectory );
- void OutputCdfileCopyCommands ( const std::string& bootcdDirectory );
+ void OutputBootstrapfileCopyCommands ( const std::string& bootcdDirectory,
+ std::vector<FileLocation>& destinations );
+ void OutputCdfileCopyCommands ( const std::string& bootcdDirectory,
+ std::vector<FileLocation>& destinations );
};
void GenerateLiveIsoModuleTarget ();
void CreateDirectory ( const std::string& directory );
void OutputModuleCopyCommands ( std::string& livecdDirectory,
- std::string& livecdReactos );
+ std::string& livecdReactos,
+ std::vector<FileLocation>& destinations );
void OutputNonModuleCopyCommands ( std::string& livecdDirectory,
- std::string& livecdReactos );
- void OutputProfilesDirectoryCommands ( std::string& livecdDirectory );
- void OutputLoaderCommands ( std::string& livecdDirectory );
+ std::string& livecdReactos,
+ std::vector<FileLocation>& destinations );
+ void OutputProfilesDirectoryCommands ( std::string& livecdDirectory,
+ std::vector<FileLocation>& destinations );
+ void OutputLoaderCommands ( std::string& livecdDirectory,
+ std::vector<FileLocation>& destinations );
void OutputRegistryCommands ( std::string& livecdDirectory );
};
MingwElfExecutableModuleHandler ( const Module& module );
virtual void Process ();
};
-
-#endif /* MINGW_MODULEHANDLER_H */