Home » U++ TheIDE » U++ TheIDE: Packages » Understanding packages, assemblies, and nests
Re: Understanding packages, assemblies, and nests [message #44471 is a reply to message #44469] |
Sun, 15 March 2015 04:20   |
eldiener
Messages: 18 Registered: March 2015
|
Promising Member |
|
|
dolik.rce wrote on Sat, 14 March 2015 15:18eldiener wrote on Sat, 14 March 2015 18:21IDE builds a package, which generates some final file usually an executable or library but it may be any resultant file. The package can contain dependencies in the form of other packages. So when a package is built it may be necessary to build any of its dependencies first before rebuilding the main package. Yes, that is correct. I'm not aware about any case where the result would be something else than library (either static or dynamic) or executable, but in theory other result formats could be possible as well.
eldiener wrote on Sat, 14 March 2015 18:21Regarding the "main package": are not all packages represented by a directory with a .upp file ? if that is so how does the IDE know what is a main package as opposed to what is a dependent package ? In TheIDE there is a "Main package configuration" dialog (in Project menu, or when you click on the select box in menubar), which lists the build flags that can be used for the package. Any package that has one or more entries in this list is considered to be "main" (because non-main packages would't require build flags).
eldiener wrote on Sat, 14 March 2015 18:21I see the Package organizer. A visual tree-like display of dependencies might be nice. It is not simple tree, multiple packages can share same dependencies. For example, have a look at the graph in this thread if you're interested.
eldiener wrote on Sat, 14 March 2015 18:21Regarding the IDE and adding a package to it I think you missed my point. Suppose I already have a package somewhere on my file system with its .upp file. How do I tell the IDE that the package exists and it should be listed somewhere by the IDE ? You just set the assembly to contain the nest where your package is located - that is it's parent directory. If you put this nest at first position in the assembly, then the package (given it is "main") will be listed when you start TheIDE and select this assembly.
eldiener wrote on Sat, 14 March 2015 18:21Finally if I have a package does its dependencies have to be within the same directory structure of the main package ? I hope that is not the case. No, the dependencies can be in any of the nests in the same assembly. Usually, your package would by in MyApps, and it would depend on for example on Core, which is located in the uppsrc nest.
Honza
I do not understand why non-main packages do not have build flags. Don't non-main packages have to be built also ? Suppose I create a shared library use the IDE. I assume a shared library is another package, just like anything else being built in the IDE from source files. Don't I need build flags to tell the IDE how to build the shared library ?
Regarding have the IDE add a package which already exists as a .upp file: are you saying that this package needs to go in an already existing assembly ? Or can I create a new assembly for the package ? Are assemblies just a grouping mechanism for packages in the IDE so that a user of the IDE can open the package by finding it within a particular assembly ? Can a package be in more than one assembly, ie. can different assemblies have the same nest in its list of nests ? I also see that one can choose a non-main package to be opened in the IDE, but the menu item says 'File | Set main package...'. Isn't this a misnomer since the end-user can choose a non-main package to build ?
You wrote "Usually, your package would by in MyApps, and it would depend on for example on Core, which is located in the uppsrc nest." Does this mean that packages which the end-user creates should go into the MyApps assembly ? I am gathering that the other assemblies are for Ultimate++'s own use, except maybe for MyAppsWBazaar.
My understanding of assemblies and nests are ( please correct me if I am wrong ):
1) Assemblies are grouping mechanisms for finding a package in the IDE. Every assembly has a list of nests.
2) A nest is just a directory where packages may be found in that directory or one of its subdirectories.
3) Neither an assembly or a nest exists when building something in the IDE, only a package gets built with possibly its package dependencies.
3) A package is what gets built within the IDE. A package may have other packages dependencies. A main package is never a dependent of any other package.
|
|
|
 |
|
Understanding packages, assemblies, and nests
By: eldiener on Fri, 13 March 2015 05:24
|
 |
|
Re: Understanding packages, assemblies, and nests
|
 |
|
Re: Understanding packages, assemblies, and nests
By: eldiener on Fri, 13 March 2015 07:20
|
 |
|
Re: Understanding packages, assemblies, and nests
|
 |
|
Re: Understanding packages, assemblies, and nests
By: eldiener on Sat, 14 March 2015 01:41
|
 |
|
Re: Understanding packages, assemblies, and nests
By: mirek on Sat, 14 March 2015 07:36
|
 |
|
Re: Understanding packages, assemblies, and nests
By: eldiener on Sat, 14 March 2015 18:21
|
 |
|
Re: Understanding packages, assemblies, and nests
|
 |
|
Re: Understanding packages, assemblies, and nests
By: eldiener on Sun, 15 March 2015 04:20
|
 |
|
Re: Understanding packages, assemblies, and nests
By: mirek on Sun, 15 March 2015 08:15
|
 |
|
Re: Understanding packages, assemblies, and nests
By: eldiener on Sun, 15 March 2015 17:02
|
 |
|
Re: Understanding packages, assemblies, and nests
By: mirek on Sun, 15 March 2015 17:21
|
 |
|
Re: Understanding packages, assemblies, and nests
By: eldiener on Sun, 15 March 2015 19:16
|
 |
|
Re: Understanding packages, assemblies, and nests
By: mirek on Sat, 14 March 2015 07:43
|
Goto Forum:
Current Time: Wed Apr 30 03:23:34 CEST 2025
Total time taken to generate the page: 0.00610 seconds
|