Revision: 90047 http://trac.macports.org/changeset/90047 Author: jberry@macports.org Date: 2012-02-19 23:10:07 -0800 (Sun, 19 Feb 2012) Log Message: ----------- Revert r90031 per jmr Revision Links: -------------- http://trac.macports.org/changeset/90031 Modified Paths: -------------- branches/release_2_0/base/src/macports1.0/macports.tcl branches/release_2_0/base/src/port1.0/portmain.tcl Property Changed: ---------------- branches/release_2_0/base/ Property changes on: branches/release_2_0/base ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base:37343-46937 /branches/gsoc09-logging/base:51231-60371 /branches/universal-sanity/base:51872-52323 /branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79771-79774,79782,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80245,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81005,81119,81146,81171,81234,81269,81361,81371,81414-81415,81454,81464,81467,81475,81522,81556-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82135,82767,82921,82924,82947,83136,83149,83267,83270-83271,83391,83395,83443,83471,83537,84351,88045,88179,88185,88540-88541,88546,88777,88779,88787,89359,89970-89972,89984,89988,89993-89994,89996,89999-90000,90002-90010,90018-90020,90024,90032 /users/perry/base-bugs_and_notes:45682-46060 /users/perry/base-select:44044-44692 + /branches/gsoc08-privileges/base:37343-46937 /branches/gsoc09-logging/base:51231-60371 /branches/universal-sanity/base:51872-52323 /branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79771-79774,79782,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80245,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81005,81119,81146,81171,81234,81269,81361,81371,81414-81415,81454,81464,81467,81475,81522,81556-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82135,82767,82921,82924,82947,83136,83149,83267,83270-83271,83391,83395,83443,83471,83537,84351,88045,88179,88185,88540-88541,88546,88777,88779,88787,89359,89984,89988,89993-89994,90000,90002,90004,90010,90020,90032 /users/perry/base-bugs_and_notes:45682-46060 /users/perry/base-select:44044-44692 Modified: branches/release_2_0/base/src/macports1.0/macports.tcl =================================================================== --- branches/release_2_0/base/src/macports1.0/macports.tcl 2012-02-20 06:51:52 UTC (rev 90046) +++ branches/release_2_0/base/src/macports1.0/macports.tcl 2012-02-20 07:10:07 UTC (rev 90047) @@ -62,7 +62,7 @@ # deferred options are only computed when needed. # they are not exported to the trace thread. # they are not exported to the interpreter in system_options array. - variable portinterp_deferred_options "xcodeversion xcodebuildcmd developer_dir" + variable portinterp_deferred_options "xcodeversion xcodebuildcmd" variable open_mports {} @@ -362,7 +362,7 @@ trace remove variable macports::xcodeversion read macports::setxcodeinfo trace remove variable macports::xcodebuildcmd read macports::setxcodeinfo - if {![catch {findBinary xcodebuild /usr/bin/xcodebuild} xcodebuild]} { + if {[catch {set xcodebuild [binaryInPath "xcodebuild"]}] == 0} { if {![info exists xcodeversion]} { # Determine xcode version set macports::xcodeversion "2.0orlower" @@ -414,85 +414,6 @@ } } -# deferred calculation of developer_dir -proc macports::set_developer_dir {name1 name2 op} { - global macports::developer_dir macports::os_major macports::xcodeversion - - trace remove variable macports::developer_dir read macports::set_developer_dir - - # Look for xcodeselect, and make sure it has a valid value - if {![catch {findBinary xcode-select /usr/bin/xcode-select} xcodeselect]} { - - # We have xcode-select: ask it where xcode is - set devdir [exec $xcodeselect -print-path 2> /dev/null] - - # If the directory is valid, use it - if {[_is_valid_developer_dir $devdir]} { - set macports::developer_dir $devdir - return - } - - # The directory from xcode-select isn't correct. - # Ask mdfind where Xcode is and make some suggestions for the user, - # searching by bundle identifier for various Xcode versions (3.x and 4.x) - set installed_xcodes {} - if {![catch {findBinary mdfind /usr/bin/mdfind} mdfind]} { - set installed_xcodes [concat \ - [exec $mdfind "kMDItemCFBundleIdentifier == 'com.apple.Xcode'"] \ - [exec $mdfind "kMDItemCFBundleIdentifier == 'com.apple.dt.Xcode'"] \ - ] - } - if {[llength $installed_xcodes] > 0 && ![catch {findBinary mdls /usr/bin/mdls} mdls]} { - # One, or more than one, Xcode installations found - ui_error "No valid Xcode installation is properly selected." - - ui_error - ui_error "Please use xcode-select to select an Xcode installation:" - foreach xcode $installed_xcodes { - set vers [exec $mdls -raw -name kMDItemVersion $xcode] - if { $vers == "(null)" } { set vers "unknown" } - if {[vercmp $vers 4.3] >= 0 || [_is_valid_developer_dir "${xcode}/Contents/Developer"]} { - ui_error " sudo xcode-select -switch ${xcode} # version ${vers}" - } elseif {[_is_valid_developer_dir "${xcode}/../.."]} { - ui_error " sudo xcode-select -switch [file normalize ${xcode}/../..] # version ${vers}" - } else { - ui_error " # malformed xcode at ${xcode}, version ${vers}" - } - } - ui_error - } - } - - # Try the default - if {$os_major >= 11 && [vercmp $xcodeversion 4.3] >= 0} { - set devdir "/Applications/Xcode.app/Contents/Developer" - } else { - set devdir "/Developer" - } - - set macports::developer_dir $devdir -} - -proc macports::_is_valid_developer_dir {dir} { - # Check whether specified directory looks valid for an Xcode installation - - # Verify that the directory exists - if {![file isdirectory $dir]} { - return 0 - } - - # Verify that the directory has some key subdirectories - foreach subdir {Headers Library usr} { - if {![file isdirectory "${dir}/${subdir}"]} { - return 0 - } - } - - # The specified directory seems valid for Xcode - return 1 -} - - proc mportinit {{up_ui_options {}} {up_options {}} {up_variations {}}} { if {$up_ui_options eq ""} { array set macports::ui_options {} @@ -750,8 +671,8 @@ set macports::portautoclean "yes" global macports::portautoclean } - # whether to keep logs after successful builds - if {![info exists keeplogs]} { + # whether to keep logs after successful builds + if {![info exists keeplogs]} { set macports::keeplogs "no" global macports::keeplogs } @@ -976,15 +897,7 @@ trace add variable macports::xcodebuildcmd read macports::setxcodeinfo } - if {![info exists developer_dir]} { - if {$os_platform == "darwin"} { - trace add variable macports::developer_dir read macports::set_developer_dir - } else { - set macports::developer_dir "" - } - } - - if {$os_major >= 11 && $os_platform == "darwin" && [vercmp $xcodeversion 4.3] >= 0} { + if {[vercmp $xcodeversion 4.3] >= 0} { macports::copy_xcode_plist $env(HOME) } Modified: branches/release_2_0/base/src/port1.0/portmain.tcl =================================================================== --- branches/release_2_0/base/src/port1.0/portmain.tcl 2012-02-20 06:51:52 UTC (rev 90046) +++ branches/release_2_0/base/src/port1.0/portmain.tcl 2012-02-20 07:10:07 UTC (rev 90047) @@ -44,8 +44,6 @@ namespace eval portmain { } -set_ui_prefix - # define options options prefix name version revision epoch categories maintainers \ long_description description homepage notes license \ @@ -91,6 +89,7 @@ default prefix /opt/local default applications_dir /Applications/MacPorts default frameworks_dir {${prefix}/Library/Frameworks} +default developer_dir {[portmain::get_developer_dir]} default destdir destroot default destpath {${workpath}/${destdir}} # destroot is provided as a clearer name for the "destpath" variable @@ -145,6 +144,20 @@ default compiler.cpath {${prefix}/include} default compiler.library_path {${prefix}/lib} +proc portmain::get_developer_dir {} { + if {![catch {binaryInPath xcode-select}] + && ![catch {exec xcode-select -print-path 2> /dev/null} result] + && [file isdirectory $result]} { + return $result + } + global xcodeversion + if {[vercmp $xcodeversion 4.3] >= 0} { + return "/Applications/Xcode.app/Contents/Developer" + } else { + return "/Developer" + } +} + # start gsoc08-privileges # Record initial euid/egid