On Tue, Oct 21, 2014 at 04:32:27PM +0400, Vadim Zhukov wrote:
> 2014-10-21 14:50 GMT+04:00 David Coppa <[email protected]>:
> >
> >> From: Stuart Henderson <[email protected]>
> >> Date: Mon, Oct 20, 2014 at 7:54 PM
> >> Subject: Re: CMAKE_BUILD_TYPE=Release by default (Was CVS:
> >> cvs.openbsd.org: ports)
> >> To: David Coppa <[email protected]>
> >> Cc: OpenBSD Ports <[email protected]>, Vadim Zhukov
> >> <[email protected]>, Antoine Jacoutot <[email protected]>
> >>
> >>
> >> On 2014/10/20 19:42, David Coppa wrote:
> >> > On Mon, Oct 20, 2014 at 5:57 PM, Antoine Jacoutot
> >> > <[email protected]> wrote:
> >> > > CVSROOT: /cvs
> >> > > Module name: ports
> >> > > Changes by: [email protected] 2014/10/20 09:57:12
> >> > >
> >> > > Modified files:
> >> > > x11/polkit-qt4 : Makefile
> >> > > x11/polkit-qt4/pkg: PLIST
> >> > > productivity/libqzeitgeist: Makefile
> >> > > productivity/libqzeitgeist/pkg: PLIST
> >> > >
> >> > > Log message:
> >> > > Pass -DCMAKE_BUILD_TYPE=Release to have a proper release.cmake file
> >> > > instead
> >> > > of the noconfig one.
> >> > >
> >> > > I wonder if at one point this should go into the cmake MODULE as a
> >> > > default...
> >> >
> >> > Some days ago, I was going to mail ports@ suggesting exactly this.
> >> >
> >> > Would you give your ok?
> >>
> >> Would it make sense to only set this if no other -DCMAKE_BUILD_TYPE is set?
> >> (Otherwise it would be more awkward to do a -DCMAKE_BUILD_TYPE=Debug build
> >> for
> >> a single port).
> >
> > This is what FreeBSD did:
> >
> > ---8<---
> >
> > Index: cmake.port.mk
> > ===================================================================
> > RCS file: /cvs/ports/devel/cmake/cmake.port.mk,v
> > retrieving revision 1.32
> > diff -u -p -u -p -r1.32 cmake.port.mk
> > --- cmake.port.mk 7 Oct 2014 11:12:23 -0000 1.32
> > +++ cmake.port.mk 21 Oct 2014 10:41:15 -0000
> > @@ -75,6 +75,12 @@ MODCMAKE_configure= cd ${WRKBUILD} && ${
> > -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY:Bool=True \
> > -G ${_MODCMAKE_GEN} ${CONFIGURE_ARGS} ${WRKSRC}
> >
> > +.if defined(DEBUG)
> > +CONFIGURE_ARGS += -DCMAKE_BUILD_TYPE:String=Debug
> > +.else
> > +CONFIGURE_ARGS += -DCMAKE_BUILD_TYPE:String=Release
> > +.endif
> > +
> > SEPARATE_BUILD ?= Yes
> >
> > TEST_TARGET ?= test
>
> This will break packaging of ports installing CMake package files (see
> the FooTargets.cmake and FooTargets-Release.cmake in PLIST files?)
> when DEBUG is specified.
True, but by using DEBUG you are already drifting from regular packages; so you
can probably manually fix that one when you need it.
> Also, why not to check CONFIGURE_ARGS explicitly, and add
> -DCMAKE_BUILD_TYPE only if it's not specified? Something like:
>
> .if !${CONFIGURE_ARGS:M-DCMAKE_BUILD_TYPE}
> CONFIGURE_ARGS += -DCMAKE_BUILD_TYPE=Release
> .endif
We can add a check sure; for things that don't use Debug nor Release -- but
it'd be nice to remove -DCMAKE_BUILD_TYPE in all ports that already set it to
Release.
--
Antoine