FolderForProjectsDefinition.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 20:55:17 +0200
changeset 24417 03b083548da2
parent 23857 4f6b0998041f
permissions -rw-r--r--
#REFACTORING by exept class: Smalltalk class changed: #recursiveInstallAutoloadedClassesFrom:rememberIn:maxLevels:noAutoload:packageTop:showSplashInLevels: Transcript showCR:(... bindWith:...) -> Transcript showCR:... with:...

"{ Encoding: utf8 }"

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

"{ NameSpace: Smalltalk }"

ProjectDefinition subclass:#FolderForProjectsDefinition
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'System-Support-Projects'
!

!FolderForProjectsDefinition class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2014 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.
"
! !

!FolderForProjectsDefinition class methodsFor:'code generation'!

forEachContentsMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
    "generate code for each contents-specifying method
     (classesAndAttributes, extensionMethodNames, etc.),
     and evaluate aTwoArgBlock on it, passing in the code and the method's category.
     If ignoreOldDefinition is true, new code is generated (class/method scan);
     otherwise, new items are added to the existing lists"

    "/ JV:  No, subProjects **should not** be automatically generated.
    "/      Remember, they are not required to be loaded!! So, generate
    "/      subProjects only if there's no such method yet.
    (self class methodDictionary includesKey: #subProjects) ifFalse:[
        aTwoArgBlock
            value: self subProjects_code
            value: 'description'.
    ].
!

forEachDescriptionMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
    "generate code for each description-specifying method"

    "/ intentionally left blank
! !

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

productType
    "Returns the product type for autopackage"

    ^ 'Folder'
! !

!FolderForProjectsDefinition class methodsFor:'file templates'!

bc_dot_mak
    "answer a template for the bc.mak makefile.
     Any variable definition %(Variable) will be later replaced by the mapping.
     $% characters have to be duplicated"

^
'# $','Header','$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: ',self name",' at ',Timestamp now printString",'.
#
# Warning: once you modify this file, do not rerun
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
#
# Notice, that the name bc.mak is historical (from times, when only borland c was supported).
# This file contains make rules for the win32 platform using either borland-bcc or visual-c.
# It shares common definitions with the unix-make in Make.spec.
# The bc.mak supports the following targets:
#    bmake         - compile all st-files to a classLib (dll)
#    bmake clean   - clean all temp files
#    bmake clobber - clean all
#
# Historic Note:
#  this used to contain only rules to make with borland
#    (called via bmake, by "make.exe -f bc.mak")
#  this has changed; it is now also possible to build using microsoft visual c
#    (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
#
TOP=%(TOP)
MODULE_PATH=%(MODULE_PATH)
INCLUDE_TOP=$(TOP)\..

!!INCLUDE $(TOP)\rules\stdHeader_bc

!!INCLUDE Make.spec

%(ADDITIONAL_DEFINITIONS)

OBJS=

ALL:: %(ADDITIONAL_TARGETS) 

!!INCLUDE $(TOP)\rules\stdRules_bc

# build all mandatory prerequisite packages (containing superclasses) for this package
prereq:
%(MAKE_PREREQUISITES)


%(ADDITIONAL_RULES)

%(ADDITIONAL_HEADERRULES)

test: $(TOP)\goodies\builder\reports\
        pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
        $(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)

clean::
        -del *.$(CSUFFIX)

%(ADDITIONAL_RULES_HG)'
!

make_dot_proto

^
'# $','Header','$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: ',self name",' at ',Timestamp now printString",'.
#
# Warning: once you modify this file, do not rerun
# 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 clean   - clean all temp files
#    make clobber - clean all
#
#    export MAKE_ARGS=-j4 ; make
#
# This file contains definitions for Unix based platforms.
# It shares common definitions with the win32-make in Make.spec.

#
# position (of this package) in directory hierarchy:
# (must point to ST/X top directory, for tools and includes)
TOP=%(TOP)
INCLUDE_TOP=$(TOP)/..

# subdirectories where targets are to be made:
SUBDIRS=%(SUBDIRECTORIES)


# subdirectories where Makefiles are to be made:
# (only define if different from SUBDIRS)
# ALLSUBDIRS=

REQUIRED_SUPPORT_DIRS=%(REQUIRED_SUPPORT_DIRS)

# ********** OPTIONAL: MODIFY the next line ***
# additional C targets or libraries should be added below
LOCAL_EXTRA_TARGETS=

OBJS=

%(ADDITIONAL_DEFINITIONS)

all:: preMake %(PRIMARY_TARGET) postMake

pre_objs:: %(ADDITIONAL_TARGETS) %(ADDITIONAL_TARGETS_SVN)

%(ADDITIONAL_RULES)

%(ADDITIONAL_RULES_SVN)

%(ADDITIONAL_RULES_HG)

%(ADDITIONAL_HEADERRULES)

# run default testsuite for this package
test: $(TOP)/goodies/builder/reports
        $(MAKE) -C $(TOP)/goodies/builder/reports -f Makefile.init
        $(TOP)/goodies/builder/reports/report-runner.sh -D . -r Builder::TestReport -p $(PACKAGE)



# add more install actions here
install::

# add more install actions for aux-files (resources) here
installAux::

# add more preMake actions here
preMake::

# add more postMake actions here
postMake:: cleanjunk

# build all mandatory prerequisite packages (containing superclasses) for this package
prereq:
%(MAKE_PREREQUISITES)

# build all packages containing referenced classes for this package
# they are not needed to compile the package (but later, to load it)
references:
%(MAKE_REFERENCES)

cleanjunk::
%(TAB)-rm -f *.s *.s2

clean::
%(TAB)-rm -f *.$(O) *.$(H)

clobber:: clean
%(TAB)-rm -f *.so *.dll

',
"
$(INSTALLBASE)::
%(TAB)@test -d $@ || mkdir $@

$(INSTALLBASE)/packages:: $(INSTALLBASE)
%(TAB)@test -d $@ || mkdir $@

$(INSTALLBASE)/packages/$(MODULE):: $(INSTALLBASE)/packages
%(TAB)@test -d $@ || mkdir $@

$(INSTALLBASE)/packages/$(MODULE)/$(MODULE_DIR):: $(INSTALLBASE)/packages/$(MODULE)
%(TAB)@test -d $@ || mkdir $@
"
'
'

    "Modified: / 08-03-2019 / 12:16:52 / Claus Gittinger"
!

make_dot_spec

^
'# $','Header','$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: ',self name,"' at ',Timestamp now printString,"'.
#
# Warning: once you modify this file, do not rerun
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
#
# This file contains specifications which are common to all platforms.
#

# 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)
PACKAGE=$(MODULE):$(MODULE_DIR)
'
! !

!FolderForProjectsDefinition class methodsFor:'queries'!

isAbstract
    ^ self == FolderForProjectsDefinition
!

isFolderForProjectsDefinition
    ^ self isAbstract not
!

projectType
    ^ FolderForSubApplicationsType
! !

!FolderForProjectsDefinition class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !