cd04ea3aa7c7a0c263ad6b434fe97a2fa2b10341
9 WineResource::WineResource ( const Project
& project
,
11 : project ( project
),
16 WineResource::~WineResource ()
21 WineResource::IsSpecFile ( const File
& file
)
23 string extension
= GetExtension ( file
.name
);
24 if ( extension
== ".spec" || extension
== ".SPEC" )
30 WineResource::IsWineModule ( const Module
& module
)
32 const vector
<File
*>& files
= module
.non_if_data
.files
;
33 for ( size_t i
= 0; i
< files
.size (); i
++ )
35 if ( IsSpecFile ( *files
[i
] ) )
42 WineResource::IsResourceFile ( const File
& file
)
44 string extension
= GetExtension ( file
.name
);
45 if ( extension
== ".rc" || extension
== ".RC" )
51 WineResource::GetResourceFilename ( const Module
& module
)
53 const vector
<File
*>& files
= module
.non_if_data
.files
;
54 for ( size_t i
= 0; i
< files
.size (); i
++ )
56 if ( IsResourceFile ( *files
[i
] ) )
57 return files
[i
]->name
;
63 WineResource::UnpackResources ( bool verbose
)
65 for ( size_t i
= 0; i
< project
.modules
.size (); i
++ )
67 if ( IsWineModule ( *project
.modules
[i
] ) )
69 UnpackResourcesInModule ( *project
.modules
[i
],
76 WineResource::UnpackResourcesInModule ( Module
& module
,
79 string resourceFilename
= GetResourceFilename ( module
);
80 if ( resourceFilename
.length () == 0 )
85 printf ( "\nUnpacking resources for %s",
86 module
.name
.c_str () );
89 string outputDirectory
= GetDirectory ( module
.GetPath () );
90 string parameters
= ssprintf ( "-b %s -f -x %s",
91 NormalizeFilename ( outputDirectory
).c_str (),
92 NormalizeFilename ( resourceFilename
).c_str () );
93 string command
= bin2res
+ " " + parameters
;
94 int exitcode
= system ( command
.c_str () );
97 throw InvocationFailedException ( command
,