Csound Csound-dev Csound-tekno Search About

[Cs-dev] Cmake and release builds

Date2012-03-02 17:45
FromFelipe Sateler
Subject[Cs-dev] Cmake and release builds
Hi all,

How should we handle release builds in cmake? In SConstruct, there are
a few defines that differ between release and non-release builds,
selected through the buildRelease flag. Should we mimic this option in
cmake? Or should we use cmake build configurations to distinguish
between them? In my opinion, build configurations in cmake are overly
complex and prone to confusion (settings may need to be defined once
per configuration), so I'd suggest just adding a new variable, like
SConstruct does now.

What do you think?

Switches that are missing porting from SConstruct that somehow depend
on this decision, and my opinion on them:

buildRelease -> create a new option
gcc3opt -> merge with gcc4opt
gcc4opt -> do by default when building a release build
noDebug -> not sure if useful, but currently cmake is missing debug
symbols and they should be added by default
useGprof -> not sure if useful (one can always add -pg to the needed
variables in Custom.cmake)

--

Saludos,
Felipe Sateler

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2012-03-02 18:34
FromMichael Gogins
SubjectRe: [Cs-dev] Cmake and release builds
Thanks for tracking this.

My preference is that there be one configuration, namely release with
debug information (-g -O2).

If that's not really possible, then as close to it as possible, as
simple as possible. I'm well aware that the Csound build situation is
too complex.

The custom file can definitely be used for profiling and for
-mtune=native and such.

Regards,
Mike

On Fri, Mar 2, 2012 at 12:45 PM, Felipe Sateler  wrote:
> Hi all,
>
> How should we handle release builds in cmake? In SConstruct, there are
> a few defines that differ between release and non-release builds,
> selected through the buildRelease flag. Should we mimic this option in
> cmake? Or should we use cmake build configurations to distinguish
> between them? In my opinion, build configurations in cmake are overly
> complex and prone to confusion (settings may need to be defined once
> per configuration), so I'd suggest just adding a new variable, like
> SConstruct does now.
>
> What do you think?
>
> Switches that are missing porting from SConstruct that somehow depend
> on this decision, and my opinion on them:
>
> buildRelease -> create a new option
> gcc3opt -> merge with gcc4opt
> gcc4opt -> do by default when building a release build
> noDebug -> not sure if useful, but currently cmake is missing debug
> symbols and they should be added by default
> useGprof -> not sure if useful (one can always add -pg to the needed
> variables in Custom.cmake)
>
> --
>
> Saludos,
> Felipe Sateler
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel



-- 
Michael Gogins
Irreducible Productions
http://www.michael-gogins.com
Michael dot Gogins at gmail dot com

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2012-03-02 20:04
FromFelipe Sateler
SubjectRe: [Cs-dev] Cmake and release builds
Release vs non-release has more implications than just optimization
flags. It selects between defining BETA and _CSOUND_RELEASE_, and it
also sets a default opcodedir when it is set as release (otherwise
csound uses "." as the opcodedir).

Defining BETA enables some debug messages (some of which don't seem to
be protected by an if for debug flags).

I'm inclined to build release by default...

On Fri, Mar 2, 2012 at 15:34, Michael Gogins  wrote:
> Thanks for tracking this.
>
> My preference is that there be one configuration, namely release with
> debug information (-g -O2).
>
> If that's not really possible, then as close to it as possible, as
> simple as possible. I'm well aware that the Csound build situation is
> too complex.
>
> The custom file can definitely be used for profiling and for
> -mtune=native and such.
>
> Regards,
> Mike
>
> On Fri, Mar 2, 2012 at 12:45 PM, Felipe Sateler  wrote:
>> Hi all,
>>
>> How should we handle release builds in cmake? In SConstruct, there are
>> a few defines that differ between release and non-release builds,
>> selected through the buildRelease flag. Should we mimic this option in
>> cmake? Or should we use cmake build configurations to distinguish
>> between them? In my opinion, build configurations in cmake are overly
>> complex and prone to confusion (settings may need to be defined once
>> per configuration), so I'd suggest just adding a new variable, like
>> SConstruct does now.
>>
>> What do you think?
>>
>> Switches that are missing porting from SConstruct that somehow depend
>> on this decision, and my opinion on them:
>>
>> buildRelease -> create a new option
>> gcc3opt -> merge with gcc4opt
>> gcc4opt -> do by default when building a release build
>> noDebug -> not sure if useful, but currently cmake is missing debug
>> symbols and they should be added by default
>> useGprof -> not sure if useful (one can always add -pg to the needed
>> variables in Custom.cmake)
>>
>> --
>>
>> Saludos,
>> Felipe Sateler
>>
>> ------------------------------------------------------------------------------
>> Virtualization & Cloud Management Using Capacity Planning
>> Cloud computing makes use of virtualization - but cloud computing
>> also focuses on allowing computing to be delivered as a service.
>> http://www.accelacomm.com/jaw/sfnl/114/51521223/
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>
>
> --
> Michael Gogins
> Irreducible Productions
> http://www.michael-gogins.com
> Michael dot Gogins at gmail dot com
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel



-- 

Saludos,
Felipe Sateler

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2012-03-02 20:48
FromMichael Gogins
SubjectRe: [Cs-dev] Cmake and release builds
That's what I'm saying, build release by default but with debugging information.

Regards,
Mike

On Fri, Mar 2, 2012 at 3:04 PM, Felipe Sateler  wrote:
> Release vs non-release has more implications than just optimization
> flags. It selects between defining BETA and _CSOUND_RELEASE_, and it
> also sets a default opcodedir when it is set as release (otherwise
> csound uses "." as the opcodedir).
>
> Defining BETA enables some debug messages (some of which don't seem to
> be protected by an if for debug flags).
>
> I'm inclined to build release by default...
>
> On Fri, Mar 2, 2012 at 15:34, Michael Gogins  wrote:
>> Thanks for tracking this.
>>
>> My preference is that there be one configuration, namely release with
>> debug information (-g -O2).
>>
>> If that's not really possible, then as close to it as possible, as
>> simple as possible. I'm well aware that the Csound build situation is
>> too complex.
>>
>> The custom file can definitely be used for profiling and for
>> -mtune=native and such.
>>
>> Regards,
>> Mike
>>
>> On Fri, Mar 2, 2012 at 12:45 PM, Felipe Sateler  wrote:
>>> Hi all,
>>>
>>> How should we handle release builds in cmake? In SConstruct, there are
>>> a few defines that differ between release and non-release builds,
>>> selected through the buildRelease flag. Should we mimic this option in
>>> cmake? Or should we use cmake build configurations to distinguish
>>> between them? In my opinion, build configurations in cmake are overly
>>> complex and prone to confusion (settings may need to be defined once
>>> per configuration), so I'd suggest just adding a new variable, like
>>> SConstruct does now.
>>>
>>> What do you think?
>>>
>>> Switches that are missing porting from SConstruct that somehow depend
>>> on this decision, and my opinion on them:
>>>
>>> buildRelease -> create a new option
>>> gcc3opt -> merge with gcc4opt
>>> gcc4opt -> do by default when building a release build
>>> noDebug -> not sure if useful, but currently cmake is missing debug
>>> symbols and they should be added by default
>>> useGprof -> not sure if useful (one can always add -pg to the needed
>>> variables in Custom.cmake)
>>>
>>> --
>>>
>>> Saludos,
>>> Felipe Sateler
>>>
>>> ------------------------------------------------------------------------------
>>> Virtualization & Cloud Management Using Capacity Planning
>>> Cloud computing makes use of virtualization - but cloud computing
>>> also focuses on allowing computing to be delivered as a service.
>>> http://www.accelacomm.com/jaw/sfnl/114/51521223/
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>>
>>
>> --
>> Michael Gogins
>> Irreducible Productions
>> http://www.michael-gogins.com
>> Michael dot Gogins at gmail dot com
>>
>> ------------------------------------------------------------------------------
>> Virtualization & Cloud Management Using Capacity Planning
>> Cloud computing makes use of virtualization - but cloud computing
>> also focuses on allowing computing to be delivered as a service.
>> http://www.accelacomm.com/jaw/sfnl/114/51521223/
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>
>
> --
>
> Saludos,
> Felipe Sateler
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel



-- 
Michael Gogins
Irreducible Productions
http://www.michael-gogins.com
Michael dot Gogins at gmail dot com

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net