moved to ports@

In gmane.os.openbsd.misc, you wrote:
> On Tue, 6 Oct 2020 13:29:56 -0000 (UTC)
> Stuart Henderson <[email protected]> wrote:
>
>> On 2020-10-05, Julian Smith <[email protected]> wrote:
>> > It looks like OpenBSD's cmake port patches cmake to remove the use
>> > of -O2 in Release and RelWithDebInfo builds -
>> > /usr/ports/devel/cmake/patches/patch-Modules_Compiler_GNU_cmake has:
>> >
>> > -  string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os
>> > -DNDEBUG")
>> > -  string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG")
>> > -  string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g
>> > -DNDEBUG")
>> > +  string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
>> > +  string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -DNDEBUG")
>> > +  string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -g
>> > -DNDEBUG")
>> >
>> > Does anyone know why things are patched in this way?
>> >
>> >
>> > [I think one can force optimisation with (for example):
>> >
>> >     cmake -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -g -DNDEBUG"  ...
>> > ]
>> >
>> >
>> > Thanks,
>> >
>> > - Jules
>> >  
>> 
>> It's setup to work with builds done from ports, which should not
>> override whatever optimization level is set by either the user or the
>> build infrastructure.
>> 
>> The downside is that you need to add this yourself for builds from
>> outside ports.
>
> Thanks for the explanation.
>
> Would it be worth documenting this in the cmake(1) manpage? If so, i'll
> submit a patch.
>
> It's quite confusing to have cmake not optimise by default for Release
> or RelWithDeb builds - i built OpenSceneGraph-3.6 while working on
> Flightgear and it took a rather long time to figure out why i was
> getting such a reduced frame rate.

I seriously doubt anyone will see it in the manpage. Might be better if
things are rearranged so these are only stripped for ports builds, maybe by
having ports infrastructure set a flag (either as a cmake variable or
passed via the environment) and detecting that.

Generally you are better off working within the ports infrastructure rather
than outside it if you're updating things already in ports, or working on
something destined to be a port, But I do think it's still best if cmake
works as expected for non-ports builds too.

Reply via email to