Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
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 Go to previous messageGo to previous message
eldiener is currently offline  eldiener
Messages: 18
Registered: March 2015
Promising Member
dolik.rce wrote on Sat, 14 March 2015 15:18
eldiener wrote on Sat, 14 March 2015 18:21
IDE 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:21
Regarding 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:21
I 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:21
Regarding 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:21
Finally 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.
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Opening a package
Next Topic: Package (Library)
Goto Forum:
  


Current Time: Sat May 11 22:14:27 CEST 2024

Total time taken to generate the page: 0.01844 seconds