Seite 1 von 1

Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Sa, 11. Mär 2017 13:32
von DelUser01
Hallo

Ich müsste in der Workbench Projekte miteinander koppeln.
Habe einige Einzelprojekte welche eine oder mehrere DLLs erzeugen. Vereinfacht gesagt werden die Funktionen projektübergreifend "kreuz und quer" untereinander verwendet. Ich denke Ihr kennt das.
Unter anderem um debuggen können müsste die Workbench die Zusammenhänge kennen.
Z.B. könnte die Workbench alle eingetragenen Projekte als übergeordnetes Projekt selbst zusammenfassen. Und damit würde die Workbench alle PRGs usw. kennen und verwalten. Dann könnte das schon erledigt sein.

Vor einiger Zeit ging das nicht - vielleicht geht es inzwischen und ich habe die Info verpasst?

Bisher verwende ich die Workbench nur für kleine Tools/Testprogramme.

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Sa, 11. Mär 2017 13:42
von Jan
Roland,

wenn Du ein Programm debugst, dessen Code in einer per #pragma eingebauten dll ausführt, wird diese dll ebenfalls mit debuggt. Die entsprechende prg wird dann währnde des debuggens in der Workbench mit angezeigt.

Jan

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Sa, 11. Mär 2017 13:46
von Manfred
wird sie denn auch in der WB automatisch mit geladen in den Editor? In der VX ist das nicht der Fall. Da kommt erst rein, was auch per Einzelschrittmodus abgearbeitet wird.

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Sa, 11. Mär 2017 13:50
von DelUser01
Hallo Jan

da mit #Pragma hbae ich noch nicht probiert.
Müsste ich da jede verwendete LIB inden Kopf jeder PRG eintragen?

Über #Include wäre das ja gar nicht so aufwendig.

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Sa, 11. Mär 2017 13:52
von Jan
Manfred,

nein, genau so.

Aber man kann natürlich eine dll als Target mit in ein Projekt einbinden. Das ging aber auch schon in der VX. Dann hat man immer alles zusammen.

Ich selber mach das aber teilweise auch, das ich enie einzelne prg in mehrere Projekte enibinde. Z. B. die dbesys oder errorsys. Die liegt dann nur an einer Stelle, aber wird von allen benötigten Projekten genutzt.

Jan

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Sa, 11. Mär 2017 13:54
von Jan
Roland,

das mach ich eigntlich immer so: Alles was ich in einem Projekt so brauch wird in eine Projekt-ch eingebaut. Alle #include und alle #pragma. Dann muß ich nur diese eine Projekt-ch in alle prg einbauen, und hab immer alles automatisch dabei. Alles andere ist mir ehrlich gesagt viel zu mühsam und kompliziert.

Jan

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Sa, 11. Mär 2017 13:57
von DelUser01
Jan

so ähnlich habe ich das auch gemacht, nur bisher one die #Pragma.
Es hat halt bisher gereicht wenn die LIB+DLL usw. in der XPJ drin sind.

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Sa, 11. Mär 2017 14:05
von DelUser01
Jan hat geschrieben:das ich enie einzelne prg in mehrere Projekte enibinde. Z. B. die dbesys oder errorsys. Die liegt dann nur an einer Stelle, aber wird von allen benötigten Projekten genutzt.
Genau um das ghet es mir. So gesehen müssten dann alle Inhalte von PRGs - bis auf die main.prg welche die EXE erstellen - als "Zentral" betrachtet werden.
Dann wüde das klappen - nicht nur im Kopf sondern auch mit der Workbench :-)

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: So, 12. Mär 2017 16:23
von DelUser01
Hallo Jan

zu den #Pragma in der hauptprojekt.ch:

Dann muss ich einfach alle LIB aus allen project.xpj in die hauptprojekt.ch kopieren?

Das klärt dann aber noch nicht Manfreds Zweifel daran, woher die Workbench dann z.B. beim Einzelschrittmodus die Quelldateien kennen soll.
Es sei denn dass in der LIB auch der PRG-Quelldateiname inkl. Pfad beim Compilieren eingetragen wird.

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: So, 12. Mär 2017 21:54
von AUGE_OHR
hi,

ob man #Pragma verwendet oder die LIB im *.XPJ einbindet ist IMHO egal.
man sollte nur dafür sorgen das die LIB dann auch im "Zugriff" (SET LIB= ) ist.

Code: Alles auswählen

[PROJECT.XPJ]
    C:\ALASKA\XPPW32\LIB\DXE.DLL

[C:\ALASKA\XPPW32\LIB\DXE.DLL]
    COMPILE_FLAGS = /dll:dynamic /n /q /w /o\OBJ\
// $START-AUTODEPEND
    C:\ALASKA\XPPW32\LIB\DXE.DEF
    ... hier die *.OBJ
