diff -r a5b3fd5ca84a -r 406b1590afe8 LibraryDefinition.st --- a/LibraryDefinition.st Mon Oct 26 21:51:17 2009 +0000 +++ b/LibraryDefinition.st Thu Nov 05 14:41:30 2009 +0000 @@ -117,6 +117,110 @@ "Modified: / 19-09-2006 / 22:41:40 / cg" ! ! +!LibraryDefinition class methodsFor:'file mappings'! + +bc_dot_mak_mappings + |d resFileName| + + resFileName := (self package copyFrom:(self package lastIndexOfAny:':/')+1),'.res'. + + d := super bc_dot_mak_mappings. + d + at: 'LIBRARY_NAME' put: ( self libraryName ); + at: 'COMMONSYMFLAG' put: (self commonSymbolsFlag); + at: 'HEADEROUTPUTARG' put: (self headerFileOutputArg); + at: 'RESFILENAME' put: resFileName; + at: 'DEPENDENCIES' put: (self generateDependencies_win32); + yourself. + ^ d. + + "Created: / 09-08-2006 / 11:44:36 / fm" + "Modified: / 09-08-2006 / 20:00:01 / fm" + "Modified: / 14-09-2006 / 18:58:15 / cg" +! + +extensionLine_libInit_dot_cc_mappings + +^Dictionary new + at: 'LIBRARY_NAME' put: ( self st2c:(self package copy asString replaceAny:':/' with:$_) ); + yourself + + "Created: / 09-08-2006 / 11:19:59 / fm" + "Modified: / 14-09-2006 / 18:56:26 / cg" +! + +libInit_dot_cc_mappings + +^Dictionary new + at: 'LIBRARY_NAME' put: (self libraryName); + at: 'PACKAGE' put: (self package); + at: 'CLASSES' put: (self generateClassLines_libInit_dot_cc); + at: 'EXTENSION' put: (self generateExtensionLine_libInit_dot_cc); + + yourself + + "Created: / 09-08-2006 / 11:20:24 / fm" + "Modified: / 16-08-2006 / 18:19:03 / User" + "Modified: / 14-09-2006 / 18:56:42 / cg" +! + +vc_dot_def_mappings + +^Dictionary new + at: 'LIBRARY_NAME' put: (self libraryName); + at: 'DESCRIPTION' put: (self description asString storeString); + at: 'VERSION_NUMBER' put: (self versionNumber); + yourself + + "Created: / 09-08-2006 / 11:21:21 / fm" + "Modified: / 14-09-2006 / 18:58:07 / cg" +! ! + +!LibraryDefinition class methodsFor:'file mappings support'! + +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" + + ( + #( + 'stx:libbasic' 'stx:libview' 'stx:libtool' + 'stx:libbasic2' 'stx:libview2' 'stx:libtool2' + 'stx:libbasic3' 'stx:libwidg' 'stx:libhtml' + 'stx:libcomp' 'stx:libwidg2' 'stx:libui' + 'stx:libboss' 'stx:libdb' + ) + includes:self package) ifTrue:[ + ^ '$(COMMONSYMBOLS)' + ]. + ^ '' + + "Created: / 18-08-2006 / 13:01:52 / cg" + "Modified: / 23-08-2006 / 09:48:11 / cg" +! + +generateExtensionLine_libInit_dot_cc + |mappings| + + ^self hasExtensionMethods + ifFalse:[''] + ifTrue:[ + 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: / 14-09-2006 / 14:19:59 / cg" +! ! + !LibraryDefinition class methodsFor:'file templates'! bc_dot_def @@ -394,110 +498,6 @@ "Modified: / 08-08-2006 / 19:33:14 / fm" ! ! -!LibraryDefinition class methodsFor:'mappings'! - -bc_dot_mak_mappings - |d resFileName| - - resFileName := (self package copyFrom:(self package lastIndexOfAny:':/')+1),'.res'. - - d := super bc_dot_mak_mappings. - d - at: 'LIBRARY_NAME' put: ( self libraryName ); - at: 'COMMONSYMFLAG' put: (self commonSymbolsFlag); - at: 'HEADEROUTPUTARG' put: (self headerFileOutputArg); - at: 'RESFILENAME' put: resFileName; - at: 'DEPENDENCIES' put: (self generateDependencies_win32); - yourself. - ^ d. - - "Created: / 09-08-2006 / 11:44:36 / fm" - "Modified: / 09-08-2006 / 20:00:01 / fm" - "Modified: / 14-09-2006 / 18:58:15 / cg" -! - -extensionLine_libInit_dot_cc_mappings - -^Dictionary new - at: 'LIBRARY_NAME' put: ( self st2c:(self package copy asString replaceAny:':/' with:$_) ); - yourself - - "Created: / 09-08-2006 / 11:19:59 / fm" - "Modified: / 14-09-2006 / 18:56:26 / cg" -! - -libInit_dot_cc_mappings - -^Dictionary new - at: 'LIBRARY_NAME' put: (self libraryName); - at: 'PACKAGE' put: (self package); - at: 'CLASSES' put: (self generateClassLines_libInit_dot_cc); - at: 'EXTENSION' put: (self generateExtensionLine_libInit_dot_cc); - - yourself - - "Created: / 09-08-2006 / 11:20:24 / fm" - "Modified: / 16-08-2006 / 18:19:03 / User" - "Modified: / 14-09-2006 / 18:56:42 / cg" -! - -vc_dot_def_mappings - -^Dictionary new - at: 'LIBRARY_NAME' put: (self libraryName); - at: 'DESCRIPTION' put: (self description asString storeString); - at: 'VERSION_NUMBER' put: (self versionNumber); - yourself - - "Created: / 09-08-2006 / 11:21:21 / fm" - "Modified: / 14-09-2006 / 18:58:07 / cg" -! ! - -!LibraryDefinition class methodsFor:'mappings support'! - -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" - - ( - #( - 'stx:libbasic' 'stx:libview' 'stx:libtool' - 'stx:libbasic2' 'stx:libview2' 'stx:libtool2' - 'stx:libbasic3' 'stx:libwidg' 'stx:libhtml' - 'stx:libcomp' 'stx:libwidg2' 'stx:libui' - 'stx:libboss' 'stx:libdb' - ) - includes:self package) ifTrue:[ - ^ '$(COMMONSYMBOLS)' - ]. - ^ '' - - "Created: / 18-08-2006 / 13:01:52 / cg" - "Modified: / 23-08-2006 / 09:48:11 / cg" -! - -generateExtensionLine_libInit_dot_cc - |mappings| - - ^self hasExtensionMethods - ifFalse:[''] - ifTrue:[ - 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: / 14-09-2006 / 14:19:59 / cg" -! ! - !LibraryDefinition class methodsFor:'misc ui support'! iconInBrowserSymbol @@ -570,15 +570,19 @@ canHaveExtensions "return true, if this class allows extensions from other packages. - Private classes, namespaces and projectDefinitions dont allow this" + Private classes, namespaces and projectDefinitions don't allow this" - ^ self == ApplicationDefinition + ^ self == LibraryDefinition " Smalltalk allClasses select:[:each | each canHaveExtensions not] " "Created: / 30-08-2006 / 15:29:53 / cg" +! + +projectType + ^ LibraryType ! ! !LibraryDefinition class methodsFor:'sanity checks'! @@ -613,6 +617,10 @@ !LibraryDefinition class methodsFor:'testing'! +isAbstract + ^ self == LibraryDefinition +! + isLibraryDefinition ^ self ~~ LibraryDefinition @@ -640,10 +648,11 @@ !LibraryDefinition class methodsFor:'documentation'! version - ^ '$Id: LibraryDefinition.st 10473 2009-10-24 15:48:19Z vranyj1 $' + ^ '$Id: LibraryDefinition.st 10477 2009-11-05 14:41:30Z vranyj1 $' ! version_CVS - ^ '§Header: /cvs/stx/stx/libbasic/LibraryDefinition.st,v 1.93 2009/10/12 17:26:27 cg Exp §' + ^ '$Id: LibraryDefinition.st 10477 2009-11-05 14:41:30Z vranyj1 $' ! ! +