stx_libtool2.st
author Claus Gittinger <cg@exept.de>
Fri, 19 Jul 2019 15:15:24 +0200
changeset 3707 f0fad0548be9
parent 3688 7f25d1987996
child 3786 30b4d8d63f81
permissions -rw-r--r--
#OTHER by cg initial checkin class: ShowMeHowItWorks added:28 methods class: ShowMeHowItWorks class added: #do: #doStream: #documentation #example

"
 COPYRIGHT (c) 1988 by Claus Gittinger / 2006 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libtool2' }"

"{ NameSpace: Smalltalk }"

LibraryDefinition subclass:#stx_libtool2
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'* Projects & Packages *'
!

!stx_libtool2 class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 1988 by Claus Gittinger / 2006 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
!

documentation
"
    Package documentation:

    This library contains additional advanced ST/X development tools.
    This includes new improved browser, additional analysis, monitoring and profiling tools,
    UI builders, better inspector, better filebrowser etc.

    Typically, these tools are not needed in end-user (standAlone) applications.

    [author:]
        cg

    [primary maintainer:]
        cg
"
! !

!stx_libtool2 class methodsFor:'description'!

excludedFromPreRequisites
    "list all packages which should be ignored in the automatic
     preRequisites scan. See #preRequisites for more."

    ^ #(
        #'stx:clients/Demos'    "WindowTreeView - referenced by FlyByWindowInformation>>keyPress:x:y:view: "
        #'stx:goodies/webServer'    "HTTPServer - referenced by UIPainter>>doInstallAsWebPage "
        #'exept:httpPortal'    "WebApplicationModel - referenced by UIPainter>>canInstallAsWebPage "
        #'stx:goodies/communication'    "HTTPInterface - referenced by ImageEditor>>doLoadFromURL "
        #'stx:libview3'    "LineSegmentMorph - referenced by UIObjectView class>>isHorizontalResizable: "
    )
!

mandatoryPreRequisites
    "list packages which are mandatory as a prerequisite.
     This are packages containing superclasses of my classes and classes which
     are extended by myself.
     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
     This method is generated automatically,
     by searching along the inheritance chain of all of my classes.
     Please take a look at the #referencedPreRequisites method as well."

    ^ #(
        #'stx:libbasic'    "Array - superclass of DataSetBuilder::Row"
        #'stx:libview'    "DisplaySurface - superclass of UIGalleryView"
        #'stx:libview2'    "ActiveHelp - superclass of FlyByWindowInformation"
        #'stx:libwidg'    "ListView - superclass of UIPainter::TreeView"
        #'stx:libwidg2'    "AbstractHierarchicalItem - superclass of MenuEditor::ActionItem"
    )
!

referencedPreRequisites
    "list packages which are a prerequisite, because they contain
     classes which are referenced by my classes.
     These packages are NOT needed as a prerequisite for compiling or loading,
     however, a class from it may be referenced during execution and having it
     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
     includes explicit checks for the package being present.
     This method is generated automatically,
     by searching all classes (and their packages) which are referenced by my classes.
     Please also take a look at the #mandatoryPreRequisites method"

    ^ #(
        #'stx:goodies/refactoryBrowser/parser'    "ParseTreeSearcher - referenced by Tools::InternationalLanguageTranslationEditor>>extractTranslationsFromHelpSpecMethod:"
        #'stx:libbasic2'    "ActorStream - referenced by Tools::ProjectBuilder>>buildWithColorizedOutputTo:"
        #'stx:libbasic3'    "AbstractSourceCodeManager - referenced by Tools::ProjectBuilderAssistantApplication>>checkSourceCodeManagerType"
        #'stx:libcomp'    "ObjectFileLoader - referenced by Tools::ObjectModuleInformation>>postBuildWith:"
        #'stx:libhtml'    "HTMLDocumentView - referenced by MethodFinderWindow>>openHTMLDocumentation"
        #'stx:libtool'    "AbstractLauncherApplication - referenced by Tools::ObjectModuleInformation>>loadPackage"
        #'stx:libui'    "DataSetColumnSpec - referenced by DataSetBuilder>>columns:"
    )
! !

!stx_libtool2 class methodsFor:'description - compilation'!

additionalBaseAddressDefinition_bc_dot_mak
    "this is an optional definition, which (if present) may speed up the dll-loading a little
     on win32 systems."

    ^ '
# see stdHeader_bc for LIBTOOL2_BASE
LIB_BASE=$(LIBTOOL2_BASE)
'
!

stcWarningOptions
    ^ '-warnNonStandard -warnUnused'
! !

!stx_libtool2 class methodsFor:'description - contents'!

classNamesAndAttributes
    "lists the classes which are to be included in the project.
     Each entry in the list may be: a single class-name (symbol),
     or an array-literal consisting of class name and attributes.
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."

    ^ #(
        "<className> or (<className> attributes...) in load order"
        ColorEditDialog
        DataSetBuilder
        DirectoryView
        FileVersionDiffBrowser
        FlyByWindowInformation
        ImageEditor
        MenuEditor
        MethodFinderWindow
        SelectionBrowser
        ShowMeHowItWorks
        TabListEditor
        #'Tools::InternationalLanguageTranslationEditor'
        #'Tools::ObjectModuleInformation'
        #'Tools::ProjectBuilder'
        #'Tools::ProjectBuilderAssistantApplication'
        UIGalleryView
        UIHelpTool
        UILayoutTool
        UIListEditor
        UIObjectView
        UIPainter
        UISelectionPanel
        UISpecificationTool
        #'stx_libtool2'
        FileSelectionBrowser
        ResourceSelectionBrowser
        UIPainterView
        (HierarchicalListEditor autoload)
        (MethodSelectionBrowser autoload)
        (ProjectBrowser autoload)
        (STXInstaller autoload)
        (ShellView autoload)
        (SnapShotImage autoload)
        (SnapShotImageMemory autoload)
        (#'Tools::NewInspectorList' autoload)
        (#'Tools::NewInspectorListView' autoload)
        (#'Tools::NewInspectorPanelView' autoload)
        (#'Tools::NewInspectorView' autoload)
        (#'Tools::ProjectDefinitionEditor' autoload)
        (#'Tools::ViewTreeInspectorApplication' autoload)
    )
!

extensionMethodNames
    "lists the extension methods which are to be included in the project.
     Entries are 2-element array literals, consisting of class-name and selector.
     A correponding method with real names must be present in my concrete subclasses
     if it has extensions."

    ^ #(
        Image edit
    )
! !

!stx_libtool2 class methodsFor:'description - project information'!

companyName
    "Return a companyname which will appear in <lib>.rc"

    ^ 'Claus Gittinger / eXept Software AG'

    "Modified: / 18-11-2016 / 11:48:00 / cg"
!

description
    "Return a description string which will appear in nt.def / bc.def"

    ^ 'Smalltalk/X Additional Tools'
!

legalCopyright
    "Return a copyright string which will appear in <lib>.rc"

    ^ 'Copyright Claus Gittinger 1988\nCopyright eXept Software AG 2012'

    "Modified: / 18-11-2016 / 12:18:55 / cg"
!

productName
    "Return a product name which will appear in <lib>.rc"

    ^ 'Smalltalk/X'
! !

!stx_libtool2 class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !