예제 #1
0
	def __init__ (self, prefix = False):
		UnixProfile.__init__ (self, prefix)
		
		self.name = 'darwin'
		if (os.path.isdir ('/Developer/SDKs/MacOSX10.6.sdk')):
			self.mac_sdk_path = '/Developer/SDKs/MacOSX10.6.sdk'
			self.gcc_flags.extend ([
				'-D_XOPEN_SOURCE',
				'-isysroot %{mac_sdk_path}',
				'-mmacosx-version-min=10.6',
			])
		elif (os.path.isdir ('/Developer/SDKs/MacOSX10.7.sdk')):
			self.mac_sdk_path = '/Developer/SDKs/MacOSX10.7.sdk'
			self.gcc_flags.extend ([
				'-D_XOPEN_SOURCE',
				'-isysroot %{mac_sdk_path}',
				'-mmacosx-version-min=10.7',
			])
		else:
			raise IOError ('Mac OS X SDKs 10.6 and 10.7 not found')

		self.gcc_arch_flags = [ '-m32', '-arch i386' ]
		
		self.gcc_flags.extend (self.gcc_arch_flags)
		self.ld_flags.extend (self.gcc_arch_flags)

		#if (os.path.isfile ('/usr/bin/gcc-4.2')):
		#	self.env.set ('CC',  'gcc-4.2')
		#	self.env.set ('CXX', 'g++-4.2')
		#else:
		self.env.set ('CC',  'gcc')
		self.env.set ('CXX', 'g++')
예제 #2
0
    def attach(self, bockbuild):
        UnixProfile.attach(self, bockbuild)
        bockbuild.toolchain = list(DarwinProfile.default_toolchain)
        self.name = "darwin"

        xcode_version = backtick("xcodebuild -version")[0]
        self.env.set("xcode_version", xcode_version)
        osx_sdk = backtick("xcrun --show-sdk-path")[0]
        self.env.set("osx_sdk", osx_sdk)

        if not os.path.exists(osx_sdk):
            error("Mac OS X SDK not found under %s" % osx_sdk)

        info("%s, %s" % (xcode_version, os.path.basename(osx_sdk)))

        self.gcc_flags.extend(
            [
                "-D_XOPEN_SOURCE",
                "-isysroot %s" % osx_sdk,
                # needed to ensure install_name_tool can succeed staging binaries
                "-Wl,-headerpad_max_install_names",
            ]
        )

        self.ld_flags.extend(
            [
                # needed to ensure install_name_tool can succeed staging binaries
                "-headerpad_max_install_names"
            ]
        )
예제 #3
0
	def __init__ (self, prefix = None, m64 = False, min_version = 6):
		UnixProfile.__init__ (self, prefix)
		
		self.name = 'darwin'
		self.m64 = m64

		if os.path.exists (self.prefix):
			error ('Prefix %s exists, and may interfere with the staged build. Please remove and try again.' % self.prefix)

		sdkroot = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/'
		if (not os.path.isdir (sdkroot)):
			sdkroot = '/Developer/SDKs/'

		sdk_paths = (sdkroot + 'MacOSX10.%s.sdk' % v for v in range (min_version, 20)) #future-proof! :P

		self.mac_sdk_path = None

		for sdk in sdk_paths:
			if os.path.isdir (sdk):
				self.mac_sdk_path = sdk
				break

		if self.mac_sdk_path is None: error ('Mac OS X SDK (>=10.%s) not found under %s' % (min_version, sdkroot))

		self.gcc_flags.extend ([
				'-D_XOPEN_SOURCE',
				'-isysroot %s' % self.mac_sdk_path,
				'-Wl,-headerpad_max_install_names' #needed to ensure install_name_tool can succeed staging binaries
			])

		self.ld_flags.extend ([
				'-headerpad_max_install_names' #needed to ensure install_name_tool can succeed staging binaries
			])

		self.target_osx = '10.%s' % min_version

		if min_version:
			self.gcc_flags.extend (['-mmacosx-version-min=%s' % self.target_osx])
			self.env.set ('MACOSX_DEPLOYMENT_TARGET', self.target_osx)
		
		if self.cmd_options.debug is True:
			self.gcc_flags.extend ('-O0', '-ggdb3')

		if os.getenv('BOCKBUILD_USE_CCACHE') is None:
			self.env.set ('CC',  'xcrun gcc')
			self.env.set ('CXX', 'xcrun g++')
		else:
			self.env.set ('CC',  'ccache xcrun gcc')
			self.env.set ('CXX', 'ccache xcrun g++')

		self.staged_binaries = []
		self.staged_textfiles = []

		if self.arch == 'default':
			self.arch = 'darwin-32'

		# GTK2_RC_FILES must be a ":"-seperated list of files (NOT a single folder)
		self.gtk2_rc_files = os.path.join (os.getcwd (), 'skeleton.darwin', 'Contents', 'Resources', 'etc', 'gtk-2.0', 'gtkrc')
		self.env.set ('GTK2_RC_FILES', '%{gtk2_rc_files}')
