stx_libview2.st
author Claus Gittinger <cg@exept.de>
Sat, 12 May 2018 14:23:45 +0200
changeset 4088 bbf9b58f99c8
parent 3916 c42311c324e6
child 4138 6300b7e324a4
permissions -rw-r--r--
#FEATURE by cg class: MIMETypes class changed: #initializeFileInfoMappings class: MIMETypes::MIMEType added: #asMimeType #isCHeaderType #isCPPSourceType #isCSourceType

"
 COPYRIGHT (c) 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:libview2' }"

"{ NameSpace: Smalltalk }"

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

!stx_libview2 class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 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 graphics-interfacing components and infrastructure.
    This includes support classes for the applicationModel framework, and readers/writers
    for various bitmap image file formats (PNG, GIF, TIFF, etc.)

    As with libview, this does not contain widget classes or applications/tools.

    [author:]
        cg

    [primary maintainer:]
        cg
"
! !

!stx_libview2 class methodsFor:'description'!

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

    ^ #(
	#'stx:goodies/webServer'    "HTTPServer - referenced by ApplicationModel>>initializeWebServiceDevice "
	#'exept:httpPortal'    "HTTPPortalService - referenced by ApplicationModel class>>startAsWebService:onPort: "
	#'stx:libwidg'    "Label - referenced by ActiveHelpView>>contents: "
	#'stx:libwidg2'    "LabelAndIcon - referenced by MenuItem>>labelImage: "
	#'stx:libtool'    "AboutBox - referenced by ToolApplicationModel>>xxopenAboutThisApplication "
	#'stx:libtool2'    "ImageEditor - referenced by ResourceSpecEditor>>doEditImage "
	#'stx:libcompat'    "TextAttributes - referenced by WindowBuilder>>resolveFont: "
	#'stx:libhtml'    "HTMLDocumentView - referenced by ApplicationModel>>openDocumentationFile: "
    )
!

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."

    ^ #(
        #'stx:libbasic'    "ArrayedCollection - extended"
        #'stx:libbasic2'    "PrinterStream - superclass of WinPrinterStream"
        #'stx:libview'    "Color - superclass of ColorValue"
    )
!

referencedPreRequisites
    "list packages which are a prerequisite, because they contain
     classes which are referenced by my classes.
     We do not need these packages 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."

    ^ #(
        #'stx:libui'    "ComponentSpec - referenced by UIBuilder>>add:"
    )
!

subProjects
    "list packages which are known as subprojects.
     The generated makefile will enter those and make there as well.
     However: they are not forced to be loaded when a package is loaded;
     for those, redefine requiredPrerequisites"

    ^ #(
    )
! !

!stx_libview2 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 LIBVIEW2_BASE
LIB_BASE=$(LIBVIEW2_BASE)
'
!

additionalDefinitions_bc_dot_mak
    ^ '
# LIBJPEG_DIR=$(TOP)\support\libjpeg-6a
LIBJPEG_DIR=$(TOP)\support\libjpeg-9

!!if defined(USEMINGW32) || defined(USEMINGW64)
LIBJPEG=$(LIBJPEG_DIR)\$(OBJDIR)\libjpeg.a
!!else
LIBJPEG=$(LIBJPEG_DIR)\$(OBJDIR)\libjpeg.lib
!!endif

CLOCAL_INCL=-I"$(LIBJPEG_DIR)"
'

    "Created: / 22-08-2006 / 23:58:05 / cg"
!

additionalLinkLibraries_bc_dot_mak
    ^ '$(LIBJPEG)'
!

additionalLinkLibraries_make_dot_proto
    ^ '$(JPEGLIB_LD_ARG)'
!

additionalRules_bc_dot_mak
    ^ '
$(LIBJPEG):
	cd $(LIBJPEG_DIR)
	$(MAKE_BAT)
	cd ..\..\libview2

$(OUTDIR)JPEGReader.$(O):: $(LIBJPEG_DIR)\jconfig.h

$(LIBJPEG_DIR)\jconfig.h: $(LIBJPEG)
'

    "Created: / 22-08-2006 / 23:58:29 / cg"
!

additionalRules_make_dot_proto
    ^ '

libjpeg: $(LIBJPEG_DIR)/Makefile
	cd $(LIBJPEG_DIR); $(MAKE) $(MAKE_JPEGLIB_ARG)

#
# prelink JPEGReader.o with libjpeg
#
JPEGReader_prelinked: $(LIBJPEG)
	@$(MAKE) JPEGReader.$(O) \
		CC="$(LIBJPEG_CC)" \
		OPT="$(LIBJPEG_OPT)" \
		LOCALDEFS="-I$(LIBJPEG_DIR)" \
		LIBNAME="$(LIBNAME)" \
		STCOPT="$(STCOPT)" \
		STCLOCALOPT="$(STCLOCALOPT)" \
		CCLOCALOPT="$(CCLOCALOPT)" \
		LINKOBJRULE="$(LINKOBJRULE)"
	@if [ "$(NO_PRELINK_LIBJPEG)" = "" ]; then \
	    echo; \
	    echo "prelinking JPEGReader with libjpeg ..."; \
	    echo; \
	    echo $(CLASSLIB_LD) $(LD_REL_FLAG) -o JPEGReader.$(O) __JPEGReader.$(O) $(LIBJPEG); \
	    mv JPEGReader.$(O) __JPEGReader.$(O) && \
	    $(CLASSLIB_LD) $(LD_REL_FLAG) -o JPEGReader.$(O) __JPEGReader.$(O) $(LIBJPEG) && \
	    rm -f __JPEGReader.$(O); \
	    echo; \
	fi

