Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2019-07

It is a beautiful day...

19 messages · 8 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Michael Van Canneyt

Hello,

For those of you that don't follow the SVN logs closely:

The IDE now has proper support for Project groups. Project groups already existed for some time, but were crippled.

With 2 additions they are now actually very useful:

- You can let Ctrl-F9 compile the current target in a project group, and that includes for instance a package !
(you can set this in Tools - Options - Project groups)

- "Find in files" now has the option 'Search in project group'

They now offer all functionality as in Delphi. In difference with the latter, their use is entirely optional...

My heartfelt thanks to Mattias for completing the 'Project group' functionality !

Michael.

Reply by email

Dennis
to Michael Van Canneyt

thank you.

Michael Van Canneyt wrote 25 lines
Hello, For those of you that don't follow the SVN logs closely: The IDE now has proper support for Project groups. Project groups already existed for some time, but were crippled. With 2 additions they are now actually very useful: - You can let Ctrl-F9 compile the current target in a project group, and that   includes for instance a package !   (you can set this in Tools - Options - Project groups) - "Find in files" now has the option 'Search in project group' They now offer all functionality as in Delphi. In difference with the latter, their use is entirely optional... My heartfelt thanks to Mattias for completing the 'Project group' functionality ! Michael.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20190712/014a240f/attachment.html>

Reply by email

John Landmesser
to Michael Van Canneyt: For those of you that don't follow the SVN logs closely: The IDE now has proper support…

Little improvement:

Highlight the current compiling project:

Why?

Think of a package with examples all called project1, so you don't know which project eventually throws an error?!!

Thanks for project-groups!!

Michael Van Canneyt wrote 25 lines
Hello, For those of you that don't follow the SVN logs closely: The IDE now has proper support for Project groups. Project groups already existed for some time, but were crippled. With 2 additions they are now actually very useful: - You can let Ctrl-F9 compile the current target in a project group, and that   includes for instance a package !   (you can set this in Tools - Options - Project groups) - "Find in files" now has the option 'Search in project group' They now offer all functionality as in Delphi. In difference with the latter, their use is entirely optional... My heartfelt thanks to Mattias for completing the 'Project group' functionality ! Michael.

Reply by email

Kostas Michalopoulos
to Michael Van Canneyt: For those of you that don't follow the SVN logs closely: The IDE now has proper support…

Sounds interesting. Can i have a package that installs components/controls only available to the project group instead of globally? I often want to have components (and sometimes controls) available on the component palette but not for every project, but so far i see packages need to be installed "lazarus-wide" to expose components to the component palette.

PM Michael Van Canneyt wrote 28 lines
Hello, For those of you that don't follow the SVN logs closely: The IDE now has proper support for Project groups. Project groups already existed for some time, but were crippled. With 2 additions they are now actually very useful: - You can let Ctrl-F9 compile the current target in a project group, and that includes for instance a package ! (you can set this in Tools - Options - Project groups) - "Find in files" now has the option 'Search in project group' They now offer all functionality as in Delphi. In difference with the latter, their use is entirely optional... My heartfelt thanks to Mattias for completing the 'Project group' functionality ! Michael. -- _______________________________________________ lazarus mailing list https://lists.lazarus-ide.org/listinfo/lazarus

Reply by email

Michael Van Canneyt
to Kostas Michalopoulos
Kostas Michalopoulos wrote 6 lines
Sounds interesting. Can i have a package that installs components/controls only available to the project group instead of globally? I often want to have components (and sometimes controls) available on the component palette but not for every project, but so far i see packages need to be installed "lazarus-wide" to expose components to the component palette.

There is a feature request to have named configurations of the component palette.

When that is available, one could associate a named configuration to a project group, and this does what you need.

Michael.

Reply by email

Werner Pamler
to Michael Van Canneyt: For those of you that don't follow the SVN logs closely: The IDE now has proper support…

Great news!

There is one more thing which would be helpful, at least for me. I am maintaining the Lazarus port of JVCL, and this library currently consists of 16 runtime and designtime packages (i.e. 32 lpk files), and when porting proceeds there will be more to follow. As you an imagine, it is a pain to install them manually...