예제 #4
0
    def __init__(self, prefix=False, m64=False, min_version=6):
        UnixProfile.__init__(self, prefix)

        self.name = 'darwin'
        self.os_x_major = 10
        self.m64 = m64

        sdkroot = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/'
        if (not os.path.isdir(sdkroot)):
            sdkroot = '/Developer/SDKs/'

        sdk_paths = (sdkroot + 'MacOSX10.%s.sdk' % v
                     for v in range(min_version, 20))  #future-proof! :P

        for sdk in sdk_paths:
            if os.path.isdir(sdk):
                self.mac_sdk_path = sdk
                break

        if self.mac_sdk_path is None:
            error('Mac OS X SDK (>=10.%s) not found under %s' %
                  (min_version, sdkroot))

        os.environ['MACOSX_DEPLOYMENT_SDK_PATH'] = self.mac_sdk_path

        self.gcc_flags.extend(
            ['-D_XOPEN_SOURCE',
             '-isysroot %s' % self.mac_sdk_path])

        self.target_osx = '10.%s' % min_version

        if min_version:
            self.gcc_flags.extend(
                ['-mmacosx-version-min=%s' % self.target_osx])
            self.env.set('MACOSX_DEPLOYMENT_TARGET', self.target_osx)

        self.gcc_debug_flags = ['-O0', '-ggdb3']

        if self.cmd_options.debug is True:
            self.gcc_flags.extend(self.gcc_debug_flags)

        #if (os.path.isfile ('/usr/bin/gcc-4.2')):
        #	self.env.set ('CC',  'gcc-4.2')
        #	self.env.set ('CXX', 'g++-4.2')
        #else:
        if os.getenv('BOCKBUILD_USE_CCACHE') is None:
            self.env.set('CC', 'xcrun gcc')
            self.env.set('CXX', 'xcrun g++')
        else:
            self.env.set('CC', 'ccache xcrun gcc')
            self.env.set('CXX', 'ccache xcrun g++')

        # GTK2_RC_FILES must be a ":"-seperated list of files (NOT a single folder)
        self.gtk2_rc_files = os.path.join(os.getcwd(), 'skeleton.darwin',
                                          'Contents', 'Resources', 'etc',
                                          'gtk-2.0', 'gtkrc')
        self.env.set('GTK2_RC_FILES', '%{gtk2_rc_files}')
예제 #5
0
    def __init__(self, prefix=False, m64=False):
        UnixProfile.__init__(self, prefix)

        self.name = "darwin"
        self.os_x_major = 10
        self.m64 = m64

        sdkroot = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/"
        if not os.path.isdir(sdkroot):
            sdkroot = "/Developer/SDKs/"

        if os.path.isdir(sdkroot + "MacOSX10.6.sdk"):
            self.os_x_minor = 6
            self.mac_sdk_path = sdkroot + "MacOSX10.6.sdk"
            self.gcc_flags.extend(["-D_XOPEN_SOURCE", "-isysroot %{mac_sdk_path}", "-mmacosx-version-min=10.6"])
            self.mac_sdk_path = sdkroot + "MacOSX10.6.sdk"
        elif os.path.isdir(sdkroot + "MacOSX10.7.sdk"):
            self.os_x_minor = 7
            self.mac_sdk_path = sdkroot + "MacOSX10.7.sdk"
            self.gcc_flags.extend(["-D_XOPEN_SOURCE", "-isysroot %{mac_sdk_path}", "-mmacosx-version-min=10.7"])
        elif os.path.isdir(sdkroot + "MacOSX10.8.sdk"):
            self.os_x_minor = 8
            self.mac_sdk_path = sdkroot + "MacOSX10.8.sdk"
            self.gcc_flags.extend(["-D_XOPEN_SOURCE", "-isysroot %{mac_sdk_path}", "-mmacosx-version-min=10.8"])
        else:
            raise IOError("Mac OS X SDKs 10.6, 10.7 or 10.8 not found")

        if m64:
            self.gcc_arch_flags = ["-m64", "-arch x86_64"]
        else:
            self.gcc_arch_flags = ["-m32", "-arch i386"]

        self.gcc_debug_flags = ["-O0", "-ggdb3"]

        if self.cmd_options.debug is True:
            self.gcc_flags.extend(self.gcc_debug_flags)

        self.gcc_flags.extend(self.gcc_arch_flags)
        self.ld_flags.extend(self.gcc_arch_flags)

        # if (os.path.isfile ('/usr/bin/gcc-4.2')):
        # 	self.env.set ('CC',  'gcc-4.2')
        # 	self.env.set ('CXX', 'g++-4.2')
        # else:
        if os.getenv("BOCKBUILD_USE_CCACHE") is None:
            self.env.set("CC", "xcrun gcc")
            self.env.set("CXX", "xcrun g++")
        else:
            self.env.set("CC", "ccache xcrun gcc")
            self.env.set("CXX", "ccache xcrun g++")

            # GTK2_RC_FILES must be a ":"-seperated list of files (NOT a single folder)
        self.gtk2_rc_files = os.path.join(
            os.getcwd(), "skeleton.darwin", "Contents", "Resources", "etc", "gtk-2.0", "gtkrc"
        )
        self.env.set("GTK2_RC_FILES", "%{gtk2_rc_files}")
예제 #6
0
	def __init__ (self, prefix = False, m64 = False, min_version = 6):
		UnixProfile.__init__ (self, prefix)
		
		self.name = 'darwin'
		self.os_x_major = 10
		self.m64 = m64

		sdkroot = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/'
		if (not os.path.isdir (sdkroot)):
			sdkroot = '/Developer/SDKs/'

		sdk_paths = (sdkroot + 'MacOSX10.%s.sdk' % v for v in range (min_version, 20)) #future-proof! :P

		for sdk in sdk_paths:
			if os.path.isdir (sdk):
				self.mac_sdk_path = sdk
				break

		if self.mac_sdk_path is None: error ('Mac OS X SDK (>=10.%s) not found under %s' % (min_version, sdkroot))

		os.environ ['MACOSX_DEPLOYMENT_SDK_PATH'] = self.mac_sdk_path

		self.gcc_flags.extend ([
				'-D_XOPEN_SOURCE',
				'-isysroot %s' % self.mac_sdk_path
			])

		self.target_osx = '10.%s' % min_version

		if min_version:
			self.gcc_flags.extend (['-mmacosx-version-min=%s' % self.target_osx])
			self.env.set ('MACOSX_DEPLOYMENT_TARGET', self.target_osx)

		self.gcc_debug_flags = [ '-O0', '-ggdb3' ]
		
		if self.cmd_options.debug is True:
			self.gcc_flags.extend (self.gcc_debug_flags)

		#if (os.path.isfile ('/usr/bin/gcc-4.2')):
		#	self.env.set ('CC',  'gcc-4.2')
		#	self.env.set ('CXX', 'g++-4.2')
		#else:
		if os.getenv('BOCKBUILD_USE_CCACHE') is None:
			self.env.set ('CC',  'xcrun gcc')
			self.env.set ('CXX', 'xcrun g++')
		else:
			self.env.set ('CC',  'ccache xcrun gcc')
			self.env.set ('CXX', 'ccache xcrun g++')

		# GTK2_RC_FILES must be a ":"-seperated list of files (NOT a single folder)
		self.gtk2_rc_files = os.path.join (os.getcwd (), 'skeleton.darwin', 'Contents', 'Resources', 'etc', 'gtk-2.0', 'gtkrc')
		self.env.set ('GTK2_RC_FILES', '%{gtk2_rc_files}')
