summaryrefslogtreecommitdiff
path: root/cli_ure
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2004-07-12 12:04:31 +0000
committerRüdiger Timm <rt@openoffice.org>2004-07-12 12:04:31 +0000
commit06dba08b7957c6aae23d082186ed5f4793058f7c (patch)
treef992f1df4b2ba9f3bb70c726ec491b938484f308 /cli_ure
parent6e1658cb08e35a2822fe0c95d0b9ba221804100c (diff)
INTEGRATION: CWS jl9 (1.6.20); FILE MERGED
2004/07/02 11:06:05 jl 1.6.20.3: #i20317# did not build with VS2003 2004/06/30 14:06:08 jl 1.6.20.2: #i29433# adapt to uno changes like multiinheritance and parameterized structs 2004/06/21 15:03:46 jl 1.6.20.1: #i20317# strongly named assemblies
Diffstat (limited to 'cli_ure')
-rw-r--r--cli_ure/source/climaker/climaker_app.cxx46
1 files changed, 42 insertions, 4 deletions
diff --git a/cli_ure/source/climaker/climaker_app.cxx b/cli_ure/source/climaker/climaker_app.cxx
index ee66e046d8f5..e576628963ac 100644
--- a/cli_ure/source/climaker/climaker_app.cxx
+++ b/cli_ure/source/climaker/climaker_app.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: climaker_app.cxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: vg $ $Date: 2003-10-06 13:05:25 $
+ * last change: $Author: rt $ $Date: 2004-07-12 13:04:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -81,6 +81,7 @@
using namespace ::std;
using namespace ::System::Reflection;
+
using namespace ::rtl;
using namespace ::osl;
using namespace ::com::sun::star;
@@ -105,6 +106,7 @@ static char const s_usingText [] =
" emitted into the output assembly file\n"
" -r, --reference reference metadata from assembly file\n"
" <assembly-file>\n"
+" -k, --keyfile keyfile needed for strong name\n"
" --assembly-version <version> sets assembly version\n"
" --assembly-description <text> sets assembly description text\n"
" --assembly-product <text> sets assembly product name\n"
@@ -136,6 +138,8 @@ static const OptionInfo s_option_infos [] = {
{ RTL_CONSTASCII_STRINGPARAM("types"), 'T', true },
{ RTL_CONSTASCII_STRINGPARAM("extra"), 'X', true },
{ RTL_CONSTASCII_STRINGPARAM("reference"), 'r', true },
+ { RTL_CONSTASCII_STRINGPARAM("keyfile"), 'k', true },
+ { RTL_CONSTASCII_STRINGPARAM("delaySign"), 'd', true },
{ RTL_CONSTASCII_STRINGPARAM("assembly-version"), '\0', true },
{ RTL_CONSTASCII_STRINGPARAM("assembly-description"), '\0', true },
{ RTL_CONSTASCII_STRINGPARAM("assembly-product"), '\0', true },
@@ -367,6 +371,10 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
get_option_info( OUSTR("reference") );
OptionInfo const * info_extra =
get_option_info( OUSTR("extra") );
+ OptionInfo const * info_keyfile =
+ get_option_info( OUSTR("keyfile") );
+ OptionInfo const * info_delaySign =
+ get_option_info( OUSTR("delaySign") );
OptionInfo const * info_version =
get_option_info( OUSTR("assembly-version") );
OptionInfo const * info_product =
@@ -385,7 +393,8 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
vector< OUString > extra_registries;
vector< OUString > extra_assemblies;
vector< OUString > explicit_types;
- OUString version, product, description, company, copyright, trademark;
+ OUString version, product, description, company, copyright, trademark,
+ keyfile, delaySign;
OUString cmd_arg;
for ( sal_uInt32 nPos = 0; nPos < nCount; )
@@ -423,7 +432,9 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
!read_argument( &product, info_product, &nPos ) &&
!read_argument( &company, info_company, &nPos ) &&
!read_argument( &copyright, info_copyright, &nPos ) &&
- !read_argument( &trademark, info_trademark, &nPos ))
+ !read_argument( &trademark, info_trademark, &nPos ) &&
+ !read_argument( &keyfile, info_keyfile, &nPos ) &&
+ !read_argument( &delaySign, info_delaySign, &nPos ))
{
oslProcessError rc = osl_getCommandArg( nPos, &cmd_arg.pData );
OSL_ASSERT( rc == osl_Process_E_None );
@@ -559,10 +570,37 @@ extern "C" int SAL_CALL main( int argc, char const * argv [] )
::System::String * output_dir = ustring_to_String( sys_output_dir );
::System::String * output_file = ustring_to_String( filename );
+ //Get the key pair for making a strong name
+ StrongNameKeyPair* kp = NULL;
+ if (keyfile.getLength() > 0)
+ {
+ ::System::String * sKeyFile = ustring_to_String(keyfile);
+ try {
+ System::IO::FileStream* fs = new System::IO::FileStream(
+ sKeyFile, System::IO::FileMode::Open);
+ kp = new StrongNameKeyPair(fs);
+ fs->Close();
+ }
+ catch (System::IO::FileNotFoundException * e)
+ {
+ throw Exception(OUSTR("Could not find the keyfile. Verify the --keyfile argument!"), 0);
+ }
+ }
+ else
+ {
+ if (g_verbose)
+ {
+ ::System::Console::Write(
+ S"> no key file specified. Cannot create strong name!\n");
+ }
+ }
// setup assembly info: xxx todo set more? e.g. avoid strong versioning
AssemblyName * assembly_name = new AssemblyName();
assembly_name->set_CodeBase( output_dir );
assembly_name->set_Name( name );
+ if (kp != NULL)
+ assembly_name->set_KeyPair(kp);
+
if (version.getLength() != 0)
{
assembly_name->set_Version(