I already set up a project group which can compile all the packages, but what is missing is a way to install them. I mean: Could there be a button "Install"? After clicking on this button a routine should iterate through all the items of the project group, find the design time packages, mark them for installation, and finally rebuild the IDE. Can this be done?

Werner

Reply by email

Mattias Gaertner
to Werner Pamler
Show quoted text 14 lines
Great news! There is one more thing which would be helpful, at least for me. I am maintaining the Lazarus port of JVCL, and this library currently consists of 16 runtime and designtime packages (i.e. 32 lpk files), and when porting proceeds there will be more to follow. As you an imagine, it is a pain to install them manually... I already set up a project group which can compile all the packages, but what is missing is a way to install them. I mean: Could there be a button "Install"? After clicking on this button a routine should iterate through all the items of the project group, find the design time packages, mark them for installation, and finally rebuild the IDE. Can this be done?

You could create a meta package and install that.

Mattias

Reply by email

Michael Van Canneyt
to Mattias Gaertner
Mattias Gaertner wrote 19 lines
On Sat, 20 Jul 2019 11:59:56 +0200 Werner Pamler via lazarus wrote: > Great news! > > There is one more thing which would be helpful, at least for me. I am > maintaining the Lazarus port of JVCL, and this library currently > consists of 16 runtime and designtime packages (i.e. 32 lpk files), > and when porting proceeds there will be more to follow. As you an > imagine, it is a pain to install them manually... > > I already set up a project group which can compile all the packages, > but what is missing is a way to install them. I mean: Could there be > a button "Install"? After clicking on this button a routine should > iterate through all the items of the project group, find the design > time packages, mark them for installation, and finally rebuild the > IDE. Can this be done? You could create a meta package and install that.

That is one way, but I think the 'install' option would of course also be nice to have. The program group is already there after all. Making a new file just for install purposes seems superfluous...

Michael.

Reply by email

Mattias Gaertner
to Werner Pamler
Show quoted text 7 lines
Am 20.07.2019 um 12:15 schrieb Mattias Gaertner via lazarus: > On Sat, 20 Jul 2019 11:59:56 +0200 > Werner Pamler via lazarus wrote: > > You could create a meta package and install that. Excuse my ignorance. , But what is a "meta package"? A package which only contains requirements of other packages?

Yes

Mattias

Reply by email

Werner Pamler
to Mattias Gaertner
Mattias Gaertner wrote 11 lines
On Sat, 20 Jul 2019 15:32:05 +0200 Werner Pamler via lazarus wrote: > Am 20.07.2019 um 12:15 schrieb Mattias Gaertner via lazarus: >> On Sat, 20 Jul 2019 11:59:56 +0200 >> Werner Pamler via lazarus wrote: >> >> You could create a meta package and install that. > Excuse my ignorance. , But what is a "meta package"? A package which > only contains requirements of other packages? Yes

When installing the new meta package "jvcl_all" which contains all designtime packages I get a message

"The package jvcl_all does not have any "Register" procedure which typically means it does not provide any IDE addon. Installing it will probably only increase the size of the IDE and may even make it unstable."

and I am prompted to either "Install it, I like the fat" or to "Cancel". How can I avoid this? Do I have to provide a dummy registration unit? What does it have to look like?

Reply by email

Mattias Gaertner
to Werner Pamler
Show quoted text 24 lines
Am 20.07.2019 um 15:43 schrieb Mattias Gaertner via lazarus: > On Sat, 20 Jul 2019 15:32:05 +0200 > Werner Pamler via lazarus wrote: > >> Am 20.07.2019 um 12:15 schrieb Mattias Gaertner via lazarus: >>> On Sat, 20 Jul 2019 11:59:56 +0200 >>> Werner Pamler via lazarus wrote: >>> >>> You could create a meta package and install that. >> Excuse my ignorance. , But what is a "meta package"? A package >> which only contains requirements of other packages? > Yes When installing the new meta package "jvcl_all" which contains all designtime packages I get a message "The package jvcl_all does not have any "Register" procedure which typically means it does not provide any IDE addon. Installing it will probably only increase the size of the IDE and may even make it unstable." and I am prompted to either "Install it, I like the fat" or to "Cancel". How can I avoid this? Do I have to provide a dummy registration unit?

