# This file contains the default configuration to compile for Darwin # platforms. It contains sensitive enviroment configuration that # shouldn't be modified unless you know what you are doing. # PLEASE, DO NOT EDIT THIS FILE import os from cerbero.config import Architecture, DistroVersion from cerbero.utils import shell from cerbero.errors import FatalError # We don't want anything from macports detected in configure and # used later. System libs are passed through the -isysroot option allow_system_libs=False if 'nogi' not in variants: variants.append('gi') if target_arch == Architecture.X86_64: build='x86_64-apple-darwin12' elif target_arch == Architecture.X86: build='i386-apple-darwin12' elif target_arch == Architecture.UNIVERSAL: build='universal-apple-darwin12' # By default we ask for the 'latest' SDK. This can be overriden by # configure using 'osx_target_sdk_version' (e.g. set to '10.10') sdk_requested_version = '' # Empty == latest if osx_target_sdk_version is not None: sdk_requested_version = osx_target_sdk_version sdk_root = None ret = shell.check_output(['xcodebuild', '-sdk', 'macosx' + sdk_requested_version, '-version', 'Path'], fail=False).strip() if ret.startswith('/Applications'): sdk_root = ret if sdk_root is None: raise FatalError("Could not determine SDK path with requested version %s: %s" % (sdk_requested_version, ret)) elif not os.path.exists(sdk_root): raise FatalError("Determined SDK path %s does not exist. Is your XCode installation broken?" % sdk_root); min_osx_sdk_version = min_osx_sdk_version or '10.11' sdk='-mmacosx-version-min=%s -isysroot %s' % (min_osx_sdk_version, sdk_root) # Initialize all these so we can just do += later for f in ['CFLAGS', 'CCASFLAGS', 'CXXFLAGS', 'OBJCFLAGS', 'CPPFLAGS', 'LDFLAGS']: env[f] = env.get(f, '') arch_cflags = '' arch_ldflags = ' -headerpad_max_install_names -Wl,-headerpad_max_install_names -Wno-error=unused-command-line-argument ' if target_arch == Architecture.X86_64: arch_cflags += ' -arch x86_64 -m64' arch_ldflags += ' -arch x86_64 -m64 -Wl,-arch,x86_64' elif target_arch == Architecture.X86: arch_cflags += ' -arch i386 -m32' arch_ldflags += ' -arch i386 -m32 -Wl,-arch,i386' env['VERSIONER_PYTHON_PREFER_32_BIT'] = 'yes' arch_cflags += ' -Wno-error=format-nonliteral ' incl_dir = os.path.join(prefix, 'include') if not os.path.exists(incl_dir): os.makedirs(incl_dir) # Append to these flags if not already present for f in ['CFLAGS', 'CCASFLAGS', 'CXXFLAGS', 'OBJCFLAGS']: if arch_cflags not in env[f]: env[f] += ' %s ' % arch_cflags incflag = '-I' + incl_dir if incflag not in env[f]: env[f] += ' %s ' % incflag if sdk not in env[f]: env[f] += ' %s ' % sdk # To ensure that AC_CHECK_HEADER etc detect the right headers if arch_cflags not in env['CPPFLAGS']: env['CPPFLAGS'] += ' %s ' % arch_cflags if sdk not in env['CPPFLAGS']: env['CPPFLAGS'] += ' %s ' % sdk if arch_ldflags not in env['LDFLAGS']: env['LDFLAGS'] += ' %s ' % arch_ldflags if sdk not in env['LDFLAGS']: env['LDFLAGS'] += ' %s ' % sdk env['STRIP'] = 'strip' env['LD'] = 'ld' env['AR'] = 'ar' env['RANLIB'] = 'ranlib' env['NM'] = 'nm' env['OBJCOPY'] = 'objcopy' env['CC'] = 'clang' env['OBJC'] = 'clang' env['CXX'] = 'clang++' env['OBJCXX'] = 'clang++' # Since 10.10 libstdc++ is deprecated, and might no longer be # shipped. Make sure we use libc++ instead env['CXXFLAGS'] += ' -stdlib=libc++ ' if target_arch != Architecture.UNIVERSAL: # Ensure lightweight architectures are build when only targetting one arch env['ARCHFLAGS'] = '-arch %s' % target_arch if use_ccache: comp = env.get('CC', 'clang') if not 'ccache' in comp: env['CC'] = 'ccache ' + comp comp = env.get('CXX', 'clang++') if not 'ccache' in comp: env['CXX'] = 'ccache ' + comp # Workaround for https://openradar.appspot.com/22671534 on 10.11. env['gl_cv_func_getcwd_abort_bug'] = 'no' moltenvk_prefix = os.path.join(home_dir, 'moltenvk')