Any idea why Delphi (At least since Seattle) does this to Dproj files

Any idea why Delphi (At least since Seattle) does this to Dproj files



and



0
.dll;.bpl


1
.dylib



Sections chane place for some users. Someone commits and for me it is always in reversed order.

What'll caused them to Switch places? Is there way to fix this is this an Bug?

This makes life with version control little bit difficult. Even the content is identical, but in different order. Not bad, but annoying, because files are changed, not the function but still, and before commit have to diff files, either revert them fix and commit.

Comments

  1. Jeroen Wiert Pluimers  Sorry I see I missed out the word installer in my comment: It's the Jedi JCL/JVCL installers that uses xml templates etc.

    But the point stands: I guess it should be (perhaps) possible to reuse its infrastructure for ones own projects, though as I say I keep meaning to look into this but haven't really done so.

    (BTW I'm assuming you are familiar with the JCL/JVCL and in in particular their installers that bootstrap from source code? If not then perhaps my comments may not be that useful?)

    Anyway, not sure if or where there's particular documentation about this (kind of doubt it), but if you have the JCL/JVCL installed somewhere, then first of all have a look at the "xml" folders e.g. "\jcl\packages\xmls" and "\jvcl\packages\xml".

    These files appear to define projects and packages in a seemingly abstract/somewhat minimal way using XML. This seemingly is then used to automatically produce .dproj and .dpk files which are placed in e.g. "\jcl\packages\dXX" and "\jvcl\packages\dXX" where dXX corresponds to a folder for each of the supported Delphi versions and compiled/used during installation.

    Having just looked into this briefly a bit further as a result of this conversation: Key units here (in the case of JVCL) seems to be "\devtools\PackagesGenerator\PackageGenerator.pas", "\install\JVCLInstall\PackageUtils.pas" and "\devtools\common\PackageInformation.pas" (used predictably by \JVCLInstall.dproj)

    (Additionally, having looked at this a bit more closely, it also appears that the JCL does not actually replace all or even most of its .dproj and .dpk files after all, but ships version specific .dproj and .dpk files in most cases, though the JVCL does appear to mostly do so. )

    Edit: The JCL also has this interesting sounding unit "jclroot>\source\windows\JclMsBuild.pas" which appears to be an MSBuild project file parser...

    ReplyDelete
  2. Walter Prins​ I was aware of the bootstrap and it's been on my "eventually I'll take a look" list like forever. One day...

    ReplyDelete

Post a Comment