KDevelop5/Handbuch/Sitzungen und Projekte

    From KDE UserBase Wiki
    Revision as of 14:04, 9 September 2017 by Claus chr (talk | contribs) (Importing a new version from external source)

    Sitzungen und Projekte: Die Grundzüge von KDevelop

    In diesem Kapitel wird ein Teil der Terminologie von KDevelop und wie KDevelops Stukturen arbeiten erläutert. Insbesondere wird das Konzept von Sitzungen und Projekten eingeführt und erklärt, wie Sie die Projekte mit denen sie arbeiten wollen einrichten.

    Begrifflichkeiten

    KDevelop nutzt das Konzept von Sitzungen und Projekten. Eine Sitzung beinhaltet alle Projekte die etwas miteinander zu tun haben. Nehmen wir beispielsweise an, Sie seien der Entwickler einer Bibliothek und einer Anwendung, die diese benutzt. Ein Beispiel hierfür ist die Entwicklung an KDevelop: hier könnten Sie die Kern-KDE Bibliothken als die Bibliothek und KDevelop als die benutzende Anwendung in einer Sitzung entwickeln. Ein anderes Beispiel wäre, wenn Sie als Linux-Kernel-Entwickler gleichzeitig parallel an einem Gerätetreiber für Linux arbeiten, der noch nicht in den Kernel-Baum gemergt wurde.

    Im letztgenannten Beispiel würden wir in KDevelop eine Sitzung erstellen, die zwei Projekte hat: den Linux-Kernel und den Gerätetreiber. Man würde diese in eine einzige Sitzung zusammenfassen (statt zwei Sitzungen mit jeweils einem einzelnen Projekt), weil es hilfreich ist, die Kernelfunktionen und Datenstrukturen beim Schreiben von Quelltext für den Treiber zu sehen. Beispielsweise können Kernelfunktionen und Variablen auto-expandiert werden, oder man kann Kernelfunktionsdokumentationen sehen, während man am Gerätetreiber programmiert.

    Stellen Sie sich nun vor, Sie wären auch KDE-Entwickler. Dann hätten Sie eine zweite Sitzung, die auch KDE als Projekt enthielte. Sie könnten natürlich nur eine Sitzung für alle Projekte haben, aber es gibt keinen Grund dafür: während Sie an KDE arbeiten, brauchen Sie keinen Zugriff auf den Kernel oder auf den Gerätetreiber. Sie würden auch nicht wollen, dass KDE Klassen autovervollständigt werden, während Sie am Linux-Kernel arbeiten. Weiterhin ist das Kompilieren der KDE Bibliotheklen unabhängig vom rekompilieren des Linux-Kernels (während das rekompilierne des Linux-Kernels nach Änderungen am Gerätetreiber sinnvoll ist, falls Headerdateien sich verändert haben).

    Außerdem gibt es noch eine andere Verwendung von Sitzungen: sofern man sowohl an der aktuellen Entwicklungsversion eines Projektes und an einem Branch arbeitet, will man nicht, dass KDevelop Klassen die zum Hauptzweig und Klassen die zum Branch gehören verwechselt. Deshalb benutzt man in diesem Fall zwei Sitzungen, die die selben Projekte aus verschiedenen Verzeichnissen enthalten (wobei die Verzeichnisse zu den Entwicklungszweigen korrespondieren).

    Eine Sitzung einrichten und ein bestehendes Projekt importieren

    Bleiben wir bei dem Linux-Kernel- und Gerätetreiberbeispiel. Sie können diese durch ihre eigenen Bibliotheken und Projekte ersetzen. Um eine neue Sitzung, dass diese Projekt enthält, zu straten, gehen sie auf Sitzung -> Neue Sitzung starten oben links (oder, sollte das ihre erste Benutzung von KDevelop sein, benutzen sie einfach die leere Default-Sitzung). Als nächstes wollen wir diese Sitzung mit Projekten füllen, von denen wir im Moment annehmen, dass sie bereits irgendwo existieren (Der Erstellen neuer Projekte ist an anderer Stelle in diesem Handbuch beschrieben). Für den Import existierender Projekte existieren hauptsächlich zwei Methoden, abhängig davon, ob das Projekt bereits auf der Festplatte ist oder ob es von einem Server heruntergeladen werden muss.

    Option 1: Importing a project from a version control system server

    Let's first assume that the project we want to set up -- the Linux kernel -- resides in some version control system on a server, but that you haven't checked it out to your local hard drive yet. In this case, go to the Project menu to create the Linux kernel as a project inside the current session and then follow these steps:

    • Go to Projects -> Fetch project to import a project
    • You then have multiple options to start a new project in the current session, depending on where the source files should come from: You can just point KDevelop at an existing directory (see option 2 below), or you can ask KDevelop to get the sources from a repository.
    • Assuming you don't already have a version checked out:
      • In the dialog box, under Select the source, choose to use Subversion, Git, or one of the other choices
      • Choose a working directory as destination into which the sources should be checked out
      • Choose an URL for the location of the repository where the source files can be obtained
      • Hit Get. This can take quite a long while; depending on the speed of your connection and the size of the project. Unfortunately, in KDevelop 4.2.x the progress bar does not actually show anything, but you can track progress by periodically looking at the output of the command line command
        du -sk /path/to/KDevelop/project
        to see how much data has already been downloaded.

    Note

    The problem with the progress bar has been reported as KDevelop bug 256832.

    Note

    In this process, I also get the error message You need to specify a valid location for the project which can be safely ignored.


    • It asks you to select a KDevelop project file in this directory. Since you probably don't have one yet, simply hit Next
    • Hit Next again
    • KDevelop will then ask you to choose a project manager. If this project uses standard Unix make files, choose the custom makefile project manager
    • KDevelop will then start to parse the entire project. Again, it will take quite a while to go through all files and index classes etc. At the bottom right of the main window, there is a progress bar that shows how long this process has come along. (If you have several processor cores, you can accelerate this process by going to the Settings -> Configure KDevelop menu item, then selecting Background parser on the left, and increasing the number of threads for background parsing on the right.)

    Option 2: Importing a project that is already on your hard drive

    Alternatively, if the project you want to work with already exists on your hard drive (for example, because you have downloaded it as a tar file from an FTP server, because you already checked out a version of the project from a version control system, or because it is your own project that exists only on your own hard drive), then use Projects -> Open/Import project and in the dialog box choose the directory in which your project resides.

    Setting up an application as a second project

    The next thing you want to do is set up other projects in the same session. In the example above, you would want to add the device driver as the second project, which you can do using exactly the same steps.

    If you have multiple applications or libraries, simply repeat the steps to add more and more projects to your session.

    Creating projects from scratch

    There is of course also the possibility that you want to start a new project from scratch. This can be done using the Projects -> New from Template menu item, which presents you with a template selection dialog. Some project templates are provided with KDevelop, but even more are available by installing the KAppTemplate application. Choose the project type and programming language from the dialog, enter a name and location for you project, and click Next.

    The second page of the dialog allows you to set up a version control system. Choose the system you wish the use, and fill in the system-specific configuration if needed. If you do not wish to use a version control system, or want to set it up manually later, choose None. When you are happy with your choice, press Finish.

    Your project is now created, so you can try building or installing it. Some templates will include comments within the code, or even a separate README file, and it is recommended that you read those first. Then, you can start working on your project, by adding whatever features you want.