예제 #7
0
	def __init__ (self, prefix = False):
		UnixProfile.__init__ (self, prefix)
		
		self.name = 'darwin'
		self.os_x_major = 10

		sdkroot = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/'
		if (not os.path.isdir (sdkroot)):
			sdkroot = '/Developer/SDKs/'

		if (os.path.isdir (sdkroot + 'MacOSX10.6.sdk')):
			self.os_x_minor = 6
			self.mac_sdk_path = sdkroot + 'MacOSX10.6.sdk'
			self.gcc_flags.extend ([
				'-D_XOPEN_SOURCE',
				'-isysroot %{mac_sdk_path}',
				'-mmacosx-version-min=10.6',
			])
			self.mac_sdk_path = sdkroot + 'MacOSX10.6.sdk'
		elif (os.path.isdir (sdkroot + 'MacOSX10.7.sdk')):
			self.os_x_minor = 7
			self.mac_sdk_path = sdkroot + 'MacOSX10.7.sdk'
			self.gcc_flags.extend ([
				'-D_XOPEN_SOURCE',
				'-isysroot %{mac_sdk_path}',
				'-mmacosx-version-min=10.7',
			])
		else:
			raise IOError ('Mac OS X SDKs 10.6 and 10.7 not found')

		self.gcc_arch_flags = [ '-m32', '-arch i386' ]
		self.gcc_debug_flags = [ '-O0', '-ggdb3' ]
		
		if self.cmd_options.debug is True:
			self.gcc_flags.extend (self.gcc_debug_flags)

		self.gcc_flags.extend (self.gcc_arch_flags)
		self.ld_flags.extend (self.gcc_arch_flags)

		#if (os.path.isfile ('/usr/bin/gcc-4.2')):
		#	self.env.set ('CC',  'gcc-4.2')
		#	self.env.set ('CXX', 'g++-4.2')
		#else:
		self.env.set ('CC',  'gcc')
		self.env.set ('CXX', 'g++')

		# GTK2_RC_FILES must be a ":"-seperated list of files (NOT a single folder)
		self.gtk2_rc_files = os.path.join (os.getcwd (), 'skeleton.darwin', 'Contents', 'Resources', 'etc', 'gtk-2.0', 'gtkrc')
		self.env.set ('GTK2_RC_FILES', '%{gtk2_rc_files}')
예제 #8
0
    def __init__(self):
        UnixProfile.__init__(self)

        self.name = 'glick'
        self.prefix = '/proc/self/fd/1023'
        self.env.set('BUILD_PREFIX', self.prefix)

        self.glick_path = '/usr/bin/mkglick'

        if not os.path.exists(self.glick_path):
            raise IOError('Glick is not installed (http://www.gnome.org/~alexl/glick/): %s'
                          % self.glick_path)

        if not os.path.exists(self.prefix):
            raise IOError('We are not running in a glick magic shell')
예제 #9
0
    def __init__(self):
        UnixProfile.__init__(self)

        self.name = 'glick'
        self.prefix = '/proc/self/fd/1023'
        self.env.set('BUILD_PREFIX', self.prefix)

        self.glick_path = '/usr/bin/mkglick'

        if not os.path.exists(self.glick_path):
            raise IOError ('Glick is not installed (http://www.gnome.org/~alexl/glick/): %s' \
             % self.glick_path)

        if not os.path.exists(self.prefix):
            raise IOError('We are not running in a glick magic shell')
