[Lazarus] New compiler options page "Additions and Overrides"

Mattias Gaertner nc-gaertnma at netcologne.de
Fri Jun 7 10:24:29 CEST 2013


On Fri, 07 Jun 2013 11:10:54 +0300
patspiper <patspiper at gmail.com> wrote:

> On 07/06/13 10:43, Mattias Gaertner wrote:
> > On Fri, 07 Jun 2013 10:05:14 +0300
> > patspiper <patspiper at gmail.com> wrote:
> >
> >> [...]
> >> I have build modes defined as default for new projects. Would this
> >> interfere with this update?
> > No.
> > If you don't use it nothing changes.

P.S.: With "it" I meant the new page.

> > It will start interfering, when you add some options to the IDE configs.
> My default build modes affect only the OS and widgetset, and the 
> widgetset part shows up in the new dialog.

The old IDE macro page was merged into the new page. The internal
structure for macros has changed. The loading function converts the old
macros to the new format. Maybe there is the bug.
The LCLWidgetType macro with value 'win32' should be under 'stored in
project', 'targets:*' and enabled only under the build modes, where
they were before.
That means the LCLWidgetType:=gtk2 should only be enabled for build
mode 'Linux' and the LCLWidgetType:=win32 should only be enabled for
build mode 'Win32'.
What do you see?

   
> >> On the other hand, it seems that some options apply to all build modes
> >> irrespective of their enabled status. With Linux and Win32 build modes
> >> defined, compiling an empty project for Linux uses the following options:
> >>
> >>    -MObjFPC -Scghi -O1 -Tlinux -g -gl -vewnhi -Filib/i386-linux
> >> -Fu/home/me/Programs/lazarus/lazarus-svn/lcl/units/i386-linux/win32
> >> -Fu/home/me/Programs/lazarus/lazarus-svn/lcl/units/i386-linux
> >> -Fu/home/me/Programs/lazarus/lazarus-svn/components/lazutils/lib/i386-linux
> >> -Fu/home/me/Programs/lazarus/lazarus-svn/packager/units/i386-linux -Fu.
> >> -FUlib/i386-linux/ -l -dLCL -dLCLwin32
> >>
> >> and fails:
> >> win32/win32wsdialogs.pp(32,3) Fatal: Can't find unit Windows used by
> >> Win32WSDialogs
> >>
> >> Inherited for LCL:
> >> unit path =
> >> /home/supra/Programs/lazarus/lazarus-svn/lcl/units/i386-linux/win32
> >> custom options = -dLCL -dLCLwin32
> >> LCLWidgetType = win32
> >>
> >> Inherited for LCLBase, LazUtils, and FCL do not show win32 related stuff.
> > What is the host operating system? I guess Linux.
> Yes
> > What build mode is active?
> Build mode for Linux
> > What shows Project Options / Compiler Options / right side, top,
> > rightmost edit button '...' / Show differences between modes?
> It seems options are messed up somewhere:
> 
> Win32 differences (with Linux as reference):
> Code/TargetOS=win32
> Has matrix option IDEMacro:LCLWisgetType:=gtk2
> Does not have matrix option IDEMacro:LCLWisgetType:=win32
> 
> Linux differences (with Win32 as reference):
> Code/TargetOS=linux
> Does not have matrix option IDEMacro:LCLWisgetType:=gtk2
> Has matrix option IDEMacro:LCLWisgetType:=win32

It seems the enabled states of the macros are wrong.

 
> I switched the order of the widgetset options using the up/down arrows, 
> and all compiles well. If I switch the order back, the error shows up!


Mattias




More information about the Lazarus mailing list