diff --git a/ChangeLog b/ChangeLog index 4fc4a34..19dc290 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 * Headers/ProjectCenter/PCProjectInspector.h: * Framework/PCProjectInspector.m: diff --git a/Framework/English.lproj/BuildAttributes.gorm/data.classes b/Framework/English.lproj/BuildAttributes.gorm/data.classes index b5c3bde..0f0edfe 100644 --- a/Framework/English.lproj/BuildAttributes.gorm/data.classes +++ b/Framework/English.lproj/BuildAttributes.gorm/data.classes @@ -32,9 +32,9 @@ objcOptField, cOptField, ldOptField, - installPathField, searchOrderScroll, - searchOrderColumn + searchOrderColumn, + installDomainPopup ); Super = NSObject; }; diff --git a/Framework/English.lproj/BuildAttributes.gorm/data.info b/Framework/English.lproj/BuildAttributes.gorm/data.info index da98e43..98c7e15 100644 Binary files a/Framework/English.lproj/BuildAttributes.gorm/data.info and b/Framework/English.lproj/BuildAttributes.gorm/data.info differ diff --git a/Framework/English.lproj/BuildAttributes.gorm/objects.gorm b/Framework/English.lproj/BuildAttributes.gorm/objects.gorm index 7e5afc8..aa558cc 100644 Binary files a/Framework/English.lproj/BuildAttributes.gorm/objects.gorm and b/Framework/English.lproj/BuildAttributes.gorm/objects.gorm differ diff --git a/Framework/PCMakefileFactory.m b/Framework/PCMakefileFactory.m index 10ac653..1633fdb 100644 --- a/Framework/PCMakefileFactory.m +++ b/Framework/PCMakefileFactory.m @@ -1,7 +1,7 @@ /* 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 Serg Stoyan @@ -67,7 +67,7 @@ static PCMakefileFactory *_factory = nil; NSString *buildDir = [prefs stringForKey:RootBuildDirectory]; NSString *prName = [project projectName]; NSString *buildName = [prName stringByAppendingPathExtension: @"build"]; - NSString *instDir = [[project projectDict] objectForKey:PCInstallDir]; + NSString *instDomain = [[project projectDict] objectForKey:PCInstallDomain]; NSAssert(prName, @"No project name given!"); @@ -90,18 +90,18 @@ static PCMakefileFactory *_factory = nil; [mfile appendString: @" before compiling!)\n"]; [mfile appendString: @"endif\n"]; - if ([instDir isEqualToString: @"LOCAL"] - || [instDir isEqualToString: @"SYSTEM"] - || [instDir isEqualToString: @"USER"] - || [instDir isEqualToString: @"NETWORK"]) + if ([instDomain isEqualToString: @"LOCAL"] + || [instDomain isEqualToString: @"SYSTEM"] + || [instDomain isEqualToString: @"USER"] + || [instDomain isEqualToString: @"NETWORK"]) { [mfile appendString: [NSString stringWithFormat: @"\nGNUSTEP_INSTALLATION_DOMAIN = %@\n", - instDir]]; + instDomain]]; } /* 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. */ diff --git a/Framework/PCProjectBuilder.m b/Framework/PCProjectBuilder.m index bd3e315..2df9012 100644 --- a/Framework/PCProjectBuilder.m +++ b/Framework/PCProjectBuilder.m @@ -1,10 +1,11 @@ /* 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 Serg Stoyan + Riccardo Mottola This file is part of GNUstep. @@ -322,17 +323,16 @@ - (NSArray *)buildArguments { NSDictionary *projectDict = [project projectDict]; - NSString *instDir = [projectDict objectForKey:PCInstallDir]; + NSString *instDomain = [projectDict objectForKey:PCInstallDomain]; NSMutableArray *args = [NSMutableArray new]; - if (![instDir isEqualToString:@"LOCAL"] && - ![instDir isEqualToString:@"SYSTEM"] && - ![instDir isEqualToString:@"USER"] && - ![instDir isEqualToString:@"NETWORK"] && - ![instDir isEqualToString:@""] && - ([instDir isAbsolutePath] || [instDir characterAtIndex:0] == '$')) + if (![instDomain isEqualToString:@"LOCAL"] && + ![instDomain isEqualToString:@"SYSTEM"] && + ![instDomain isEqualToString:@"USER"] && + ![instDomain isEqualToString:@"NETWORK"] && + ![instDomain isEqualToString:@""]) { - [args addObject:[NSString stringWithFormat:@"DESTDIR=%@", instDir]]; + [args addObject:[NSString stringWithFormat:@"INSTDOMAIN=%@", instDomain]]; } [args addObjectsFromArray:[projectDict objectForKey:PCBuilderArguments]]; diff --git a/Framework/PCProjectInspector.m b/Framework/PCProjectInspector.m index 8742431..84ddf0d 100644 --- a/Framework/PCProjectInspector.m +++ b/Framework/PCProjectInspector.m @@ -1,10 +1,11 @@ /* 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 Serg Stoyan + Riccardo Mottola This file is part of GNUstep. @@ -182,9 +183,9 @@ NSString *newEntry = [sender stringValue]; // 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) { @@ -320,8 +321,8 @@ [projectDict objectForKey:PCCompilerOptions]]; [ldOptField setStringValue: [projectDict objectForKey:PCLinkerOptions]]; - [installPathField setStringValue: - [projectDict objectForKey:PCInstallDir]]; + [installDomainPopup selectItemWithTitle: + [projectDict objectForKey:PCInstallDomain]]; // Project Attributes [projectTypeField setStringValue:[projectDict objectForKey:PCProjectType]]; diff --git a/Headers/ProjectCenter/PCDefines.h b/Headers/ProjectCenter/PCDefines.h index c475977..c549701 100644 --- a/Headers/ProjectCenter/PCDefines.h +++ b/Headers/ProjectCenter/PCDefines.h @@ -1,7 +1,7 @@ /* 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 Serg Stoyan @@ -142,7 +142,7 @@ static NSString * const PCBuildTool = @"BUILDTOOL"; static NSString * const PCCompilerOptions = @"COMPILEROPTIONS"; static NSString * const PCPreprocessorOptions = @"CPPOPTIONS"; static NSString * const PCCreationDate = @"CREATION_DATE"; -static NSString * const PCInstallDir = @"INSTALLDIR"; +static NSString * const PCInstallDomain = @"INSTALLDOMAIN"; static NSString * const PCLinkerOptions = @"LINKEROPTIONS"; static NSString * const PCObjCCompilerOptions = @"OBJC_COMPILEROPTIONS"; static NSString * const PCPrincipalClass = @"PRINCIPAL_CLASS"; diff --git a/Headers/ProjectCenter/PCProjectInspector.h b/Headers/ProjectCenter/PCProjectInspector.h index 057141d..3d90935 100644 --- a/Headers/ProjectCenter/PCProjectInspector.h +++ b/Headers/ProjectCenter/PCProjectInspector.h @@ -1,10 +1,11 @@ /* 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 Serg Stoyan + Riccardo Mottola This file is part of GNUstep. @@ -61,7 +62,7 @@ IBOutlet NSTextField *objcOptField; IBOutlet NSTextField *cOptField; IBOutlet NSTextField *ldOptField; - IBOutlet NSTextField *installPathField; + IBOutlet NSPopUpButton *installDomainPopup; IBOutlet NSTextField *toolField; // Project Attributes diff --git a/Modules/Projects/Application/PCAppProject.m b/Modules/Projects/Application/PCAppProject.m index bbb007b..a7d7688 100644 --- a/Modules/Projects/Application/PCAppProject.m +++ b/Modules/Projects/Application/PCAppProject.m @@ -1,10 +1,11 @@ /* 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 Serg Stoyan + Riccardo Mottola This file is part of GNUstep. @@ -515,48 +516,28 @@ - (void)appendHead:(PCMakefileFactory *)mff { - NSString *installDir = [projectDict objectForKey:PCInstallDir]; + NSString *installDomain = [projectDict objectForKey:PCInstallDomain]; [mff appendString:@"\n#\n# Application\n#\n"]; [mff appendString:[NSString stringWithFormat:@"VERSION = %@\n", - [projectDict objectForKey:PCRelease]]]; + [projectDict objectForKey:PCRelease]]]; [mff appendString: - [NSString stringWithFormat:@"PACKAGE_NAME = %@\n", projectName]]; + [NSString stringWithFormat:@"PACKAGE_NAME = %@\n", projectName]]; [mff appendString: - [NSString stringWithFormat:@"APP_NAME = %@\n", projectName]]; + [NSString stringWithFormat:@"APP_NAME = %@\n", projectName]]; [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: - [NSString stringWithFormat:@"%@_STANDARD_INSTALL = no\n", - 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]]; - */ + [NSString stringWithFormat:@"GNUSTEP_INSTALLATION_DOMAIN = %@\n", +[installDomain uppercaseString]]]; } } diff --git a/Modules/Projects/Bundle/PCBundleProject.m b/Modules/Projects/Bundle/PCBundleProject.m index 4b75a9d..7b20761 100644 --- a/Modules/Projects/Bundle/PCBundleProject.m +++ b/Modules/Projects/Bundle/PCBundleProject.m @@ -1,10 +1,11 @@ /* 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 Serg Stoyan + Riccardo Mottola This file is part of GNUstep. @@ -246,7 +247,7 @@ - (void)appendHead:(PCMakefileFactory *)mff { - NSString *installDir = [projectDict objectForKey:PCInstallDir]; + NSString *installDomain = [projectDict objectForKey:PCInstallDomain]; [mff appendString:@"\n#\n# Bundle\n#\n"]; [mff appendString:[NSString stringWithFormat:@"VERSION = %@\n", @@ -260,23 +261,14 @@ [mff appendString:[NSString stringWithFormat:@"BUNDLE_EXTENSION = %@\n", [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: - [NSString stringWithFormat:@"%@_STANDARD_INSTALL = no\n", - 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]]; + [NSString stringWithFormat:@"GNUSTEP_INSTALLATION_DOMAIN = %@\n", [installDomain uppercaseString]]]; } } diff --git a/Modules/Projects/ResourceSet/PCResourceSetProject.m b/Modules/Projects/ResourceSet/PCResourceSetProject.m index 5e63d8f..877988e 100644 --- a/Modules/Projects/ResourceSet/PCResourceSetProject.m +++ b/Modules/Projects/ResourceSet/PCResourceSetProject.m @@ -1,7 +1,7 @@ /* 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 @@ -190,7 +190,7 @@ projectName]]; [mff appendString: [NSString stringWithFormat:@"@%RESOURCE_FILES_INSTALL_DIR = %@\n", - [projectDict objectForKey:PCInstallDir]]]; + [projectDict objectForKey:PCInstallDomain]]]; } - (void)appendTail:(PCMakefileFactory *)mff diff --git a/Modules/Projects/Tool/PCToolProject.m b/Modules/Projects/Tool/PCToolProject.m index 22ef44e..afc4c32 100644 --- a/Modules/Projects/Tool/PCToolProject.m +++ b/Modules/Projects/Tool/PCToolProject.m @@ -1,10 +1,11 @@ /* 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 Serg Stoyan + Riccardo Mottola This file is part of GNUstep. @@ -343,7 +344,7 @@ - (void)appendHead:(PCMakefileFactory *)mff { - NSString *installDir = [projectDict objectForKey:PCInstallDir]; + NSString *installDomain = [projectDict objectForKey:PCInstallDomain]; [mff appendString:@"\n#\n# Tool\n#\n"]; [mff appendString:[NSString stringWithFormat:@"VERSION = %@\n", @@ -355,35 +356,14 @@ [mff appendString:[NSString stringWithFormat:@"%@_TOOL_ICON = %@\n", 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: - [NSString stringWithFormat:@"%@_STANDARD_INSTALL = no\n", - 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]]; - */ + [NSString stringWithFormat:@"GNUSTEP_INSTALLATION_DOMAIN = %@\n",[installDomain uppercaseString]]]; } }