[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [pdt-dev] Handling of user libraries

Hi Robert,

 

The buildpath entries are used (as their name imply) as inclusion and exclusion rules for the internal build mechanism. Behind the scene only buildpath entries are “counted” for the builder and so the buildParticipant are exposed to these entries as well. Although Libraries are represented in the includepath UI in Eclipse PDT it is really a buildpath matter and have a parallel entry representation (includepath AND buildpath entries).

 

The “include path” mechanism is only a representation of the PHP includepath that is valid for the current project, hence includes the list of libraries. We have decided to hide the buildpath library page to avoid confusion among our users.

 

Roy

From: pdt-dev-bounces@xxxxxxxxxxx [mailto:pdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Robert Gruendler
Sent: Wednesday, July 01, 2009 1:21 AM
To: PDT Developers
Subject: Re: [pdt-dev] Handling of user libraries

 

i've just tried the setup on a windows machine, but got the same result.

When adding the library to the build path, i get the resources of the library passed to our builder, but when
i add it to the include path, i only get the project's internal resources, nothing from the external library.

here's how i add the extension:

   <extension
         point="org.eclipse.dltk.core.buildParticipant">
      <buildParticipant
            class="net.sourceforge.sfdt.core.builder.SfBuildParticipantFactory"
            id="net.sourceforge.sfdt.core.SfBuildParticipant"
            name="net.sourceforge.sfdt.core.SfBuildParticipant"
            nature="org.eclipse.php.core.PHPNature">
      </buildParticipant>
   </extension>


is there anything i'm missing out here ?

thanks !

-robert

On Sun, Jun 21, 2009 at 8:55 PM, Michael Spector <spektom@xxxxxxxxx> wrote:

Build Path is used for building the structured DLTK model. Include Path is an emulation of php.ini include_path entry, and it's used for resolving file network through include() statements when browsing, debugging, etc... It's obvious that Include Path is a subset of Build Path. 

 

Regarding the difference in build time... it's interesting, since there should be no difference. When you add a library to the Include Path it's automatically added to the Build Path. I'll check this...

 

On Sun, Jun 21, 2009 at 9:44 PM, Robert Gruendler <doobre@xxxxxxxxx> wrote:

Hi Michael,

thanks for the tip.

the library resources got passed to our builder after adding it to the buildPath, not the include path, which brings up my next question:

I have tried to add our library both ways (manually, without usage of our plugin). I noticed that i get code assistance both when i add
it to the include path and the build path. The only difference was that when adding it to the build path, a clean build took at least 10 times
longer than a clean build with having the library in the include path.

But as i've got code assistance both times,  i assume that pdt must have been building a model of the library in both cases.

So what exactly is the difference between "Include Path" and "Build Path" ?

I guess i need to understand that concept before i can implement the model from our library ;)


thanks again !


-robert


Michael Spector schrieb:

I guess this should work this way:

1. StandardScriptBuilder, which is also a build participant runs first (always), and builds model elements for every build path entry (verify that your library is a part of the buildpath)

2. Your build participant runs after model for all build path entries is built, so you are able to "see" all PHP elements of a project & its dependencies.

On Sun, Jun 21, 2009 at 12:28 PM, Robert Gruendler <doobre@xxxxxxxxx <mailto:doobre@xxxxxxxxx>> wrote:

   Hi Michael,

   right now i just added it manually by adding it in the preferences
   as "User defined Library", then in the
   properties of the project: PHP Include Path -> Libraries -> Add
   Library...


   greetings

   -robert

   Michael Spector schrieb:

       Hi Robert,

       How do you define your included library? We don't encounter
       this issue in our build participant.

       On Sat, Jun 20, 2009 at 10:30 PM, Robert Gruendler
       <doobre@xxxxxxxxx <mailto:doobre@xxxxxxxxx>

       <mailto:doobre@xxxxxxxxx <mailto:doobre@xxxxxxxxx>>> wrote:

          Hi all,

          i'm trying to understand how included libraries are handled
       from a
          model point of view in pdt.

          Basically, we need some information from specific classes
       inside
          the user library, but i'm not sure at
          which point we can hook into pdt to build our model. I've
       tried to
          add a buildparticipant extension which
          uses a class that extends PHPAstVisitor.

          This works fine for all classes/methods etc inside the project,
          but i don't get anything from the included library.

          I assume the php model for the external libraries does not get
          built during the regular build process.

          Could anyone give me a hint at which point of the pdt plugin
          lifecycle the external libraries get parsed to build
          the model for them ?


          thanks!

          -robert
          _______________________________________________
          pdt-dev mailing list
          pdt-dev@xxxxxxxxxxx <mailto:pdt-dev@xxxxxxxxxxx>

       <mailto:pdt-dev@xxxxxxxxxxx <mailto:pdt-dev@xxxxxxxxxxx>>



          https://dev.eclipse.org/mailman/listinfo/pdt-dev


       ------------------------------------------------------------------------



       _______________________________________________
       pdt-dev mailing list
       pdt-dev@xxxxxxxxxxx <mailto:pdt-dev@xxxxxxxxxxx>
       https://dev.eclipse.org/mailman/listinfo/pdt-dev
       

   _______________________________________________
   pdt-dev mailing list
   pdt-dev@xxxxxxxxxxx <mailto:pdt-dev@xxxxxxxxxxx>
   https://dev.eclipse.org/mailman/listinfo/pdt-dev


------------------------------------------------------------------------

_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/pdt-dev
 


_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/pdt-dev

 


_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/pdt-dev