Forgot to add components, resulting in project compilation failure
Which “components”?
If you mean castle_components
, the “normal” CGE project, using TCastleWindow, should not depend on them.
Please clarify what did you expect in LPI file, and why
- The network library relies on this control, and Lazarus compiles an error message path found
- The original size of generating a delphi dproj file was a few kilobytes, but it suddenly became several hundred megabytes in size
Hm, good point. We should allow specifying additional packages for LPI… But then, we also want to introduce CGE own “package system” in the future.
For now, please readd this manually to LPI after generating. I’ll think how/when to automate this.
Hm, this would indicate you have a huge number of files in data/
subdirectory. How many files do you have inside data
?
To support deploying Delphi applications to non-Windows platforms (like Linux, or future macOS, Android, iOS), all the files that data
need to be listed in DPROJ. Unfortunately, Delphi doesn’t have any way to tell “copy whole data subdirectory”. See “Data files deployment (applies to all non-Windows platforms with Delphi)” section in Developing Linux applications using Delphi | Manual | Castle Game Engine .
So, please let me know how many files you have in data
– lets make sure this is this problem. Alternatively, if you can send me the DPROJ file that has “several hundred megabytes” (e.g. put it on Google Drive, Proton Drive, and generate a link) – I will appreciate it and investigate.
But if you really have a huge number of files in data
, then I’m afraid that indeed DPROJ will be huge too. There’s no other way to deploy application from Delphi to non-Windows platform.
project91M2Client_standalone.zip (10.4 MB)
I have become accustomed to the original vscode+Lazarus, and the new approach is not very meaningful to me
Thank you! Yes, the big number of files you have in data
is causing this huge DPROJ as a result.
I will experiment, but as said above: We don’t really have much choice. Delphi requires to list every data file in DPROJ, to deploy them to non-Windows targets. It takes a lot of space… though, we can conserve it a bit, e.g. removing whitespaces.
Note that if you use Lazarus, you can of course just delete this DPROJ, it it useless to you. It only matters for Delphi users.
Not sure what you mean by “new approach” and also what is meant by “not meaningful”
To be clear, the “Code → Regenerate Project” menu item mentioned in recent news is nothing new – it has been that way since a long time. We just did a few important improvements to this generation now.
Listing of all files in DPROJ was present since ~January this year. If you didn’t experience it, it means you didn’t run “Code → Regenerate Project” after adding new files. (Which is totally fine… unless you want to deploy from Delphi to non-Windows.)
Our VS Code ( Visual Studio Code | Manual | Castle Game Engine ) extension doesn’t really connect with much of this. When compiling from VS Code, we don’t use Lazarus, we use CGE build tool. In this case, Lazarus is not necessary, LPI is unused, DPROJ is unused. It does however use program file and CastleAutoGenerated
unit.
I pushed 2 significant optimizations to generated DPROJ size. It should be less crazy now
The fix is pushed to GitHub. You can observe this page, when it will no longer contain the commit titled “More compact list of data files in DPROJ” then this commit is part of the release. Please download then the latest CGE from Download | Castle Game Engine .
I will appreciate if you try to regenerate the same project with “Code → Regenerate Project” then, and let me know how much smaller is your DPROJ