User Tools

Site Tools


user-guide:export-as-lib

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
user-guide:export-as-lib [2025/04/02 15:38] – created gaetanuser-guide:export-as-lib [2025/04/03 12:09] (current) gaetan
Line 1: Line 1:
-====== Project as Library ======+====== Project as a Module Library ======
  
 Project can be exported as a library usable from other projects. The exported library makes all types (classes, modules, ...) and resources (images, shaders, ...) available for import. Project can be exported as a library usable from other projects. The exported library makes all types (classes, modules, ...) and resources (images, shaders, ...) available for import.
Line 16: Line 16:
 All resources included in the project are added to a compiled resource zip (.grz file), that is automatically created when exported. The resources from this zip are loaded by GroIMP on startup, and made available through the imported types and references. All resources included in the project are added to a compiled resource zip (.grz file), that is automatically created when exported. The resources from this zip are loaded by GroIMP on startup, and made available through the imported types and references.
  
-The references can resolve resources from a module lib in the GroIMP path with the +The references can resolve resources from a module lib in the GroIMP path with the name: ''plg:{package name}.{plugin name}:{resource name}''
  
 ===== Compiled classes ===== ===== Compiled classes =====
  
 +The classes in the project are exported compiled.
 ==== Package name ==== ==== Package name ====
  
 +By default, .rgg types are compiled without a package. It makes them all visible from the same pool. However, for ensuring a uniqueness when importing module library, a package name is required during the export. GroIMP will use the given package name as default package during the compilation. 
 +
 +Thus, if the project contains type with named package, they will not be affected by the package name provided.
 +
 +The package name must follow java's specification on package name.
 ==== Reference wrapper ==== ==== Reference wrapper ====
  
 +GroIMP implicitly wrap all references call in the project to be exported as module library to make them use the resources form the library. 
 +
 +Indeed, if a project contains a resource with the name "shaderleaf". When exported, the module that use ''setShader(shader("shaderleaf"))'', needs to point as the resource from the module lib. And not a possible "shaderleaf" in a newly opened project. 
 +
 +The wrappers force the references to point at ''plg:pkg.Plugin:"shaderleaf"''
user-guide/export-as-lib.1743601125.txt.gz · Last modified: 2025/04/02 15:38 by gaetan