*** empty log message ***

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/branches/UNSTABLE_0_4@18034 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Sergii Stoian 2003-11-02 21:33:15 +00:00
parent 3a5e704aad
commit 66d93c134d
9 changed files with 615 additions and 0 deletions

View file

@ -0,0 +1,67 @@
#
# GNUmakefile - Generated by ProjectCenter
# Written by Philippe C.D. Robert <phr@3dkit.org>
#
# NOTE: Do NOT change this file -- ProjectCenter maintains it!
#
# Put all of your customisations in GNUmakefile.preamble and
# GNUmakefile.postamble
#
include $(GNUSTEP_MAKEFILES)/common.make
#
# Subprojects
#
#
# Bundle
#
PACKAGE_NAME = ToolProject
BUNDLE_NAME = ToolProject
ToolProject_PRINCIPAL_CLASS = PCToolProj
#
# Additional libraries
#
ToolProject_LIBRARIES_DEPEND_UPON += -lProjectCenter
#
# Resource files
#
ToolProject_RESOURCE_FILES= \
Info-project.plist \
PC.proj \
main.m
#
# Header files
#
ToolProject_HEADERS= \
PCToolProj.h \
PCToolProject.h
#
# Class files
#
ToolProject_OBJC_FILES= \
PCToolProj.m \
PCToolProject.m
#
# C files
#
ToolProject_C_FILES=
include ../GNUmakefile.bundles
include $(GNUSTEP_MAKEFILES)/bundle.make

View file

@ -0,0 +1,12 @@
{
NOTE = "Automatically generated, do not edit!";
ToolName = "";
ToolDescription = "";
ToolIcon = "";
ToolRelease = "";
FullVersionID = "";
Authors = ();
URL = "";
Copyright = "";
CopyrightDescription = "";
}

View file

@ -0,0 +1,29 @@
{
AdditionalAttributes = {
PrincipalClass = {ATTR_CLASS_NAME = "NSString";};
};
Allowable_SubprojectTypes = (Subproject, Bundle, Tool);
AttributesInspector = ToolInspector;
DefaultExtension = "";
Default_Localizable_Keys = (INTERFACES);
GeneratedFiles = (Makefile, iconHeader);
INSTALLFLAGS = "-c -s -m 755";
InfoName = "";
Localizable_Keys = (INTERFACES, IMAGES, OTHER_RESOURCES, HELP_RESOURCES);
MAKEFILE = tool.make;
MAKEFILEDIR = "$(MAKEFILEPATH)/pb_makefiles";
Other_Keys = (HELP_RESOURCES, OTHER_SOURCES, FRAMEWORKS, OTHER_LIBS);
PBProjectTypeSubClass = "PBApplicationProjectType";
ProvidesIcons = Yes;
Public_Keys = (H_FILES);
Resource_Keys = (INTERFACES, IMAGES, OTHER_RESOURCES);
SOURCEMODE = 444;
Source_Keys = (CLASSES, H_FILES, OTHER_LINKED);
Subproj_Keys = (SUBPROJECTS);
Targets = (app, debug, profile, install);
ExecutableResults = (
"$PROJECTNAME$.app/$PROJECTNAME$$EXECUTABLE_EXT$",
"$PROJECTNAME$.debug/$PROJECTNAME$$EXECUTABLE_EXT$",
"$PROJECTNAME$.profile/$PROJECTNAME$$EXECUTABLE_EXT$"
);
}

View file

@ -0,0 +1,36 @@
{
TOOLICON = "";
BUILDTOOL = "/usr/bin/make";
CLASS_FILES = ("main.m");
COMPILEROPTIONS = "";
LINKEROPTIONS = "";
CREATION_DATE = "";
DOCU_FILES = ();
FOUNDATION = "GNUSTEP-BASE";
FRAMEWORKS = ();
HEADER_FILES = ();
IMAGES = ();
LANGUAGE = "English";
LAST_EDITING = "";
LIBRARIES = ("gnustep-base");
MAKEFILEDIR = "/usr/GNUstep/Makefiles";
INSTALLDIR = "$(GNUSTEP_LOCAL_ROOT)/Tools";
OTHER_FILES = ();
OTHER_RESOURCES = ();
OTHER_SOURCES = ();
PRINCIPAL_CLASS = "main.m";
PROJECT_CREATOR = "";
PROJECT_DESCRIPTION = "No description avaliable!";
PROJECT_GROUP = "No description avaliable!";
PROJECT_SUMMARY = "No summary avaliable!";
PROJECT_RELEASE = "1";
PROJECT_COPYRIGHT = "No license specified!";
PROJECT_SOURCE = "%{gs_name}-%{gs_version}.tar.gz";
PROJECT_MAINTAINER = "";
PROJECT_NAME = "";
PROJECT_TYPE = "Tool";
PROJECT_BUILDER = "PCToolProj";
PROJECT_VERSION = 1.0;
SUBPROJECTS = ();
SUPPORTING_FILES = ("GNUmakefile.preamble", "GNUmakefile", "GNUmakefile.postamble");
}

View file

@ -0,0 +1,53 @@
/*
GNUstep ProjectCenter - http://www.gnustep.org
Copyright (C) 2001 Free Software Foundation
Author: Philippe C.D. Robert <phr@3dkit.org>
This file is part of GNUstep.
This application is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This application is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
$Id$
*/
#ifndef _PCTOOLPROJ_H
#define _PCTOOLPROJ_H
#include <AppKit/AppKit.h>
#include <ProjectCenter/ProjectCenter.h>
@interface PCToolProj : NSObject <ProjectType>
{
}
//----------------------------------------------------------------------------
// ProjectType
//----------------------------------------------------------------------------
+ (id)sharedCreator;
- (Class)projectClass;
- (NSString *)projectTypeName;
- (NSDictionary *)typeTable;
- (PCProject *)createProjectAt:(NSString *)path;
- (PCProject *)openProjectAt:(NSString *)path;
@end
#endif

View file

