jv_libgdbs.st
changeset 271 b3d47d1cb55d
parent 268 169c27beba3d
child 272 cdd1c9ad00de
--- a/jv_libgdbs.st	Mon Jul 24 14:26:03 2023 +0100
+++ b/jv_libgdbs.st	Mon Jul 24 14:35:24 2023 +0100
@@ -2,7 +2,7 @@
 jv:libgdbs - GNU Debugger Interface Library
 Copyright (c) 2014-2020 Jan Vrany.
 Copyright (C) 2020 LabWare
-Copyright (C) 2022 LabWare
+Copyright (C) 2022-2023 LabWare
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the 'Software'), to deal
@@ -40,7 +40,7 @@
 jv:libgdbs - GNU Debugger Interface Library
 Copyright (c) 2014-2020 Jan Vrany.
 Copyright (C) 2020 LabWare
-Copyright (C) 2022 LabWare
+Copyright (C) 2022-2023 LabWare
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the 'Software'), to deal
@@ -102,7 +102,10 @@
      Please also take a look at the #mandatoryPreRequisites method"
 
     ^ #(
+        #'stx:goodies/monticello'    "MCPackage - referenced by jv_libgdbs class>>generateSource4Pharo"
+        #'stx:goodies/monticello/tonel'    "TonelRepository - referenced by jv_libgdbs class>>generateSource4Pharo"
         #'stx:libbasic2'    "List - referenced by GDBDebugger>>breakpoints"
+        #'stx:libbasic3'    "PharoSourceExporter - referenced by jv_libgdbs class>>generateSource4Pharo"
         #'stx:libtool'    "Tools::Inspector2Tab - referenced by GDBBreakpoint>>inspector2TabCondition"
         #'stx:libwidg'    "EditTextView - referenced by GDBBreakpoint>>inspector2TabCondition"
     )
@@ -371,7 +374,6 @@
         #'Magritte::MAToManyRelationDescription' allowOmmitedBrackets
         #'Magritte::MAToManyRelationDescription' allowOmmitedBrackets:
         'Magritte::MAToManyRelationDescription class' defaultAllowOmmitedBrackets
-        SubscriptionCollection value:
         Filename cygName
         'Filename class' cygNamed:
         ByteArray pythonOn:
@@ -385,6 +387,14 @@
     )
 ! !
 
+!jv_libgdbs class methodsFor:'description - monticello'!
+
+monticelloName
+    ^ 'LibGDBs'
+
+    "Created: / 11-07-2023 / 11:07:34 / Jan Vrany <jan.vrany@labware.com>"
+! !
+
 !jv_libgdbs class methodsFor:'description - project information'!
 
 companyName
@@ -423,6 +433,56 @@
     "Modified: / 23-11-2017 / 22:47:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!jv_libgdbs class methodsFor:'utilities'!
+
+generateSource4Pharo
+    | directory repository exporter |
+
+    directory := (Smalltalk getPackageDirectoryForPackage: self package) / 'ports' / 'pharo' / 'src-generated'.
+    directory exists ifFalse: [ directory makeDirectory ].
+
+    repository := TonelRepository new directory: directory.
+
+    exporter := PharoSourceExporter new.
+    exporter klassMap 
+        at: UserPreferences name put: UndefinedObject name;
+        at: ApplicationModel name put: UndefinedObject name;
+        at: TTYConstants name put: UndefinedObject name;
+        at: Filename name put: #FileReference;
+        at: Subscription name put: #AnnouncementSubscription;
+        at: StrongSubscription name put: #AnnouncementSubscription;
+        at: List name put: #OrderedCollection;
+        yourself.
+
+
+    #( #'jv:libgdbs' #'jv:libgdbs/tests' ) do: [:packageName | 
+        | mcpkg mcwc mcvi mcversion |
+
+        Smalltalk loadPackage: packageName.
+
+        mcpkg := MCPackage named: packageName.
+        mcwc := mcpkg workingCopy.
+        mcvi := MCVersionInfo forPackage: packageName.
+        [
+            mcversion := mcwc newVersion.
+            mcversion snapshot options 
+                exporter: exporter;    
+                includeExtrasForSTX:false.
+        ] on:MCVersionNameAndMessageRequest do:[:ex | 
+            ex resume:(Array with:mcvi name with:mcvi message) 
+        ].
+        mcversion info:mcvi.
+        repository storeVersion:mcversion. 
+    ].
+
+    "
+    jv_libgdbs generateSource4Pharo
+    "
+
+    "Created: / 19-09-2022 / 19:15:11 / Jan Vrany <jan.vrany@labware.com>"
+    "Modified: / 14-07-2023 / 16:43:21 / Jan Vrany <jan.vrany@labware.com>"
+! !
+
 !jv_libgdbs class methodsFor:'documentation'!
 
 version_HG