It should not warn in this case. I fixed the bug.

What does it have to look like?

Mattias

Reply by email

Werner Pamler
to Mattias Gaertner
Mattias Gaertner wrote 27 lines
On Sat, 20 Jul 2019 19:37:23 +0200 Werner Pamler via lazarus wrote: > Am 20.07.2019 um 15:43 schrieb Mattias Gaertner via lazarus: >> On Sat, 20 Jul 2019 15:32:05 +0200 >> Werner Pamler via lazarus wrote: >> >>> Am 20.07.2019 um 12:15 schrieb Mattias Gaertner via lazarus: >>>> On Sat, 20 Jul 2019 11:59:56 +0200 >>>> Werner Pamler via lazarus wrote: >>>> >>>> You could create a meta package and install that. >>> Excuse my ignorance. , But what is a "meta package"? A package >>> which only contains requirements of other packages? >> Yes > When installing the new meta package "jvcl_all" which contains all > designtime packages I get a message > > "The package jvcl_all does not have any "Register" procedure which > typically means it does not provide any IDE addon. Installing it will > probably only increase the size of the IDE and may even make it > unstable." > > and I am prompted to either "Install it, I like the fat" or to > "Cancel". How can I avoid this? Do I have to provide a dummy > registration unit? It should not warn in this case. I fixed the bug.

Thanks. It works correctly now.

Reply by email

Ondrej Pokorny
to Michael Van Canneyt: For those of you that don't follow the SVN logs closely: The IDE now has proper support…
Michael Van Canneyt wrote
The IDE now has proper support for Project groups.

Hello,

I started to use Project groups and also added the .lpg file to my repository. I found out that the XML format is unusual (wrong). The <Mode*> nodes are not subnodes to <BuildModes>:

<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
  <ProjectGroup FileVersion="1">
    <Targets Count="18">
      <Target0 FileName="xyz.lpi">
        <BuildModes Count="2"/>
        <Mode1 Name="Debug" Compile="True"/>         <Mode2 Name="Release"/>
      </Target0>

Is this an intention?

I ask because I wanted to update the file format to the new Lazarus XML format (without the indexes and count attributes):

<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
  <ProjectGroup FileVersion="1">
    <Targets>
      <Target FileName="xyz.lpi">
        <BuildModes>
          <Mode Name="Debug" Compile="True"/>           <Mode Name="Release"/>
        </BuildModes>
      </Target>

and I have already helper functions for distinguishing between the old and the new file formats but they can handle only the "correct" old format (where item nodes are subnodes of the main node):         <BuildModes Count="2"/>
          <Mode1 Name="Debug" Compile="True"/>           <Mode2 Name="Release"/>
        </BuildModes>

My question: because Project groups are usable only in trunk, I suggest to fix the old file format without backwards-compatibility:         <BuildModes Count="2"/>
          <Mode1 Name="Debug" Compile="True"/>           <Mode2 Name="Release"/>
        </BuildModes>

That would mean that the Compile flags for build modes get lost and the user must set them again. Are you fine with it? (Well, I am fine with that.)

Best
Ondrej

Reply by email

Mattias Gaertner
to Ondrej Pokorny
Show quoted text 20 lines
On 11.07.2019 17:46, Michael Van Canneyt via lazarus wrote: > The IDE now has proper support for Project groups. Hello, I started to use Project groups and also added the .lpg file to my repository. I found out that the XML format is unusual (wrong). The <Mode*> nodes are not subnodes to <BuildModes>: <?xml version="1.0" encoding="UTF-8"?> <CONFIG>   <ProjectGroup FileVersion="1">     <Targets Count="18">       <Target0 FileName="xyz.lpi">         <BuildModes Count="2"/>         <Mode1 Name="Debug" Compile="True"/>         <Mode2 Name="Release"/>       </Target0> Is this an intention?

No

