jv_llvm_s.st
changeset 12 f98e97fd02ef
parent 8 890eb7591eca
child 14 c7dea3fcc5a7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jv_llvm_s.st	Fri Jul 31 16:21:29 2015 +0100
@@ -0,0 +1,159 @@
+"{ Package: 'jv:llvm_s' }"
+
+"{ NameSpace: Smalltalk }"
+
+LibraryDefinition subclass:#jv_llvm_s
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'* Projects & Packages *'
+!
+
+
+!jv_llvm_s class methodsFor:'description'!
+
+excludedFromPreRequisites
+    "list packages which are to be explicitely excluded from the automatic constructed
+     prerequisites list. If empty, everything that is found along the inheritance of any of
+     my classes is considered to be a prerequisite package."
+
+    ^ #(
+    )
+!
+
+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 - superclass of LLVMObjectArray"
+    )
+!
+
+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."
+
+    ^ #(
+    )
+!
+
+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."
+
+    ^ #(
+    )
+! !
+
+!jv_llvm_s 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"
+        LLVM
+        LLVMAtomicOrdering
+        LLVMAtomicRMWBinOp
+        LLVMAttribute
+        LLVMByteOrdering
+        LLVMCallConv
+        LLVMDLLStorageClass
+        LLVMDiagnosticSeverity
+        LLVMExamples
+        LLVMIntPredicate
+        LLVMLandingPadClauseTy
+        LLVMLinkage
+        LLVMObject
+        LLVMObjectArray
+        LLVMOpcode
+        LLVMRealPredicate
+        LLVMThreadLocalMode
+        LLVMTypeKind
+        LLVMVerifierFailureAction
+        LLVMVisibility
+        #'jv_llvm_s'
+        LLVMBasicBlock
+        LLVMContext
+        LLVMDiagnosticInfo
+        LLVMDisposableObject
+        LLVMMCJITCompilerOptions
+        LLVMPassRegistry
+        LLVMTargetLibraryInfo
+        LLVMType
+        LLVMUse
+        LLVMValue
+        LLVMBuilder
+        LLVMExecutionEngine
+        LLVMFunction
+        LLVMGenericValue
+        LLVMMCJITMemoryManager
+        LLVMModule
+        LLVMModuleProvider
+        LLVMPassManager
+        LLVMTargetData
+        LLVMStXMethod
+    )
+!
+
+extensionMethodNames
+    "list class/selector pairs of extensions.
+     A correponding method with real names must be present in my concrete subclasses"
+
+    ^ #(
+        SequenceableCollection asLLVMObjectArray
+    )
+! !
+
+!jv_llvm_s class methodsFor:'description - project information'!
+
+companyName
+    "Returns a company string which will appear in <lib>.rc.
+     Under win32, this is placed into the dlls file-info"
+
+    ^ 'My Company'
+!
+
+description
+    "Returns a description string which will appear in nt.def / bc.def"
+
+    ^ 'Class Library'
+!
+
+legalCopyright
+    "Returns a copyright string which will appear in <lib>.rc.
+     Under win32, this is placed into the dlls file-info"
+
+    ^ 'My CopyRight or CopyLeft'
+!
+
+productName
+    "Returns a product name which will appear in <lib>.rc.
+     Under win32, this is placed into the dlls file-info.
+     This method is usually redefined in a concrete application definition"
+
+    ^ 'LibraryName'
+! !
+
+!jv_llvm_s class methodsFor:'documentation'!
+
+version_HG
+    ^ '$Changeset: <not expanded> $'
+! !
+