예제 #10
0
    def __init__(self, prefix=None, min_version=6):
        UnixProfile.__init__(self, prefix)

        self.toolchain = DarwinProfile.default_toolchain
        self.name = 'darwin'
        xcode_version = backtick('xcodebuild -version')[0]
        self.env.set('xcode_version', xcode_version)
        osx_sdk = backtick('xcrun --show-sdk-path')[0]
        self.env.set('osx_sdk', osx_sdk)

        if not os.path.exists(osx_sdk):
            error('Mac OS X SDK not found under %s' % osx_sdk)

        info('%s, %s' % (xcode_version, os.path.basename(osx_sdk)))

        self.gcc_flags.extend([
            '-D_XOPEN_SOURCE',
            '-isysroot %s' % osx_sdk,
            # needed to ensure install_name_tool can succeed staging binaries
            '-Wl,-headerpad_max_install_names'
        ])

        self.ld_flags.extend([
            # needed to ensure install_name_tool can succeed staging binaries
            '-headerpad_max_install_names'
        ])

        if min_version:
            self.target_osx = '10.%s' % min_version
            self.gcc_flags.extend(
                ['-mmacosx-version-min=%s' % self.target_osx])
            self.env.set('MACOSX_DEPLOYMENT_TARGET', self.target_osx)

        if self.cmd_options.debug is True:
            self.gcc_flags.extend(['-O0', '-ggdb3'])

        if os.getenv('BOCKBUILD_USE_CCACHE') is None:
            self.env.set('CC',  'xcrun gcc')
            self.env.set('CXX', 'xcrun g++')
        else:
            self.env.set('CC',  'ccache xcrun gcc')
            self.env.set('CXX', 'ccache xcrun g++')

        if self.arch == 'default':
            self.arch = 'darwin-32'

        self.debug_info = []
예제 #11
0
    def attach(self, bockbuild):
        UnixProfile.attach(self, bockbuild)
        bockbuild.toolchain = list(DarwinProfile.default_toolchain)
        self.name = 'darwin'
        self.debug_info = []

        xcode_version = self.use_Xcode()

        osx_sdk = backtick('xcrun --show-sdk-path')[0]
        if not os.path.exists(osx_sdk):
            error('Mac OS X SDK not found under %s' % osx_sdk)

        info('Using Xcode %s, SDK %s' %
             (xcode_version, os.path.basename(osx_sdk)))

        # Recent versions of XCode with recent MacOS SDKs buggily resolve several functions as existing on earlier OS X versions
        # even when they are not.
        xcode_blacklisted_functions = []

        # based on https://github.com/Homebrew/brew/blob/241ee989bb6a917cb6000a1aa06aa341c465a1b3/Library/Homebrew/extend/os/mac/extend/ENV/super.rb#L118-L128
        if xcode_version >= '8.0':
            xcode_blacklisted_functions.extend([
                'basename_r', 'clock_getres', 'clock_gettime', 'clock_settime',
                'dirname_r', 'getentropy', 'mkostemp', 'mkostemps',
                'timingsafe_bcmp'
            ])

        if xcode_version >= '9.0':
            xcode_blacklisted_functions.extend(
                ['fmemopen', 'futimens', 'open_memstream', 'utimensat'])

        map(lambda t: self.configure_flags.append('ac_cv_func_%s=no' % t),
            xcode_blacklisted_functions)

        self.gcc_flags.extend([
            '-D_XOPEN_SOURCE',
            '-isysroot %s' % osx_sdk,
            # needed to ensure install_name_tool can succeed staging binaries
            '-Wl,-headerpad_max_install_names'
        ])

        self.ld_flags.extend([
            # needed to ensure install_name_tool can succeed staging binaries
            '-headerpad_max_install_names'
        ])
