[Lazarus] Building lazarus broken ?

Michael Van Canneyt michael at freepascal.org
Sun Nov 19 18:00:05 CET 2023



On Sun, 19 Nov 2023, Maxim Ganetsky via lazarus wrote:

> 19.11.2023 19:21, Michael Van Canneyt via lazarus пишет:
>>
>>
>> On Sun, 19 Nov 2023, Michael Van Canneyt via lazarus wrote:
>>
>>>
>>> Hi,
>>>
>>> I did some changes to the fpcunit support. All worked in the IDE.
>>>
>>> In order to push my changes, I did a git pull.
>>>
>>> The change broke the "make bigide" command, so I was told by the CI/CD.
>>>
>>> Turns out the makefiles did not respect the lazarus dependencies in the
>>> packages: the new dependency on the codetools package was not taken into
>>> account by the makefiles. (how an uninitiated heathen like me is 
>>> supposed to
>>> know this is probably only known to the happy initiated... ;))
>>>
>>> I managed to fix that, fix is pushed so 'make bigide' works again.
>>>
>>> However, the git pull destroyed building the IDE in the IDE.
>>> For some reason, the IDE (I'm on linux mint) thinks it needs to build a
>>> cocoa version of the LCL.
>>>
>>> This is the lcl.pas as generated by the build procedure:
>>>
>>> uses
>>>  AllLCLIntfUnits, CocoaConfig, CocoaCursor, CocoaMenus, 
>>> LazarusPackageIntf;
>>>
>>> In the build settings, I did specify gtk2,linux,x86_64 as the platform
>>> settings.
>>>
>>> So why does the IDE insist on recreating a cocoa version of lcl.pas ?
>>
>> Well, as usual I found the answer myself after asking the question :/
>>
>> This is the culprit:
>>
>> ---
>> commit f821ad251b945f3435303f208b2e7de045749424
>> Author: rich2014 <rich2014.git at outlook.com>
>> Date:   Sun Nov 19 18:36:11 2023 +0800
>>
>>     Lcl: udpate lcl lpk and cocoa unit files
>> ---
>>
>> I undid that commit:
> No need to do this.

Well, it broke the build.

>> Clearly, the LCL package should not use any platform/wigetset specific 
>> units.
>
> I changed settings for newly added units, they should not be included in 
> lcl.pas just like other ones in LCL interfaces.

Also good. Thank you.

Still, I think this is the single failure of the lazarus package system that needs to
be addressed:

The missing ability to include units or requirements for certain widgetsets/platforms.

(and similarly in Delphi, obviously)

Michael.


More information about the lazarus mailing list