Show quoted text 23 lines
I ask because I wanted to update the file format to the new Lazarus XML format (without the indexes and count attributes): <?xml version="1.0" encoding="UTF-8"?> <CONFIG>   <ProjectGroup FileVersion="1">     <Targets>       <Target FileName="xyz.lpi">         <BuildModes>           <Mode Name="Debug" Compile="True"/>           <Mode Name="Release"/>         </BuildModes>       </Target> and I have already helper functions for distinguishing between the old and the new file formats but they can handle only the "correct" old format (where item nodes are subnodes of the main node):         <BuildModes Count="2"/>           <Mode1 Name="Debug" Compile="True"/>           <Mode2 Name="Release"/>         </BuildModes> My question: because Project groups are usable only in trunk,

Project groups are in 2.0.

Show quoted text 9 lines
I suggest to fix the old file format without backwards-compatibility:         <BuildModes Count="2"/>           <Mode1 Name="Debug" Compile="True"/>           <Mode2 Name="Release"/>         </BuildModes> That would mean that the Compile flags for build modes get lost and the user must set them again. Are you fine with it? (Well, I am fine with that.)

I guess with a few lines of code you can read the old format and set the "Compile" flag.

Mattias

Reply by email

Graeme Geldenhuys
to Ondrej Pokorny: I started to use Project groups and also added the .lpg file to my repository. I found…
Ondrej Pokorny wrote
I found out that the XML format is unusual (wrong).

Fully agree. That is so INI-ish, and really not needed in XML or JSON formats.

Show quoted text 13 lines
I ask because I wanted to update the file format to the new Lazarus XML format (without the indexes and count attributes): <?xml version="1.0" encoding="UTF-8"?> <CONFIG>   <ProjectGroup FileVersion="1">     <Targets>       <Target FileName="xyz.lpi">         <BuildModes>           <Mode Name="Debug" Compile="True"/>           <Mode Name="Release"/>         </BuildModes>       </Target>

Looks much better! I vote for this.

I would also recommend the idea of considering JSON format, which is less verbose, has real data types (boolean, int, float, etc - not everything is a string value), thus making it more expressive.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Ondrej Pokorny
to Mattias Gaertner: On Sun, 11 Aug 2019 11:56:38 +0200 No Project groups are in 2.0. I guess with a few lines…
Mattias Gaertner wrote 11 lines
> I suggest to fix the old file format without backwards-compatibility: >         <BuildModes Count="2"/> >           <Mode1 Name="Debug" Compile="True"/> >           <Mode2 Name="Release"/> >         </BuildModes> > > That would mean that the Compile flags for build modes get lost and > the user must set them again. Are you fine with it? (Well, I am fine > with that.) I guess with a few lines of code you can read the old format and set the "Compile" flag.

The issue is that the new format is done with forwards-compatibility so that people can decide if they want to open the new file in an older Lazarus version. (The projects have the "Maximize compatibility of project files" option for this.)

Is this important to you?

Ondrej

Reply by email

Mattias Gaertner
to Ondrej Pokorny
Show quoted text 17 lines
On 11.08.2019 12:23, Mattias Gaertner via lazarus wrote: >> I suggest to fix the old file format without >> backwards-compatibility: <BuildModes Count="2"/> >>           <Mode1 Name="Debug" Compile="True"/> >>           <Mode2 Name="Release"/> >>         </BuildModes> >> >> That would mean that the Compile flags for build modes get lost and >> the user must set them again. Are you fine with it? (Well, I am >> fine with that.) > I guess with a few lines of code you can read the old format and set > the "Compile" flag. The issue is that the new format is done with forwards-compatibility so that people can decide if they want to open the new file in an older Lazarus version. (The projects have the "Maximize compatibility of project files" option for this.)

That an old Lazarus cannot read completely the new format is an incompatibility I can live with, if it is documented.

Mattias

Reply by email

Ondrej Pokorny
to Mattias Gaertner
Mattias Gaertner wrote 9 lines
On Sun, 11 Aug 2019 12:54:48 +0200 Ondrej Pokorny via lazarus wrote: > The issue is that the new format is done with forwards-compatibility > so that people can decide if they want to open the new file in an > older Lazarus version. (The projects have the "Maximize compatibility > of project files" option for this.) That an old Lazarus cannot read completely the new format is an incompatibility I can live with, if it is documented.

Thanks, I'll come up with a patch.

Best
Ondrej

Reply by email