# HG changeset patch
# User Sean Farley <sean@mcs.anl.gov>
# Date 1333862096 18000
# Node ID e5741fc3a391447ac00b7f8e7051f0b50f30c1ab
# Parent 10f91f7bb6f07f23a6ec736222d9e7e6a78e8666
base: add a default +debug and +debug_opt variant
This change adds a default +debug variant that will build packages
with -g and, more importantly, run the dsymutil tool to keep the
debugging symbols. Additionally, there is a +debug_opt variant that will
try to delete all -O{1,2,3} flags and add -O0. Of course, individual
packages can override what +debug and +debug_opt will do, but as a base
default, this seems sensible to have so that a user can get debugging
symbols for gdb easily without having to edit a package's Portfile.
diff --git a/base/src/macports1.0/macports.tcl b/base/src/macports1.0/macports.tcl
a
|
b
|
|
1603 | 1603 | $workername eval source Portfile |
1604 | 1604 | |
1605 | 1605 | # add the default universal variant if appropriate, and set up flags that |
1606 | 1606 | # are conditional on whether universal is set |
1607 | 1607 | $workername eval universal_setup |
| 1608 | $workername eval debug_setup |
| 1609 | $workername eval debug_opt_setup |
1608 | 1610 | |
1609 | 1611 | # evaluate the variants |
1610 | 1612 | if {[$workername eval eval_variants variations] != 0} { |
1611 | 1613 | mportclose $mport |
1612 | 1614 | error "Error evaluating variants" |
diff --git a/base/src/port1.0/portutil.tcl b/base/src/port1.0/portutil.tcl
a
|
b
|
|
1999 | 1999 | ui_debug "adding the default universal variant" |
2000 | 2000 | variant universal {} |
2001 | 2001 | } |
2002 | 2002 | } |
2003 | 2003 | |
| 2004 | # add the default debug variant if appropriate |
| 2005 | proc debug_setup {args} { |
| 2006 | if {[variant_exists debug]} { |
| 2007 | ui_debug "debug variant already exists, so not adding the default one" |
| 2008 | } else { |
| 2009 | ui_debug "adding the default debug variant" |
| 2010 | variant debug description {Enable debug flags and symbols} { |
| 2011 | configure.cflags-append -g |
| 2012 | configure.cxxflags-append -g |
| 2013 | configure.fflags-append -g |
| 2014 | configure.f90flags-append -g |
| 2015 | |
| 2016 | post-destroot { |
| 2017 | ui_debug "Generating debug symbols: find ${destroot}${prefix} -type f -name '*.dylib' -exec dsymutil {} +" |
| 2018 | system -W ${destroot}${prefix} "find . -type f -name *.dylib -exec dsymutil {} +" |
| 2019 | } |
| 2020 | } |
| 2021 | } |
| 2022 | } |
| 2023 | |
| 2024 | # add the default debug_opt variant if appropriate |
| 2025 | proc debug_opt_setup {args} { |
| 2026 | if {[variant_exists debug_opt]} { |
| 2027 | ui_debug "debug_opt variant already exists, so not adding the default one" |
| 2028 | } else { |
| 2029 | ui_debug "adding the default debug_opt variant" |
| 2030 | variant debug_opt description {Add -O0 optimization flags} { |
| 2031 | configure.cflags-delete -O1 -O2 -O3 -mtune=native |
| 2032 | configure.cxxflags-delete -O1 -O2 -O3 -mtune=native |
| 2033 | configure.fflags-delete -O1 -O2 -O3 -mtune=native |
| 2034 | configure.f90flags-delete -O1 -O2 -O3 -mtune=native |
| 2035 | |
| 2036 | configure.cflags-append -O0 |
| 2037 | configure.cxxflags-append -O0 |
| 2038 | configure.fflags-append -O0 |
| 2039 | configure.f90flags-append -O0 |
| 2040 | } |
| 2041 | } |
| 2042 | } |
| 2043 | |
2004 | 2044 | # Target class definition. |
2005 | 2045 | |
2006 | 2046 | # constructor for target object |
2007 | 2047 | proc target_new {name procedure} { |
2008 | 2048 | global targets |
diff --git a/dports/_resources/port1.0/group/cmake-1.0.tcl b/dports/_resources/port1.0/group/cmake-1.0.tcl
a
|
b
|
|
72 | 72 | configure.universal_args-delete --disable-dependency-tracking |
73 | 73 | |
74 | 74 | variant debug description "Enable debug binaries" { |
75 | 75 | configure.args-delete -DCMAKE_BUILD_TYPE=Release |
76 | 76 | configure.args-append -DCMAKE_BUILD_TYPE=debugFull |
| 77 | |
| 78 | post-destroot { |
| 79 | ui_debug "Generating debug symbols: find ${destroot}${prefix} -type f -name '*.dylib' -exec dsymutil {} +" |
| 80 | system -W ${destroot}${prefix} "find . -type f -name *.dylib -exec dsymutil {} +" |
| 81 | } |
77 | 82 | } |