예제 #12
0
	def __init__ (self):
		UnixProfile.__init__ (self)
		
		self.name = 'darwin'
		self.mac_sdk_path = '/Developer/SDKs/MacOSX10.5.sdk'
		
		if not os.path.isdir (self.mac_sdk_path):
			raise IOError ('Mac OS X SDK does not exist: %s' \
				% self.mac_sdk_path)

		self.gcc_arch_flags = [ '-m32', '-arch i386' ]
		self.gcc_flags.extend ([
			'-D_XOPEN_SOURCE',
			'-isysroot %{mac_sdk_path}',
			'-mmacosx-version-min=10.5'
		])
		self.gcc_flags.extend (self.gcc_arch_flags)
		self.ld_flags.extend (self.gcc_arch_flags)

		self.env.set ('CC',  'gcc-4.2')
		self.env.set ('CXX', 'g++-4.2')
예제 #13
0
    def attach (self, bockbuild):
        UnixProfile.attach (self, bockbuild)
        bockbuild.toolchain = list (DarwinProfile.default_toolchain)
        self.name = 'darwin'
        self.debug_info = []

        xcode_version = self.use_Xcode ()

        osx_sdk = backtick('xcrun --show-sdk-path')[0]
        if not os.path.exists(osx_sdk):
            error('Mac OS X SDK not found under %s' % osx_sdk)

        info('Using Xcode %s, SDK %s' % (xcode_version, os.path.basename(osx_sdk)))

        # Recent versions of XCode with recent MacOS SDKs buggily resolve several functions as existing on earlier OS X versions
        # even when they are not.
        xcode_blacklisted_functions = []

        # based on https://github.com/Homebrew/brew/blob/241ee989bb6a917cb6000a1aa06aa341c465a1b3/Library/Homebrew/extend/os/mac/extend/ENV/super.rb#L118-L128
        if xcode_version >= '8.0':
            xcode_blacklisted_functions.extend (['basename_r','clock_getres','clock_gettime','clock_settime','dirname_r','getentropy','mkostemp', 'mkostemps', 'timingsafe_bcmp'])

        if xcode_version >= '9.0':
            xcode_blacklisted_functions.extend (['fmemopen', 'futimens', 'open_memstream', 'utimensat'])

        map(lambda t : self.configure_flags.append ('ac_cv_func_%s=no' % t), xcode_blacklisted_functions)

        self.gcc_flags.extend([
            '-D_XOPEN_SOURCE',
            '-isysroot %s' % osx_sdk,
            # needed to ensure install_name_tool can succeed staging binaries
            '-Wl,-headerpad_max_install_names'
        ])

        self.ld_flags.extend([
            # needed to ensure install_name_tool can succeed staging binaries
            '-headerpad_max_install_names'
        ])
예제 #14
0
    def __init__(self, prefix=False, m64=False):
        UnixProfile.__init__(self, prefix)

        self.name = 'darwin'
        self.os_x_major = 10
        self.m64 = m64

        sdkroot = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/'
        if (not os.path.isdir(sdkroot)):
            sdkroot = '/Developer/SDKs/'

        if (os.path.isdir(sdkroot + 'MacOSX10.6.sdk')):
            self.os_x_minor = 6
            self.mac_sdk_path = sdkroot + 'MacOSX10.6.sdk'
            self.gcc_flags.extend([
                '-D_XOPEN_SOURCE',
                '-isysroot %{mac_sdk_path}',
                '-mmacosx-version-min=10.6',
            ])
            self.mac_sdk_path = sdkroot + 'MacOSX10.6.sdk'
        elif (os.path.isdir(sdkroot + 'MacOSX10.7.sdk')):
            self.os_x_minor = 7
            self.mac_sdk_path = sdkroot + 'MacOSX10.7.sdk'
            self.gcc_flags.extend([
                '-D_XOPEN_SOURCE',
                '-isysroot %{mac_sdk_path}',
                '-mmacosx-version-min=10.7',
            ])
        elif (os.path.isdir(sdkroot + 'MacOSX10.8.sdk')):
            self.os_x_minor = 8
            self.mac_sdk_path = sdkroot + 'MacOSX10.8.sdk'
            self.gcc_flags.extend([
                '-D_XOPEN_SOURCE',
                '-isysroot %{mac_sdk_path}',
                '-mmacosx-version-min=10.8',
            ])
        else:
            raise IOError('Mac OS X SDKs 10.6, 10.7 or 10.8 not found')

        if m64:
            self.gcc_arch_flags = ['-m64', '-arch x86_64']
        else:
            self.gcc_arch_flags = ['-m32', '-arch i386']

        self.gcc_debug_flags = ['-O0', '-ggdb3']

        if self.cmd_options.debug is True:
            self.gcc_flags.extend(self.gcc_debug_flags)

        self.gcc_flags.extend(self.gcc_arch_flags)
        self.ld_flags.extend(self.gcc_arch_flags)

        #if (os.path.isfile ('/usr/bin/gcc-4.2')):
        #	self.env.set ('CC',  'gcc-4.2')
        #	self.env.set ('CXX', 'g++-4.2')
        #else:
        if os.getenv('BOCKBUILD_USE_CCACHE') is None:
            self.env.set('CC', 'xcrun gcc')
            self.env.set('CXX', 'xcrun g++')
        else:
            self.env.set('CC', 'ccache xcrun gcc')
            self.env.set('CXX', 'ccache xcrun g++')

        # GTK2_RC_FILES must be a ":"-seperated list of files (NOT a single folder)
        self.gtk2_rc_files = os.path.join(os.getcwd(), 'skeleton.darwin',
                                          'Contents', 'Resources', 'etc',
                                          'gtk-2.0', 'gtkrc')
        self.env.set('GTK2_RC_FILES', '%{gtk2_rc_files}')