@ -0,0 +1,141 @@
/*
GNUstep ProjectCenter - http://www.gnustep.org
Copyright (C) 2001 Free Software Foundation
Author: Philippe C.D. Robert <phr@3dkit.org>
This file is part of GNUstep.
This application is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This application is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
$Id$
*/
/*
Description:
PCToolProj creates new project of the type Application!
*/
#include "PCToolProj.h"
#include "PCToolProject.h"
@implementation PCToolProj
static NSString *_projTypeName = @"Tool";
static PCToolProj *_creator = nil;
//----------------------------------------------------------------------------
// ProjectType
//----------------------------------------------------------------------------
+ (id)sharedCreator
{
if (!_creator) {
_creator = [[[self class] alloc] init];
}
return _creator;
}
- (Class)projectClass
{
return [PCToolProject class];
}
- (NSString *)projectTypeName
{
return _projTypeName;
}
- (NSDictionary *)typeTable
{
NSString *_path = [[NSBundle bundleForClass:[self class]] pathForResource:@"Info" ofType:@"table"];
return [NSDictionary dictionaryWithContentsOfFile:_path];
}
- (PCProject *)createProjectAt:(NSString *)path
{
PCToolProject *project = nil;
NSFileManager *fm = [NSFileManager defaultManager];
NSAssert(path,@"No valid project path provided!");
if ([fm createDirectoryAtPath:path attributes:nil]) {
NSString *_file;
NSString *_resourcePath;
NSMutableDictionary *dict;
NSString *projectFile;
project = [[[PCToolProject alloc] init] autorelease];
_file = [[NSBundle bundleForClass:[self class]] pathForResource:@"PC" ofType:@"proj"];
dict = [NSMutableDictionary dictionaryWithContentsOfFile:_file];
// Customise the project
[dict setObject:[path lastPathComponent] forKey:PCProjectName];
[dict setObject:[[project principalClass] description] forKey:PCProjType];
// Save the project to disc
projectFile = [NSString stringWithString:[path lastPathComponent]];
projectFile = [projectFile stringByAppendingPathExtension:@"pcproj"];
[dict writeToFile:[path stringByAppendingPathComponent:projectFile]
atomically:YES];
// Copy the project files to the provided path
_file = [[NSBundle bundleForClass:[self class]] pathForResource:@"GNUmakefile" ofType:@"postamble"];
[fm copyPath:_file toPath:[path stringByAppendingPathComponent:@"GNUmakefile.postamble"] handler:nil];
_file = [[NSBundle bundleForClass:[self class]] pathForResource:@"GNUmakefile" ofType:@"preamble"];
[fm copyPath:_file toPath:[path stringByAppendingPathComponent:@"GNUmakefile.preamble"] handler:nil];
_file = [[NSBundle bundleForClass:[self class]] pathForResource:@"main" ofType:@"m"];
[fm copyPath:_file toPath:[path stringByAppendingPathComponent:@"main.m"] handler:nil];
// Resources
_resourcePath = [path stringByAppendingPathComponent:@"English.lproj"];
[fm createDirectoryAtPath:_resourcePath attributes:nil];
[fm createDirectoryAtPath:[path stringByAppendingPathComponent:@"Images"] attributes:nil];
[fm createDirectoryAtPath:[path stringByAppendingPathComponent:@"Documentation"] attributes:nil];
// The path cannot be in the PC.project file!
[project setProjectPath:path];
// Set the new dictionary - this causes the GNUmakefile to be written
if(![project assignProjectDict:dict]) {
NSRunAlertPanel(@"Attention!",@"Could not load %@!",@"OK",nil,nil,path);
return nil;
}
}
return project;
}
- (PCProject *)openProjectAt:(NSString *)path
{
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
id obj;
NSLog(@"<%@ %x>: opening project at %@",[self class],self,path);
obj = [dict objectForKey:PCProjectBuilderClass];
if ([obj isEqualToString:@"PCToolProj"]) {
return [[[PCToolProject alloc] initWithProjectDictionary:dict path:[path stringByDeletingLastPathComponent]] autorelease];
}
return nil;
}
@end

View file

@ -0,0 +1,73 @@
/*
GNUstep ProjectCenter - http://www.gnustep.org
Copyright (C) 2001 Free Software Foundation
Author: Philippe C.D. Robert <phr@3dkit.org>
This file is part of GNUstep.
This application is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This application is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
$Id$
*/
/*
Description:
This is the project type 'Tool' for GNUstep. You never should create
it yourself but use PCToolProj for doing this. Otherwise needed files don't
get copied to the right place.
*/
#ifndef _PCTOOLPROJECT_H
#define _PCTOOLPROJECT_H
#include <AppKit/AppKit.h>
#include <ProjectCenter/PCProject.h>
@interface PCToolProject : PCProject
{
}
//----------------------------------------------------------------------------
// Init and free
//----------------------------------------------------------------------------
- (id)init;
- (void)dealloc;
//----------------------------------------------------------------------------
// Project
//----------------------------------------------------------------------------
- (Class)builderClass;
- (BOOL)writeMakefile;
- (NSArray *)sourceFileKeys;
- (NSArray *)resourceFileKeys;
- (NSArray *)otherKeys;
- (NSArray *)buildTargets;
- (NSString *)projectDescription;
- (BOOL)isExecutable;
- (void)updateValuesFromProjectDict;
@end
#endif

View file