// $STOP-AUTODEPEND
    D:\ALASKA\NATIVE\PROGRESS\DXE_PBAR.PRG
    ... weiter *.PRG mit Path
    OT4XB.LIB
das PROJECT.XPJ liegt im Source Directory und die DLL / LIB kommt bei mir zu den anderen Xbase++ Sachen.

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: So, 12. Mär 2017 23:04
von DelUser01
Hallo Jim,my
AUGE_OHR hat geschrieben:ob man #Pragma verwendet oder die LIB im *.XPJ einbindet ist IMHO egal
Das ist soweit ja OK und funktioniert.
Auf die herkömmliche Weise compilieren mit pbuild geht - ebenso mit der Workbench.

Nur die Workbench sieht eben nicht alle meine PRGs die in dem (beispielhaften) Hauptprojekt per LIB eingebunden sind. Die LIBs sind auch von mir, nur über andere Projekte erstellt.

Aber darum geht es mir ja: die Workbench soll auch dijenigen PRGs sehen und in den Editor laden können die in den Unterprojekten verteilt sind.

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Mo, 13. Mär 2017 0:05
von AUGE_OHR
Roland Gentner hat geschrieben:Aber darum geht es mir ja: die Workbench soll auch dijenigen PRGs sehen und in den Editor laden können die in den Unterprojekten verteilt sind.
hm ... du meinst jetzt auf der linken Seite im Project Fenster ...

beim Debuggen wird doch jedes PRG mit einem TAB geladen.
Dort hat man auch Zugriff auf "andere" PRG die aus einer eigenen LIB stammen.
leider speichert die Workbench den "Zustand" nicht ab (TABs mit den PRG, letzte Datei/Zeile)

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Mo, 13. Mär 2017 0:28
von DelUser01
Also...

beispielsweise habe ich folgende Projekte:

Programmsammlung 1 - Sammlung 1:
c:\Xbase++\Sammlung1\project.xpj
c:\Xbase++\Sammlung1\druckvorschau.prg
-> c:\Xbase++\Exe\sammlung1.lib
-> c:\Xbase++\Exe\sammlung1.dll

Teilprojekt 1 - Adressen:
c:\Xbase++\Adressen\project.xpj (sammlung1.lib steht drin)
c:\Xbase++\Adressen\auswertung.prg
-> c:\Xbase++\Exe\adressen.lib
-> c:\Xbase++\Exe\adressen.dll
-> c:\Xbase++\Exe\adressen.exe


Hauptprojekt 1 - WWS:
c:\Xbase++\wws\project.xpj (sammlung1.dll + adressen.lib stehen drin)
c:\Xbase++\wws\rechnungen.prg
-> c:\Xbase++\Exe\wws.lib
-> c:\Xbase++\Exe\wws.dll
-> c:\Xbase++\Exe\wws.exe

Jedes Projekt für sich in die Workbench geladen funktioniert.
Lade ich das Teilprojekt Adressen komme ich nicht auf die PRGs der Sammlung 1.
Lade ich das Projekt WWS komme ich nicht auf die PRGs der Sammlung 1 oder Adressen.

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Mo, 13. Mär 2017 5:37
von AUGE_OHR
OK ... ich sehe was du willst ...
du möchtest DLL "Module" haben die du einzel ausliefen kannst.
zum erstellen liegt in jedem Verzeichniss jeweils eine XPJ Datei.

nun weiss ich keine XPJ "Lösung" welche Workbench dazu bringt.
aber überlege mal eine andere "Work" Lösung ...

angenommen du hast 10 Verzeichnisse -> 11 x DLL/LIB !
du machst dir eine 11th "Work" DLL/LIB welche alles enthält ...

Re: Hauptprojekt mit untergeordneten Projekten koppeln?

Verfasst: Mo, 13. Mär 2017 11:40
von DelUser01
Hallo Jimmy

das würde vermutlich schon gehen, alle project.xpj in einem neuen xpj zusammenzufassen.
Dann müsste ich immer aufpassen, dass ich Änderungen in den einzelnen xpj auch in der zusammengefassten xpj mache.
Das Ergebnis des Compilierens wäre vermutlich dasselbe wie bei den Einzelprojekten.
Nur könnte ich mir vorstellen, dass dann die einzelnen Teile (DLL/EXE) nicht mehr getrennt schnell compilierbar sind sondern immer nur die gesamte project.xpj. Und das wäre viel Zeugs und dauert lange.

Sollte es aber nicht anders gehen wäre es hier das Einfachste, wenn man sich dann ein Tool programmiert, welches das Zusammenkopieren der XPJs zu einer neuen project.xpj erledigt.
Das ist doch dann so eine übergeordnete Funktion welche ich in der Workbench suche.