Set, use and create makefiles using ain installation DOMAIN and not a director

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@31688 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Riccardo Mottola 2010-11-28 21:38:53 +00:00
parent 7c094590a7
commit eb2972f8fb
13 changed files with 78 additions and 109 deletions

View file

@ -1,3 +1,17 @@
2010-11-28 Riccardo MOttola
* Framework/PCMakefileFactory.m
* Framework/PCProjectBuilder.m
* Framework/PCProjectInspector.m
* Framework/English.lproj/BuildAttributes.gorm
* Modules/Projects/Application/PCAppProject.m
* Modules/Projects/ResourceSet/PCResourceSetProject.m
* Modules/Projects/Bundle/PCBundleProject.m
* Modules/Projects/Tool/PCToolProject.m
* Headers/ProjectCenter/PCDefines.h
* Headers/ProjectCenter/PCProjectInspector.h:
Set, use and create makefiles using ain installation DOMAIN and not a directory.
2010-11-24 German Arias <german@xelalug.org> 2010-11-24 German Arias <german@xelalug.org>
* Headers/ProjectCenter/PCProjectInspector.h: * Headers/ProjectCenter/PCProjectInspector.h:
* Framework/PCProjectInspector.m: * Framework/PCProjectInspector.m:

View file

@ -32,9 +32,9 @@
objcOptField, objcOptField,
cOptField, cOptField,
ldOptField, ldOptField,
installPathField,
searchOrderScroll, searchOrderScroll,
searchOrderColumn searchOrderColumn,
installDomainPopup
); );
Super = NSObject; Super = NSObject;
}; };

View file

@ -1,7 +1,7 @@
/* /*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2002-2004 Free Software Foundation Copyright (C) 2002-2010 Free Software Foundation
Authors: Philippe C.D. Robert Authors: Philippe C.D. Robert
Serg Stoyan Serg Stoyan
@ -67,7 +67,7 @@ static PCMakefileFactory *_factory = nil;
NSString *buildDir = [prefs stringForKey:RootBuildDirectory]; NSString *buildDir = [prefs stringForKey:RootBuildDirectory];
NSString *prName = [project projectName]; NSString *prName = [project projectName];
NSString *buildName = [prName stringByAppendingPathExtension: @"build"]; NSString *buildName = [prName stringByAppendingPathExtension: @"build"];
NSString *instDir = [[project projectDict] objectForKey:PCInstallDir]; NSString *instDomain = [[project projectDict] objectForKey:PCInstallDomain];
NSAssert(prName, @"No project name given!"); NSAssert(prName, @"No project name given!");
@ -90,18 +90,18 @@ static PCMakefileFactory *_factory = nil;
[mfile appendString: @" before compiling!)\n"]; [mfile appendString: @" before compiling!)\n"];
[mfile appendString: @"endif\n"]; [mfile appendString: @"endif\n"];
if ([instDir isEqualToString: @"LOCAL"] if ([instDomain isEqualToString: @"LOCAL"]
|| [instDir isEqualToString: @"SYSTEM"] || [instDomain isEqualToString: @"SYSTEM"]
|| [instDir isEqualToString: @"USER"] || [instDomain isEqualToString: @"USER"]
|| [instDir isEqualToString: @"NETWORK"]) || [instDomain isEqualToString: @"NETWORK"])
{ {
[mfile appendString: [mfile appendString:
[NSString stringWithFormat: @"\nGNUSTEP_INSTALLATION_DOMAIN = %@\n", [NSString stringWithFormat: @"\nGNUSTEP_INSTALLATION_DOMAIN = %@\n",
instDir]]; instDomain]];
} }
/* If GNUSTEP_INSTALLATION_DOMAIN was not set explicitly by the /* If GNUSTEP_INSTALLATION_DOMAIN was not set explicitly by the
* user, it shoudl not be specified; gnustep-make will use the * user, it should not be specified; gnustep-make will use the
* default - normally, but not necessarily, LOCAL. * default - normally, but not necessarily, LOCAL.
*/ */

View file