@ -0,0 +1,191 @@
/*
GNUstep ProjectCenter - http://www.gnustep.org
Copyright (C) 2001 Free Software Foundation
Author: Philippe C.D. Robert <phr@3dkit.org>
This file is part of GNUstep.
This application is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This application is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
$Id$
*/
#include "PCToolProject.h"
#include "PCToolProj.h"
#include <ProjectCenter/PCMakefileFactory.h>
@interface PCToolProject (CreateUI)
- (void)_initUI;
@end
@implementation PCToolProject (CreateUI)
- (void)_initUI
{
}
@end
@implementation PCToolProject
//----------------------------------------------------------------------------
// Init and free
//----------------------------------------------------------------------------
- (id)init
{
if ((self = [super init]))
{
rootObjects = [[NSArray arrayWithObjects: PCClasses,
PCHeaders,
PCOtherSources,
PCImages,
PCOtherResources,
PCSubprojects,
PCDocuFiles,
PCSupportingFiles,
PCLibraries,
PCNonProject,
nil] retain];
rootKeys = [[NSArray arrayWithObjects: @"Classes",
@"Headers",
@"Other Sources",
@"Images",
@"Other Resources",
@"Subprojects",
@"Documentation",
@"Supporting Files",
@"Libraries",
@"Non Project Files",
nil] retain];
rootCategories = [[NSDictionary
dictionaryWithObjects:rootObjects forKeys:rootKeys] retain];
}
return self;
}
- (void)dealloc
{
[rootCategories release];
[rootObjects release];
[rootKeys release];
[super dealloc];
}
//----------------------------------------------------------------------------
// Project
//----------------------------------------------------------------------------
- (Class)builderClass
{
return [PCToolProj class];
}
- (BOOL)writeMakefile
{
NSData *mfd;
NSString *mfl = [projectPath stringByAppendingPathComponent:@"GNUmakefile"];
int i;
PCMakefileFactory *mf = [PCMakefileFactory sharedFactory];
NSDictionary *dict = [self projectDict];
// Save the project file
[super writeMakefile];
// Create the new file
[mf createMakefileForProject:[self projectName]];
[mf appendString:@"include $(GNUSTEP_MAKEFILES)/common.make\n"];
[mf appendSubprojects:[dict objectForKey:PCSubprojects]];
[mf appendTool];
[mf appendInstallDir:[dict objectForKey:PCInstallDir]];
[mf appendToolIcon:[dict objectForKey:PCToolIcon]];
[mf appendToolLibraries:[dict objectForKey:PCLibraries]];
[mf appendResources];
for (i=0;i<[[self resourceFileKeys] count];i++)
{
NSString *k = [[self resourceFileKeys] objectAtIndex:i];
[mf appendResourceItems:[dict objectForKey:k]];
}
[mf appendHeaders:[dict objectForKey:PCHeaders]];
[mf appendClasses:[dict objectForKey:PCClasses]];
[mf appendOtherSources:[dict objectForKey:PCOtherSources]];
[mf appendTailForTool];
// Write the new file to disc!
if ((mfd = [mf encodedMakefile]))
{
if ([mfd writeToFile:mfl atomically:YES])
{
return YES;
}
}
return NO;
}
- (NSArray *)sourceFileKeys
{
return [NSArray arrayWithObjects:PCClasses,PCOtherSources,nil];
}
- (NSArray *)resourceFileKeys
{
return [NSArray arrayWithObjects:PCOtherResources,PCImages,nil];
}
- (NSArray *)otherKeys
{
return [NSArray arrayWithObjects:PCDocuFiles,PCSupportingFiles,nil];
}
- (NSArray *)buildTargets
{
return nil;
}
- (NSString *)projectDescription
{
return @"Project that handles GNUstep/ObjC based tools.";
}
- (BOOL)isExecutable
{
return YES;
}
- (void)updateValuesFromProjectDict
{
[super updateValuesFromProjectDict];
//[appClassField setStringValue:[projectDict objectForKey:PCAppClass]];
}
@end

View file

@ -0,0 +1,13 @@
#include <Foundation/Foundation.h>
int main(int argc, const char *argv[]) {
id pool = [[NSAutoreleasePool alloc] init];
// Your code here...
// The end...
[pool release];
exit(0);
return 0;
}