예제 #15
0
	def bundle (self):
		UnixProfile.bundle (self)
		self.make_app_bundle ()
예제 #16
0
    def __init__(self, prefix=None, m64=False, min_version=6):
        UnixProfile.__init__(self, prefix)

        self.name = "darwin"
        self.m64 = m64

        if os.path.exists(self.prefix):
            error(
                "Prefix %s exists, and may interfere with the staged build. Please remove and try again." % self.prefix
            )

        sdkroot = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/"
        if not os.path.isdir(sdkroot):
            sdkroot = "/Developer/SDKs/"

        sdk_paths = (sdkroot + "MacOSX10.%s.sdk" % v for v in range(min_version, 20))  # future-proof! :P

        self.mac_sdk_path = None

        for sdk in sdk_paths:
            if os.path.isdir(sdk):
                self.mac_sdk_path = sdk
                break

        if self.mac_sdk_path is None:
            error("Mac OS X SDK (>=10.%s) not found under %s" % (min_version, sdkroot))

        self.gcc_flags.extend(
            [
                "-D_XOPEN_SOURCE",
                "-isysroot %s" % self.mac_sdk_path,
                "-Wl,-headerpad_max_install_names",  # needed to ensure install_name_tool can succeed staging binaries
            ]
        )

        self.ld_flags.extend(
            ["-headerpad_max_install_names"]  # needed to ensure install_name_tool can succeed staging binaries
        )

        self.target_osx = "10.%s" % min_version

        if min_version:
            self.gcc_flags.extend(["-mmacosx-version-min=%s" % self.target_osx])
            self.env.set("MACOSX_DEPLOYMENT_TARGET", self.target_osx)

        if self.cmd_options.debug is True:
            self.gcc_flags.extend(["-O0", "-ggdb3"])

        if os.getenv("BOCKBUILD_USE_CCACHE") is None:
            self.env.set("CC", "xcrun gcc")
            self.env.set("CXX", "xcrun g++")
        else:
            self.env.set("CC", "ccache xcrun gcc")
            self.env.set("CXX", "ccache xcrun g++")

        self.staged_binaries = []
        self.staged_textfiles = []

        if self.arch == "default":
            self.arch = "darwin-32"

            # GTK2_RC_FILES must be a ":"-seperated list of files (NOT a single folder)
        self.gtk2_rc_files = os.path.join(
            os.getcwd(), "skeleton.darwin", "Contents", "Resources", "etc", "gtk-2.0", "gtkrc"
        )
        self.env.set("GTK2_RC_FILES", "%{gtk2_rc_files}")