$(LIBJPEG_DIR)/libjpeg.a: $(LIBJPEG_MAKE_LIB)
	cp $(LIBJPEG_MAKE_LIB)/.libs/libjpeg.a $(LIBJPEG)

#the following is needed for linux; LIBJPEG_MAKE_LIB is expanded to: $(LIBJPEG_DIR)/.libs/libjpeg.a
#do not replace taget below by LIBJPEG_MAKE_LIB, because it may be empty for other systems (osx)
$(LIBJPEG_DIR)/.libs/libjpeg.a: $(LIBJPEG_DIR)/Makefile $(LIBJPEG_DIR)/*.c $(LIBJPEG_DIR)/*.h
	@-echo
	@-echo "making libjpeg support library ..."
	@-echo
	cd $(LIBJPEG_DIR) \
	    && $(MAKE) all CC="$(LIBJPEG_CC)" OPT="$(LIBJPEG_OPT)" CFLAGS="$(LIBJPEG_OPT) $(CCCONFOPT)"
	@-echo

$(LIBJPEG_DIR)/Makefile:
	@-echo
	@-echo "configure libjpeg support library ..."
	@-echo
	cd $(LIBJPEG_DIR) && ./configure CC="$(LIBJPEG_CC)" OPT="$(LIBJPEG_OPT)" CFLAGS="$(LIBJPEG_OPT) $(CCCONFOPT)"'

    "Created: / 22-08-2006 / 23:58:51 / cg"
!

additionalTargets_bc_dot_mak
    "additional targets to be added to the nt.mak file."

    ^ '$(LIBJPEG)'

    "Created: / 23-08-2006 / 00:01:19 / cg"
!

additionalTargets_make_dot_proto
    "additional targets to be added to the make.proto file."

    ^ '$(JPEGLIB_MAKE_TARGET) $(JPEGREADER_PRELINKED)'

    "Created: / 22-08-2006 / 23:54:37 / cg"
!

localIncludes
    ^ '$(JPEG_INCLUDE)'
!

stcOptimizationOptions
    ^ '+optinline'

    "Created: / 23-08-2006 / 11:27:11 / cg"
!

stcWarningOptions
    ^ '-warnNonStandard -warnUnused'
! !

!stx_libview2 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"
        ActiveHelpView
        ApplicationSubView
        ApplicationWindow
        ColorValue
        DisplayObject
        DragAndDropManager
        DragHandler
        DrawAdaptor
        DropContext
        DropObject
        DropSource
        DropTarget
        EventListener
        ExternalTopView
        GIFReader
        Icon
        ImageFrame
        ImageSequence
        InputView
        JPEGReader
        KeyboardProcessor
        Layout
        MIMETypeIconLibrary
        MIMETypes
        MacOSXIconReader
        MenuItem
        Model
        MultiImage
        PNGReader
        PopUpBanner
        PrintConverter
        PrinterContext
        PropertyListDictionary
        ResourceRetriever
        StandardSystemController
        TIFFReader
        TransparentBox
        VisualRegion
        WindowBuilder
        WindowsIconReader
        XBMReader
        XPMReader
        #'stx_libview2'
        ActiveHelp
        ApplicationModel
        LayoutOrigin
        Menu
        Plug
        PluggableEventListener
        ScreenLock
        UIBuilder
        ValueModel
        VisualComponent
        AlignmentOrigin
        ApplicationWithFileHistory
        BlockValue
        FlyByHelp
        IndirectValue
        LayoutFrame
        PluggableAdaptor
        ProtocolAdaptor
        SimpleDialog
        ToolApplicationModel
        ValueHolder
        VisualPart
        AspectAdaptor
        BooleanBlockValue
        BooleanValueHolder
        BufferedValueHolder
        DictionaryAdaptor
        RangeAdaptor
        ResourceSpecEditor
        TriggerValue
        TypeConverter
        ValueHolderWithRememberedPreviousValue
        ValueHolderWithWeakDependents
        AspectAdaptorWithDefault
        (WinPrinterStream win32)
        (WinPrinterContext win32)
        (AVIReader autoload)
        (ApplicationController autoload)
        (BlitImageReader autoload)
        (BorderedWrapper autoload)
        (BoundedWrapper autoload)
        (CompositePart autoload)
        (CompositeTransform autoload)
        (ConvertedValue autoload)
        (DependentPart autoload)
        (FLIReader autoload)
        (FaceReader autoload)
        (FillingWrapper autoload)
        (GeometricWrapper autoload)
        (HersheyFont autoload)
        (Insets autoload)
        (IrisRGBReader autoload)
        (LayoutWrapper autoload)
        (MatrixTransform2x3 autoload)
        (PBMReader autoload)
        (PCXReader autoload)
        (PICTReader autoload)
        (PluggableView autoload)
        (RIFFReader autoload)
        (ST80FormReader autoload)
        (StrokingOrFillingWrapper autoload)
        (StrokingWrapper autoload)
        (SunRasterReader autoload)
        (TargaReader autoload)
        (TranslatingWrapper autoload)
        (ViewForwardingController autoload)
        (Wrapper autoload)
        (XWDReader autoload)
        (WBMPReader autoload)
    )
!

extensionMethodNames
    "list class/selector pairs of extensions.
     A correponding method with real names must be present in my concrete subclasses"

    ^ #(
        CharacterArray asMimeType
    )
! !

!stx_libview2 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:47:52 / cg"
!

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

    ^ 'Smalltalk/X Additional Graphic Interfacing'
!

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

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

    "Modified: / 18-11-2016 / 12:19:10 / cg"
!

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

    ^ 'Smalltalk/X'
! !

!stx_libview2 class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !