compiler/ctu_dart_compiler.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 04 Nov 2014 00:17:12 +0000
changeset 8 c2de4aaa2670
parent 7 cccc239c8833
child 10 5df5a2f8e4b5
permissions -rw-r--r--
Tests moved to separate sub-package named tests to follow convention.

"{ Package: 'ctu:dart/compiler' }"

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


!ctu_dart_compiler class methodsFor:'description'!

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

    ^ #(
    )
!

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:goodies/petitparser'    "PPCompositeParser - superclass of Dart::Parser"
        #'stx:libbasic'    "Error - superclass of Dart::ParserError"
    )
!

preRequisites
    "list all required packages.
     This list can be maintained manually or (better) generated and
     updated by scanning the superclass hierarchies and looking for
     global variable accesses. (the browser has a menu function for that)
     Howevery, often too much is found, and you may want to explicitely
     exclude individual packages in the #excludedFromPrerequisites method."

    ^ #(
        #'stx:libbasic'    "LibraryDefinition - superclass of jv_dart "
    )
!

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 loading or compiling.
     This method is generated automatically,
     by searching all classes (and their packages) which are referenced by my classes."

    ^ #(
        #'stx:libcomp'    "ParserFlags - referenced by Dart::ScannerBase>>initialize"
    )
!

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

    ^ #(
        #'ctu:dart/compiler/tests'
    )
! !

!ctu_dart_compiler 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"
        #'Dart::Parser'
        #'Dart::ParserError'
        #'Dart::ScannerBase'
        #'ctu_dart_compiler'
        #'Dart::Scanner'
        #'Dart::ScannerError'
        #'Dart::SyntaxError'
    )
!

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

    ^ #(
    )
! !

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

applicationIconFileName
    "Return the name (without suffix) of an icon-file (the app's icon); will be included in the rc-resource file"

    ^ nil
    "/ ^ self applicationName
!

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

    ^ 'My Company'
!

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

    ^ 'Class Library'
!

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

    ^ 'My CopyRight or CopyLeft'
!

productInstallDirBaseName
    "Returns a default installDir which will appear in <app>.nsi.
     This is usually not the one you want to keep"

    ^ (self package asCollectionOfSubstringsSeparatedByAny:':/') last
!

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

    ^ 'ProductName'
! !

!ctu_dart_compiler class methodsFor:'documentation'!

version_HG

    ^ '$Changeset: <not expanded> $'
! !