@ -1,10 +1,11 @@
/* /*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2000-2004 Free Software Foundation Copyright (C) 2000-2010 Free Software Foundation
Authors: Philippe C.D. Robert Authors: Philippe C.D. Robert
Serg Stoyan Serg Stoyan
Riccardo Mottola
This file is part of GNUstep. This file is part of GNUstep.
@ -322,17 +323,16 @@
- (NSArray *)buildArguments - (NSArray *)buildArguments
{ {
NSDictionary *projectDict = [project projectDict]; NSDictionary *projectDict = [project projectDict];
NSString *instDir = [projectDict objectForKey:PCInstallDir]; NSString *instDomain = [projectDict objectForKey:PCInstallDomain];
NSMutableArray *args = [NSMutableArray new]; NSMutableArray *args = [NSMutableArray new];
if (![instDir isEqualToString:@"LOCAL"] && if (![instDomain isEqualToString:@"LOCAL"] &&
![instDir isEqualToString:@"SYSTEM"] && ![instDomain isEqualToString:@"SYSTEM"] &&
![instDir isEqualToString:@"USER"] && ![instDomain isEqualToString:@"USER"] &&
![instDir isEqualToString:@"NETWORK"] && ![instDomain isEqualToString:@"NETWORK"] &&
![instDir isEqualToString:@""] && ![instDomain isEqualToString:@""])
([instDir isAbsolutePath] || [instDir characterAtIndex:0] == '$'))
{ {
[args addObject:[NSString stringWithFormat:@"DESTDIR=%@", instDir]]; [args addObject:[NSString stringWithFormat:@"INSTDOMAIN=%@", instDomain]];
} }
[args addObjectsFromArray:[projectDict objectForKey:PCBuilderArguments]]; [args addObjectsFromArray:[projectDict objectForKey:PCBuilderArguments]];

View file

@ -1,10 +1,11 @@
/* /*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2000-2009 Free Software Foundation Copyright (C) 2000-2010 Free Software Foundation
Authors: Philippe C.D. Robert Authors: Philippe C.D. Robert
Serg Stoyan Serg Stoyan
Riccardo Mottola
This file is part of GNUstep. This file is part of GNUstep.
@ -182,9 +183,9 @@
NSString *newEntry = [sender stringValue]; NSString *newEntry = [sender stringValue];
// Build Atributes // Build Atributes
if (sender == installPathField) if (sender == installDomainPopup)
{ {
[project setProjectDictObject:newEntry forKey:PCInstallDir notify:YES]; [project setProjectDictObject:newEntry forKey:PCInstallDomain notify:YES];
} }
else if (sender == cppOptField) else if (sender == cppOptField)
{ {
@ -320,8 +321,8 @@
[projectDict objectForKey:PCCompilerOptions]]; [projectDict objectForKey:PCCompilerOptions]];
[ldOptField setStringValue: [ldOptField setStringValue:
[projectDict objectForKey:PCLinkerOptions]]; [projectDict objectForKey:PCLinkerOptions]];
[installPathField setStringValue: [installDomainPopup selectItemWithTitle:
[projectDict objectForKey:PCInstallDir]]; [projectDict objectForKey:PCInstallDomain]];
// Project Attributes // Project Attributes
[projectTypeField setStringValue:[projectDict objectForKey:PCProjectType]]; [projectTypeField setStringValue:[projectDict objectForKey:PCProjectType]];

View file

@ -1,7 +1,7 @@
/* /*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2000-2004 Free Software Foundation Copyright (C) 2000-2010 Free Software Foundation
Authors: Philippe C.D. Robert Authors: Philippe C.D. Robert
Serg Stoyan Serg Stoyan
@ -142,7 +142,7 @@ static NSString * const PCBuildTool = @"BUILDTOOL";
static NSString * const PCCompilerOptions = @"COMPILEROPTIONS"; static NSString * const PCCompilerOptions = @"COMPILEROPTIONS";
static NSString * const PCPreprocessorOptions = @"CPPOPTIONS"; static NSString * const PCPreprocessorOptions = @"CPPOPTIONS";
static NSString * const PCCreationDate = @"CREATION_DATE"; static NSString * const PCCreationDate = @"CREATION_DATE";
static NSString * const PCInstallDir = @"INSTALLDIR"; static NSString * const PCInstallDomain = @"INSTALLDOMAIN";
static NSString * const PCLinkerOptions = @"LINKEROPTIONS"; static NSString * const PCLinkerOptions = @"LINKEROPTIONS";
static NSString * const PCObjCCompilerOptions = @"OBJC_COMPILEROPTIONS"; static NSString * const PCObjCCompilerOptions = @"OBJC_COMPILEROPTIONS";
static NSString * const PCPrincipalClass = @"PRINCIPAL_CLASS"; static NSString * const PCPrincipalClass = @"PRINCIPAL_CLASS";

View file

@ -1,10 +1,11 @@
/* /*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2000-2004 Free Software Foundation Copyright (C) 2000-2010 Free Software Foundation
Authors: Philippe C.D. Robert Authors: Philippe C.D. Robert
Serg Stoyan Serg Stoyan
Riccardo Mottola
This file is part of GNUstep. This file is part of GNUstep.
@ -61,7 +62,7 @@
IBOutlet NSTextField *objcOptField; IBOutlet NSTextField *objcOptField;
IBOutlet NSTextField *cOptField; IBOutlet NSTextField *cOptField;
IBOutlet NSTextField *ldOptField; IBOutlet NSTextField *ldOptField;
IBOutlet NSTextField *installPathField; IBOutlet NSPopUpButton *installDomainPopup;
IBOutlet NSTextField *toolField; IBOutlet NSTextField *toolField;
// Project Attributes // Project Attributes

View file

@ -1,10 +1,11 @@
/* /*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2001-2004 Free Software Foundation Copyright (C) 2001-2010 Free Software Foundation
Authors: Philippe C.D. Robert Authors: Philippe C.D. Robert
Serg Stoyan Serg Stoyan
Riccardo Mottola
This file is part of GNUstep. This file is part of GNUstep.
@ -515,48 +516,28 @@
- (void)appendHead:(PCMakefileFactory *)mff - (void)appendHead:(PCMakefileFactory *)mff
{ {
NSString *installDir = [projectDict objectForKey:PCInstallDir]; NSString *installDomain = [projectDict objectForKey:PCInstallDomain];
[mff appendString:@"\n#\n# Application\n#\n"]; [mff appendString:@"\n#\n# Application\n#\n"];
[mff appendString:[NSString stringWithFormat:@"VERSION = %@\n", [mff appendString:[NSString stringWithFormat:@"VERSION = %@\n",
[projectDict objectForKey:PCRelease]]]; [projectDict objectForKey:PCRelease]]];
[mff appendString: [mff appendString:
[NSString stringWithFormat:@"PACKAGE_NAME = %@\n", projectName]]; [NSString stringWithFormat:@"PACKAGE_NAME = %@\n", projectName]];
[mff appendString: [mff appendString:
[NSString stringWithFormat:@"APP_NAME = %@\n", projectName]]; [NSString stringWithFormat:@"APP_NAME = %@\n", projectName]];
[mff appendString:[NSString stringWithFormat:@"%@_APPLICATION_ICON = %@\n", [mff appendString:[NSString stringWithFormat:@"%@_APPLICATION_ICON = %@\n",
projectName, [projectDict objectForKey:PCAppIcon]]]; projectName, [projectDict objectForKey:PCAppIcon]]];
if ([installDir isEqualToString:@""]) /* FIXME %@_COPY_INTO_DIR needs to be properly reinstantiated
as well as %@_STANDARD_INSTALL = no */
/* set the domain if it was specified */
if (!(installDomain == nil) && ![installDomain isEqualToString:@""])
{ {
[mff appendString: [mff appendString:
[NSString stringWithFormat:@"%@_STANDARD_INSTALL = no\n", [NSString stringWithFormat:@"GNUSTEP_INSTALLATION_DOMAIN = %@\n",
projectName]]; [installDomain uppercaseString]]];
}
else if (![installDir isEqualToString:@"LOCAL"] &&
![installDir isEqualToString:@"SYSTEM"] &&
![installDir isEqualToString:@"USER"] &&
![installDir isEqualToString:@"NETWORK"] &&
![installDir isAbsolutePath] &&
[installDir characterAtIndex:0] != '$')
{
[mff appendString:
[NSString stringWithFormat:@"%@_COPY_INTO_DIR = %@\n",
projectName, installDir]];
}
else
{
/* IMPORTANT FIXME/TODO: We should be using GNUSTEP_INSTALLATION_DOMAIN,
* not GNUSTEP_INSTALLATION_DIR. Even better, we shouldn't specify
* this in the GNUmakefile itself at all unless explicitly requested
* by the user!
*/
/*
[mff appendString:
[NSString stringWithFormat:@"GNUSTEP_INSTALLATION_DIR = %@\n",
installDir]];
*/
} }
} }

View file

@ -1,10 +1,11 @@
/* /*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2001-2004 Free Software Foundation Copyright (C) 2001-2010 Free Software Foundation
Authors: Philippe C.D. Robert Authors: Philippe C.D. Robert
Serg Stoyan Serg Stoyan
Riccardo Mottola
This file is part of GNUstep. This file is part of GNUstep.
@ -246,7 +247,7 @@
- (void)appendHead:(PCMakefileFactory *)mff - (void)appendHead:(PCMakefileFactory *)mff
{ {
NSString *installDir = [projectDict objectForKey:PCInstallDir]; NSString *installDomain = [projectDict objectForKey:PCInstallDomain];
[mff appendString:@"\n#\n# Bundle\n#\n"]; [mff appendString:@"\n#\n# Bundle\n#\n"];
[mff appendString:[NSString stringWithFormat:@"VERSION = %@\n", [mff appendString:[NSString stringWithFormat:@"VERSION = %@\n",
@ -260,23 +261,14 @@
[mff appendString:[NSString stringWithFormat:@"BUNDLE_EXTENSION = %@\n", [mff appendString:[NSString stringWithFormat:@"BUNDLE_EXTENSION = %@\n",
[projectDict objectForKey:PCBundleExtension]]]; [projectDict objectForKey:PCBundleExtension]]];
if ([installDir isEqualToString:@""]) /* FIXME %@_COPY_INTO_DIR needs to be properly reinstantiated
as well as %@_STANDARD_INSTALL = no */
/* set the domain if it was specified */
if (!(installDomain == nil) && ![installDomain isEqualToString:@""])
{ {
[mff appendString: [mff appendString:
[NSString stringWithFormat:@"%@_STANDARD_INSTALL = no\n", [NSString stringWithFormat:@"GNUSTEP_INSTALLATION_DOMAIN = %@\n", [installDomain uppercaseString]]];
projectName]];
}
else if (![installDir isAbsolutePath] &&
[installDir characterAtIndex:0] != '$')
{
[mff appendString:
[NSString stringWithFormat:@"%@_COPY_INTO_DIR = %@\n",
projectName, installDir]];
}
else
{
[mff appendString:[NSString stringWithFormat:@"BUNDLE_INSTALL_DIR = %@\n",
installDir]];
} }
} }

View file

@ -1,7 +1,7 @@
/* /*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2004 Free Software Foundation Copyright (C) 2004-2010 Free Software Foundation
Authors: Serg Stoyan Authors: Serg Stoyan
@ -190,7 +190,7 @@
projectName]]; projectName]];
[mff appendString: [mff appendString:
[NSString stringWithFormat:@"@%RESOURCE_FILES_INSTALL_DIR = %@\n", [NSString stringWithFormat:@"@%RESOURCE_FILES_INSTALL_DIR = %@\n",
[projectDict objectForKey:PCInstallDir]]]; [projectDict objectForKey:PCInstallDomain]]];
} }
- (void)appendTail:(PCMakefileFactory *)mff - (void)appendTail:(PCMakefileFactory *)mff

View file

@ -1,10 +1,11 @@
/* /*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2001-2004 Free Software Foundation Copyright (C) 2001-2010 Free Software Foundation
Authors: Philippe C.D. Robert Authors: Philippe C.D. Robert
Serg Stoyan Serg Stoyan
Riccardo Mottola
This file is part of GNUstep. This file is part of GNUstep.
@ -343,7 +344,7 @@
- (void)appendHead:(PCMakefileFactory *)mff - (void)appendHead:(PCMakefileFactory *)mff
{ {
NSString *installDir = [projectDict objectForKey:PCInstallDir]; NSString *installDomain = [projectDict objectForKey:PCInstallDomain];
[mff appendString:@"\n#\n# Tool\n#\n"]; [mff appendString:@"\n#\n# Tool\n#\n"];
[mff appendString:[NSString stringWithFormat:@"VERSION = %@\n", [mff appendString:[NSString stringWithFormat:@"VERSION = %@\n",
@ -355,35 +356,14 @@
[mff appendString:[NSString stringWithFormat:@"%@_TOOL_ICON = %@\n", [mff appendString:[NSString stringWithFormat:@"%@_TOOL_ICON = %@\n",
projectName, [projectDict objectForKey:PCToolIcon]]]; projectName, [projectDict objectForKey:PCToolIcon]]];
if ([installDir isEqualToString:@""]) /* FIXME %@_COPY_INTO_DIR needs to be properly reinstantiated
as well as %@_STANDARD_INSTALL = no */
/* set the domain if it was specified */
if (!(installDomain == nil) && ![installDomain isEqualToString:@""])
{ {
[mff appendString: [mff appendString:
[NSString stringWithFormat:@"%@_STANDARD_INSTALL = no\n", [NSString stringWithFormat:@"GNUSTEP_INSTALLATION_DOMAIN = %@\n",[installDomain uppercaseString]]];
projectName]];
}
else if (![installDir isEqualToString:@"LOCAL"] &&
![installDir isEqualToString:@"SYSTEM"] &&
![installDir isEqualToString:@"USER"] &&
![installDir isEqualToString:@"NETWORK"] &&
![installDir isAbsolutePath] &&
[installDir characterAtIndex:0] != '$')
{
[mff appendString:
[NSString stringWithFormat:@"%@_COPY_INTO_DIR = %@\n",
projectName, installDir]];
}
else
{
/* IMPORTANT FIXME/TODO: We should be using GNUSTEP_INSTALLATION_DOMAIN,
* not GNUSTEP_INSTALLATION_DIR. Even better, we shouldn't specify
* this in the GNUmakefile itself at all unless explicitly requested
* by the user!
*/
/*
[mff appendString:
[NSString stringWithFormat:@"GNUSTEP_INSTALLATION_DIR = %@\n",
installDir]];
*/
} }
} }