--- a/LibraryDefinition.st Fri Aug 18 13:07:17 2006 +0200
+++ b/LibraryDefinition.st Fri Aug 18 13:07:23 2006 +0200
@@ -41,6 +41,20 @@
^ 'a classLibrary'
! !
+!LibraryDefinition class methodsFor:'description - project information'!
+
+description
+ "Returns a description string which will appear in nt.def / bc.def"
+
+ self module = 'stx' ifTrue:[
+ ^ 'Smalltalk/X Class library'
+ ].
+
+ self subclassResponsibility
+
+ "Created: / 17-08-2006 / 20:52:16 / cg"
+! !
+
!LibraryDefinition class methodsFor:'file generation'!
fileNamesToGenerate
@@ -50,14 +64,20 @@
#('libInit.cc' #'generate_libInit_dot_cc')
#('bc.def' #'generate_bc_dot_def')
#('nt.mak' #'generate_nt_dot_mak')
+"
#('nt.def' #'generate_nt_dot_def')
+"
#('abbrev.stc' #'generate_abbrev_dot_stc')
+ #('bmake.bat' #'generate_bmake_dot_mak')
)
+
+ "Modified: / 17-08-2006 / 20:03:00 / cg"
! !
!LibraryDefinition class methodsFor:'file templates'!
bc_dot_def
+ "the template code for the bc.def file"
^
'LIBRARY %(LIBRARY_NAME)
@@ -71,6 +91,7 @@
"Created: / 08-08-2006 / 12:26:58 / fm"
"Modified: / 08-08-2006 / 19:32:27 / fm"
+ "Modified: / 17-08-2006 / 20:05:24 / cg"
!
classLine_libInit_dot_cc
@@ -90,11 +111,14 @@
!
libInit_dot_cc
+ "the template code for the libInit.cc file"
^
'/*
+ * $','Header','$
+ *
* DO NOT EDIT
- * automagically generated from Make.proto (by make libInit.cc)
+ * automagically generated from the projectDefinition: ',self name,'.
*/
#define __INDIRECTVMINITCALLS__
#include <stc.h>
@@ -122,20 +146,76 @@
"Created: / 08-08-2006 / 12:40:45 / fm"
"Modified: / 08-08-2006 / 19:33:01 / fm"
+ "Modified: / 18-08-2006 / 12:57:02 / cg"
+!
+
+lib_dot_rc
+
+^
+'/*------------------------------------------------------------------------
+ * $','Header','$
+ *
+ * DO NOT EDIT
+ * automagically generated from the projectDefinition: ',self name,'.
+ *------------------------------------------------------------------------*/
+
+// #if (__BORLANDC__ < 0x0550)
+// #include <ver.h>
+// #endif
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION %(FILEVERSION)
+ PRODUCTVERSION %(PRODUCTVERSION)
+ FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE
+ FILEFLAGS VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
+ FILEOS VOS_NT_WINDOWS32
+ FILETYPE %(FILETYPE)
+ FILESUBTYPE VS_USER_DEFINED
+
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ BEGIN
+ VALUE "CompanyName", %(COMPANYNAME)
+ VALUE "FileDescription", "Smalltalk/X Additional Developer Basic Classes Library\0"
+ VALUE "FileVersion", "5.2.8.1\0"
+ VALUE "InternalName", "libbasic3\0"
+ VALUE "LegalCopyright", "Copyright eXept Software AG 1998-2006\0"
+ VALUE "ProductName", "Smalltalk/X\0"
+ VALUE "ProductVersion", "5.2.8.1\0"
+ END
+
+ END
+
+ BLOCK "VarFileInfo"
+ BEGIN // Language | Translation
+ VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
+ END
+END
+'
+
+ "Created: / 17-08-2006 / 19:37:50 / cg"
+ "Modified: / 18-08-2006 / 12:57:09 / cg"
!
make_dot_proto
^
-'#
+'# $','Header','$
+#
+# DO NOT EDIT
+# automagically generated from the projectDefinition: ',self name,'.
+#
# Warning: once you modify this file, do not rerun
-# stmkmp again - otherwise, your changes are lost.
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
#
# The Makefile as generated by this Make.proto supports the following targets:
# make - compile all st-files to a classLib
-# make install - install the classLib in /opt/smalltalk/...
# make clean - clean all temp files
# make clobber - clean all
+#
+# This file contains definitions for Unix based platforms.
#
# position (of this package) in directory hierarchy:
@@ -208,30 +288,30 @@
cleanjunk::
clean::
- -rm -f *.o *.H
+%(TAB)-rm -f *.o *.H
clobber::
- -rm -f *.so *.dll
+%(TAB)-rm -f *.so *.dll
',
"
$(INSTALLBASE)::
- @test -d $@ || mkdir $@
+%(TAB)@test -d $@ || mkdir $@
$(INSTALLBASE)/packages:: $(INSTALLBASE)
- @test -d $@ || mkdir $@
+%(TAB)@test -d $@ || mkdir $@
$(INSTALLBASE)/packages/$(MODULE):: $(INSTALLBASE)/packages
- @test -d $@ || mkdir $@
+%(TAB)@test -d $@ || mkdir $@
$(INSTALLBASE)/packages/$(MODULE)/dapasx:: $(INSTALLBASE)/packages/$(MODULE)
- @test -d $@ || mkdir $@
+%(TAB)@test -d $@ || mkdir $@
$(INSTALLBASE)/packages/$(MODULE)/dapasx/interactiver_editor:: $(INSTALLBASE)/packages/$(MODULE)/dapasx
- @test -d $@ || mkdir $@
+%(TAB)@test -d $@ || mkdir $@
$(INSTALLBASE)/packages/$(MODULE)/$(MODULE_DIR):: $(INSTALLBASE)/packages/$(MODULE)
- @test -d $@ || mkdir $@
+%(TAB)@test -d $@ || mkdir $@
"
'
# if other things are to be compiled,
@@ -239,7 +319,7 @@
# and list them in LOCAL_EXTRA_TARGETS above.
# (care for make syntax - TABS are required in the actions)
# foo: foo.o
-# $(CC) -o foo foo.o
+#%(TAB)$(CC) -o foo foo.o
# ''make depend'' will add dependency info between
# BEGIN...END below
@@ -251,45 +331,33 @@
"Created: / 08-08-2006 / 20:45:36 / fm"
"Modified: / 09-08-2006 / 16:50:23 / fm"
+ "Modified: / 18-08-2006 / 12:57:19 / cg"
!
make_dot_spec
^
-'#
-# This file contains specifications which are common to all platforms.
+'# $','Header','$
+#
+# DO NOT EDIT
+# automagically generated from the projectDefinition: ',self name,'.
#
# Warning: once you modify this file, do not rerun
-# stmkmp again - otherwise, your changes are lost.
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
#
-# This file contains definitions for Unix based platforms.
+# This file contains specifications which are common to all platforms.
#
-
-
-
-# module and directory-in-module;
-# these should correspond to the directory hierarchy
-# location (otherwise, ST/X will have a hard time to
-# find out the packages location from its packageID)
+# Do NOT CHANGE THESE DEFINITIONS
+# (otherwise, ST/X will have a hard time to find out the packages location from its packageID,
+# to find the source code of a class and to find the library for a package)
MODULE=%(MODULE)
MODULE_DIR=%(MODULE_DIRECTORY)
-
-
-# the name of your classLibrary:
-# ********** REQUIRED: CHECK the next line ***
LIBNAME=%(LIBRARY_NAME)
-
-
-# the package is stored as an ID in classes and methods
-# to identify code belonging to this project.
-# It also specifies the position in the source repository
-# and directory tree, when packages are loaded by packageID.
-# ********** REQUIRED: CHECK the next line ***
PACKAGE=$(MODULE):$(MODULE_DIR)
-# Argument(s) to the stc compiler.
+# Argument(s) to the stc compiler (stc --usage).
# -H. : create header files locally
# (if removed, they will be created as common
# -Pxxx : defines the package
@@ -306,10 +374,10 @@
# ********** OPTIONAL: MODIFY the next line(s) ***
# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
# STCLOCALOPTIMIZATIONS=+optspace3
-STCLOCALOPTIMIZATIONS=+optspace3
+STCLOCALOPTIMIZATIONS=%(STCOPTIMIZATIONOPTIONS)
-# Argument(s) to the stc compiler.
+# Argument(s) to the stc compiler (stc --usage).
# -warn : no warnings
# -warnNonStandard : no warnings about ST/X extensions
# -warnEOLComments : no warnings about EOL comment extension
@@ -319,7 +387,8 @@
# STCWARNINGS=-warn
# STCWARNINGS=-warnNonStandard
# STCWARNINGS=-warnEOLComments
-STCWARNINGS=
+STCWARNINGS=%(STCWARNINGOPTIONS)
+
OBJS= \
%(OBJECTS)
@@ -327,6 +396,7 @@
"Created: / 08-08-2006 / 19:31:29 / fm"
"Modified: / 09-08-2006 / 15:10:57 / fm"
+ "Modified: / 18-08-2006 / 12:56:33 / cg"
!
nt_dot_def
@@ -350,11 +420,15 @@
nt_dot_mak
^
-'#
-# This file contains make rules for the win32 platform (using borland-bcc).
+'# $','Header','$
+#
+# DO NOT EDIT
+# automagically generated from the projectDefinition: ',self name,'.
#
# Warning: once you modify this file, do not rerun
-# stmkmp again - otherwise, your changes are lost.
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+#
+# This file contains make rules for the win32 platform (using borland-bcc).
#
TOP=%(TOP)
@@ -365,8 +439,10 @@
LOCALINCLUDES=%(LOCAL_INCLUDES)
STCLOCALOPT=-I. $(LOCALINCLUDES) -H. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) ''-P$(PACKAGE)'' ''-Z$(LIBNAME)'' $(COMMONSYMFLAG) $(INITCODESEPFLAG)
+RESFILENAME=$(LIBNAME).res
+RESFILES=%(RESFILENAME)
-ALL:: $(LIBJPEG) $(LIBDIR)\$(LIBNAME).lib $(BINDIR)\$(LIBNAME).dll
+ALL:: $(LIBDIR)\$(LIBNAME).lib $(BINDIR)\$(LIBNAME).dll
!!INCLUDE $(TOP)\rules\stdRules_nt
@@ -376,6 +452,7 @@
"Created: / 09-08-2006 / 11:44:20 / fm"
"Modified: / 09-08-2006 / 19:59:32 / fm"
+ "Modified: / 18-08-2006 / 12:57:32 / cg"
!
objectLine_make_dot_spec
@@ -430,29 +507,43 @@
"Modified: / 16-08-2006 / 18:19:03 / User"
!
-make_dot_proto_mappings
+lib_dot_rc_mappings
^Dictionary new
- at: #'TOP' put: [self unixPathToTop];
- at: #'SUBDIRECTORIES' put: [self generateSubDirectories];
- at: #'LOCAL_INCLUDES' put: [self generateUnixLocalIncludes];
- at: #'LOCAL_DEFINES' put: [''];
+ at: #'FILEVERSION' put: ['5,2,8,1'];
+ at: #'PRODUCTVERSION' put: ['5,2,8,1'];
+ at: #'FILETYPE' put: 'VFT_DLL';
yourself
+ "Created: / 17-08-2006 / 19:35:05 / cg"
+!
+
+make_dot_proto_mappings
+ ^ Dictionary new
+ at: #'TAB' put: ( Character tab asString );
+ at: #'TOP' put: ( self unixPathToTop );
+ at: #'SUBDIRECTORIES' put: [self generateSubDirectories];
+ at: #'LOCAL_INCLUDES' put: [self generateUnixLocalIncludes];
+ at: #'LOCAL_DEFINES' put: '';
+ at: #'COMMONSYMFLAG' put: (self commonSymbolsFlag);
+ yourself
+
"Created: / 09-08-2006 / 11:20:45 / fm"
"Modified: / 09-08-2006 / 16:44:48 / fm"
+ "Modified: / 18-08-2006 / 12:59:05 / cg"
!
make_dot_spec_mappings
+ |d|
-^Dictionary new
- at: #'MODULE' put: [self module];
- at: #'MODULE_DIRECTORY' put: [self moduleDirectory];
- at: #'LIBRARY_NAME' put: [self libraryName];
- at: #'OBJECTS' put: [self generateObjects_make_dot_spec];
- yourself
+ d := super make_dot_spec_mappings.
+ d
+ at: #'LIBRARY_NAME' put: ( self libraryName );
+ at: #'OBJECTS' put: [self generateObjects_make_dot_spec].
+ ^ d
"Created: / 09-08-2006 / 11:21:06 / fm"
+ "Modified: / 18-08-2006 / 11:45:18 / cg"
!
nt_dot_def_mappings
@@ -467,14 +558,18 @@
!
nt_dot_mak_mappings
+ |d|
-^Dictionary new
- at: #'TOP' put: [self msdosPathToTop];
- at: #'LOCAL_INCLUDES' put: [self generateMsdosLocalIncludes];
- yourself
+ d := super nt_dot_mak_mappings.
+ d
+ at: #'LOCAL_INCLUDES' put: [self generateMsdosLocalIncludes];
+ at: #'COMMONSYMFLAG' put: (self commonSymbolsFlag);
+ at: #'RESFILENAME' put:'RESFILENAME'.
+ ^ d.
"Created: / 09-08-2006 / 11:44:36 / fm"
"Modified: / 09-08-2006 / 20:00:01 / fm"
+ "Modified: / 18-08-2006 / 13:03:50 / cg"
!
objectLine_make_dot_spec_mappings: aClassName
@@ -495,61 +590,84 @@
!LibraryDefinition class methodsFor:'mappings support'!
-generateClassLines_libInit_dot_cc
+commonSymbolsFlag
+ "some libraries are compiled with COMMONSYMBOLS -
+ This saves a lot of space in the generated dll/so files;
+ However, it also requires the librun to be rebuilt, whenever one of
+ the commonSymbols-libs changes.
+ Therefore, NEVER do this for end-user or application libraries;
+ ONLY do it for a subset of the predefined, exept-provided standard stx libraries"
-^self compiled_classNames
- inject: ''
- into:[:classLines :className |
- |newClassLine mappings|
+ (
+ #(
+ 'stx:libbasic' 'stx:libview' 'stx:libtool'
+ 'stx:libbasic2' 'stx:libview2' 'stx:libtool2'
+ 'stx:libbasic3' 'stx:libwidg' 'stx:libhtml'
+ 'stx:libcomp' 'stx:libwidg2' 'stx:libui'
+ )
+ includes:self package) ifTrue:[
+ ^ '$(COMMONSYMBOLS)'
+ ].
+ ^ ''
- mappings := self classLine_libInit_dot_cc_mappings: className.
- newClassLine := self replaceMappings: mappings
- in: self classLine_libInit_dot_cc.
- classLines concatenate: newClassLine
- and: String lf
+ "Created: / 18-08-2006 / 13:01:52 / cg"
+!
+
+generateClassLines_libInit_dot_cc
+ ^ String streamContents:[:s |
+ self compiled_classNames do:[:className |
+ |newClassLine mappings|
+
+ mappings := self classLine_libInit_dot_cc_mappings: className.
+ newClassLine := self replaceMappings:mappings in:self classLine_libInit_dot_cc.
+ s nextPutLine: newClassLine
+ ]
]
-"
- bosch_dapasx_datenbasis generateClassLines_libInit_dot_cc
- bosch_dapasx_kernel generateClassLines_libInit_dot_cc
-
-"
+ "
+ bosch_dapasx_datenbasis generateClassLines_libInit_dot_cc
+ bosch_dapasx_kernel generateClassLines_libInit_dot_cc
+ stx_libbasic3 generateClassLines_libInit_dot_cc
+ "
"Created: / 09-08-2006 / 11:21:48 / fm"
"Modified: / 16-08-2006 / 18:52:10 / User"
+ "Modified: / 18-08-2006 / 11:59:44 / cg"
!
generateExtensionLine_libInit_dot_cc
- |mappings|
-^self extensionMethodNames isEmpty
- ifTrue:['']
- ifFalse:[ mappings := self extensionLine_libInit_dot_cc_mappings.
- self replaceMappings: mappings
- in: self extensionLine_libInit_dot_cc.]
-"
- DapasXProject generateExtensionLine_libInit_dot_cc
- DapasX_Datenbasis generateExtensionLine_libInit_dot_cc
+ |mappings|
-"
+ ^self extensionMethodNames isEmpty
+ ifTrue:['']
+ ifFalse:[
+ mappings := self extensionLine_libInit_dot_cc_mappings.
+ self replaceMappings: mappings in: self extensionLine_libInit_dot_cc.]
+
+ "
+ DapasXProject generateExtensionLine_libInit_dot_cc
+ DapasX_Datenbasis generateExtensionLine_libInit_dot_cc
+ "
"Created: / 09-08-2006 / 11:23:34 / fm"
+ "Modified: / 18-08-2006 / 12:00:18 / cg"
!
generateMsdosLocalIncludes
-
-^self searchForProjectsWhichProvideHeaderFiles
- inject: ''
- into:[:objectLines :includeProjectName |
- objectLines , ' -I',(self msdosPathToPackage: includeProjectName)
+ ^ String streamContents:[:s |
+ self searchForProjectsWhichProvideHeaderFiles
+ do:[:includeProjectName |
+ s nextPutAll:' -I',(self msdosPathToPackage: includeProjectName)
+ ]
]
-"
- DapasXProject generateLocalIncludes
- DapasX_Datenbasis generateLocalIncludes
-
-"
+ "
+ DapasXProject generateLocalIncludes
+ DapasX_Datenbasis generateLocalIncludes
+ "
"Created: / 09-08-2006 / 16:46:49 / fm"
+ "Modified: / 18-08-2006 / 11:58:40 / cg"
!
generateObjects_make_dot_spec
@@ -602,73 +720,38 @@
"Created: / 09-08-2006 / 11:24:39 / fm"
!
-generatePrerequisiteProjectsPaths
-
-^self prerequisiteProjects
- inject: ''
- into:[:objectLines :subProjectName |
- objectLines
- concatenate: String lf
- and: ' -I'
- and: subProjectName
+generateSubDirectories
+ ^ String streamContents:[:s |
+ self subProjects
+ do:[:subProjectName |
+ s space; nextPutAll:subProjectName
+ ]
]
-"
- DapasXProject generatePrerequisiteProjectsPaths
- DapasX_Datenbasis generatePrerequisiteProjectsPaths
-
-"
-
- "Created: / 09-08-2006 / 12:34:20 / fm"
-!
-
-generateSubDirectories
-
-^self subProjects
- inject: ''
- into:[:objectLines :subProjectName |
- objectLines
- concatenate: ' '
- and: subProjectName
- ]
-
-"
- DapasXProject generateSubDirectories
- DapasX_Datenbasis generateSubDirectories
-
-"
+ "
+ DapasXProject generateSubDirectories
+ DapasX_Datenbasis generateSubDirectories
+ "
"Created: / 09-08-2006 / 11:26:59 / fm"
+ "Modified: / 18-08-2006 / 11:59:32 / cg"
!
generateUnixLocalIncludes
-
-^self searchForProjectsWhichProvideHeaderFiles
- inject: ''
- into:[:objectLines :includeProjectName |
- objectLines , ' -I',(self unixPathToPackage: includeProjectName)
+ ^ String streamContents:[:s |
+ self searchForProjectsWhichProvideHeaderFiles
+ do:[:includeProjectName |
+ s nextPutAll:' -I',(self unixPathToPackage: includeProjectName)
+ ]
]
-"
- DapasXProject generateLocalIncludes
- DapasX_Datenbasis generateLocalIncludes
-
-"
+ "
+ DapasXProject generateLocalIncludes
+ DapasX_Datenbasis generateLocalIncludes
+ "
"Created: / 09-08-2006 / 16:46:49 / fm"
-!
-
-prerequisiteProjectsOrdered
-
-^self prerequisiteProjects asSortedCollection:[:a :b | ]
-
-"
- DapasXProject generatePrerequisiteProjectsPaths
- DapasX_Datenbasis generatePrerequisiteProjectsPaths
-
-"
-
- "Created: / 09-08-2006 / 13:12:01 / fm"
+ "Modified: / 18-08-2006 / 11:58:45 / cg"
! !
!LibraryDefinition class methodsFor:'sanity checks'!
@@ -711,127 +794,92 @@
!LibraryDefinition class methodsFor:'update description'!
-autoloadedClassNamesGeneratedCodeToCompile
- |classNamesCode|
-
- classNamesCode := 'autoloaded_classNames', String lf, '"This method has been automatically generated"'.
- classNamesCode := classNamesCode, String lf, self autoloadedClassNamesGeneratedString.
- ^classNamesCode
-
-"
- DapasXProject autoloadedClassNamesGeneratedCodeToCompile
- DapasX_Datenbasis autoloadedClassNamesGeneratedCodeToCompile
-
-"
+autoloadedClassNames_code
+ |compiled excluded|
- "Created: / 08-08-2006 / 15:07:06 / fm"
-!
-
-autoloadedClassNamesGeneratedString
- | |
-
+ compiled := self compiled_classNames.
+ excluded := self excluded_classNames.
^ String streamContents:[:s |
- s nextPutAll:'^#('.
- self searchForClassesWithProject do:[:eachClass |
+ s nextPutLine:'autoloaded_classNames'.
+ s nextPutLine:' ^ #('.
+ self searchForClasses do:[:eachClass |
(false "eachClass wasAutoloaded" or:[ eachClass isLoaded not ]) ifTrue:[
- (self compiled_classNames includes:eachClass name) ifFalse:[
- (self excluded_classNames includes:eachClass name) ifFalse:[
- s cr; nextPutAll:eachClass name asString storeString
+ (compiled includes:eachClass name) ifFalse:[
+ (excluded includes:eachClass name) ifFalse:[
+ s nextPutAll:' '; nextPutLine:eachClass name asString storeString
]
]
]
].
- s cr; nextPutAll:')'
+ s nextPutLine:')'
].
-"
- bosch_dapasx_interactiver_editor autoloadedClassNamesGeneratedString
-"
+ "
+ DapasXProject autoloadedClassNames_code
+ DapasX_Datenbasis autoloadedClassNames_code
+ stx_libbasic3 autoloadedClassNames_code
+ "
- "Created: / 08-08-2006 / 15:00:17 / fm"
- "Modified: / 08-08-2006 / 19:24:34 / fm"
- "Modified: / 11-08-2006 / 14:01:23 / cg"
+ "Created: / 17-08-2006 / 20:55:35 / cg"
!
-classNamesGeneratedCodeToCompile
- |classNamesCode|
-
- classNamesCode := 'compiled_classNames', String lf, '"This method has been automatically generated"'.
- classNamesCode := classNamesCode, String lf, self classNamesGeneratedString.
- ^classNamesCode
+classNames_code
+ |autoloaded excluded|
-"
- DapasXProject Datenbasis
- DapasX_Datenbasis Datenbasis
-
-"
-
- "Created: / 08-08-2006 / 15:07:06 / fm"
-!
-
-classNamesGeneratedString
- | |
+ autoloaded := self autoloaded_classNames.
+ excluded := self excluded_classNames.
^ String streamContents:[:s |
- s nextPutAll:'^#('.
- self searchForClassesWithProject do:[:eachClass |
- (self autoloaded_classNames includes:eachClass name) ifFalse:[
- (self excluded_classNames includes:eachClass name) ifFalse:[
- s cr; nextPutAll:eachClass name asString storeString
+ s nextPutLine:'compiled_classNames'.
+ s nextPutLine:' ^ #('.
+ self searchForClasses do:[:eachClass |
+ eachClass isPrivate ifFalse:[
+ (autoloaded includes:eachClass name) ifFalse:[
+ (excluded includes:eachClass name) ifFalse:[
+ s nextPutAll:' '; nextPutLine:eachClass name asString storeString
+ ]
]
]
].
- s cr; nextPutAll:')'
+ s nextPutLine:')'
].
"
bosch_dapasx_interactiver_editor classNamesGeneratedString
"
- "Created: / 08-08-2006 / 15:00:17 / fm"
"Modified: / 08-08-2006 / 19:24:34 / fm"
- "Modified: / 11-08-2006 / 14:01:26 / cg"
+ "Created: / 17-08-2006 / 21:03:07 / cg"
!
-extensionMethodNamesGeneratedCodeToCompile
- |extensionMethodNamesCode|
+extensionMethodNames_code
+ |generatedString |
- extensionMethodNamesCode := 'extensionMethodNames', String lf, '"This method has been automatically generated"'.
- extensionMethodNamesCode := extensionMethodNamesCode, String lf, self extensionMethodNamesGeneratedString.
- ^extensionMethodNamesCode
+ ^ String streamContents:[:s |
+ s nextPutLine:'extensionMethodNames'.
+ s nextPutLine:' ^ #('.
+ self searchForExtensions do:[:eachMethod |
+ s nextPutAll:eachMethod mclass name storeString.
+ s nextPutAll:' '.
+ s nextPutLine: eachMethod selector storeString.
+ ].
+ s nextPutLine:')'
+ ].
"
- DapasXProject extensionMethodNamesGeneratedCodeToCompile
- DapasX_Datenbasis extensionMethodNamesGeneratedCodeToCompile
-
+ self extensionMethodNames_code
"
- "Created: / 08-08-2006 / 18:54:42 / fm"
-!
-
-extensionMethodNamesGeneratedString
- |generatedString |
-
- generatedString := self searchForExtensionsWithProject
- inject: '^#('
- into:[:string :each |
- string, String lf, each mclass name asString storeString, ' #', each name ].
- ^generatedString, String lf, ')'
-
-"
- self extensionMethodNamesGeneratedString
-"
-
- "Created: / 08-08-2006 / 18:55:04 / fm"
+ "Created: / 17-08-2006 / 21:21:48 / cg"
!
forEachMethodsCodeToCompileDo:aTwoArgBlock
aTwoArgBlock
- value:self autoloadedClassNamesGeneratedCodeToCompile
+ value:self autoloadedClassNames_code
value:'description'.
aTwoArgBlock
- value: self classNamesGeneratedCodeToCompile
+ value: self classNames_code
value: 'description'.
(self theMetaclass includesSelector:#excluded_classNames) ifFalse:[
@@ -841,18 +889,19 @@
].
aTwoArgBlock
- value: self extensionMethodNamesGeneratedCodeToCompile
+ value: self extensionMethodNames_code
value: 'description'.
-"/ aTwoArgBlock
-"/ value: 'description ^''bla bla'''
-"/ value: 'description'
+ aTwoArgBlock
+ value: self description_code
+ value: 'description - project information'.
"Created: / 10-08-2006 / 16:35:47 / cg"
+ "Modified: / 17-08-2006 / 21:22:26 / cg"
! !
!LibraryDefinition class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/LibraryDefinition.st,v 1.22 2006-08-17 15:24:38 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/LibraryDefinition.st,v 1.23 2006-08-18 11:07:23 cg Exp $'
! !