This allows us not to have to hack our definitions in the upstream files,
making it easier to upgrade to newer versions in the future.
For the include paths to work, the headers are moved to a GL subfolder to
match their upstream location.
(cherry picked from commit 768e925271
)
120 lines
3.4 KiB
Python
120 lines
3.4 KiB
Python
|
|
import os
|
|
import sys
|
|
|
|
|
|
def is_active():
|
|
return True
|
|
|
|
def get_name():
|
|
return "OSX"
|
|
|
|
def can_build():
|
|
|
|
if (sys.platform == "darwin" or os.environ.has_key("OSXCROSS_ROOT")):
|
|
return True
|
|
|
|
|
|
return False
|
|
|
|
def get_opts():
|
|
|
|
return [
|
|
('force_64_bits','Force 64 bits binary','no'),
|
|
('osxcross_sdk','OSXCross SDK version','darwin14'),
|
|
|
|
]
|
|
|
|
def get_flags():
|
|
|
|
return [
|
|
('legacygl', 'yes'),
|
|
('builtin_zlib', 'no'),
|
|
('freetype','builtin'), #use builtin freetype
|
|
('glew', 'yes'),
|
|
]
|
|
|
|
|
|
|
|
def configure(env):
|
|
|
|
env.Append(CPPPATH=['#platform/osx'])
|
|
|
|
if (env["bits"]=="default"):
|
|
env["bits"]="32"
|
|
|
|
if (env["target"]=="release"):
|
|
|
|
env.Append(CCFLAGS=['-O2','-ffast-math','-fomit-frame-pointer','-ftree-vectorize','-msse2'])
|
|
|
|
elif (env["target"]=="release_debug"):
|
|
|
|
env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
|
|
|
|
elif (env["target"]=="debug"):
|
|
|
|
env.Append(CCFLAGS=['-g3', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
|
|
|
|
|
if (env["freetype"]!="no"):
|
|
env.Append(CCFLAGS=['-DFREETYPE_ENABLED'])
|
|
env.Append(CPPPATH=['#tools/freetype'])
|
|
env.Append(CPPPATH=['#tools/freetype/freetype/include'])
|
|
|
|
|
|
|
|
if (not os.environ.has_key("OSXCROSS_ROOT")):
|
|
#regular native build
|
|
if (env["bits"]=="64"):
|
|
env.Append(CCFLAGS=['-arch', 'x86_64'])
|
|
env.Append(LINKFLAGS=['-arch', 'x86_64'])
|
|
elif (env["bits"]=="32"):
|
|
env.Append(CCFLAGS=['-arch', 'i386'])
|
|
env.Append(LINKFLAGS=['-arch', 'i386'])
|
|
else:
|
|
env.Append(CCFLAGS=['-arch', 'i386', '-arch', 'x86_64'])
|
|
env.Append(LINKFLAGS=['-arch', 'i386', '-arch', 'x86_64'])
|
|
else:
|
|
#osxcross build
|
|
root=os.environ.get("OSXCROSS_ROOT",0)
|
|
if env["bits"]=="64":
|
|
basecmd=root+"/target/bin/x86_64-apple-"+env["osxcross_sdk"]+"-"
|
|
else:
|
|
basecmd=root+"/target/bin/i386-apple-"+env["osxcross_sdk"]+"-"
|
|
|
|
|
|
env['CC'] = basecmd+"cc"
|
|
env['CXX'] = basecmd+"c++"
|
|
env['AR'] = basecmd+"ar"
|
|
env['RANLIB'] = basecmd+"ranlib"
|
|
env['AS'] = basecmd+"as"
|
|
|
|
|
|
# env.Append(CPPPATH=['#platform/osx/include/freetype2', '#platform/osx/include'])
|
|
# env.Append(LIBPATH=['#platform/osx/lib'])
|
|
|
|
|
|
env.Append(CPPFLAGS=["-DAPPLE_STYLE_KEYS"])
|
|
env.Append(CPPFLAGS=['-DUNIX_ENABLED','-DGLES2_ENABLED','-DOSX_ENABLED'])
|
|
env.Append(LIBS=['pthread'])
|
|
#env.Append(CPPFLAGS=['-F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks', '-isysroot', '/Developer/SDKs/MacOSX10.4u.sdk', '-mmacosx-version-min=10.4'])
|
|
#env.Append(LINKFLAGS=['-mmacosx-version-min=10.4', '-isysroot', '/Developer/SDKs/MacOSX10.4u.sdk', '-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk'])
|
|
env.Append(LINKFLAGS=['-framework', 'Cocoa', '-framework', 'Carbon', '-framework', 'OpenGL', '-framework', 'AGL', '-framework', 'AudioUnit','-lz'])
|
|
|
|
if (env["CXX"]=="clang++"):
|
|
env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND'])
|
|
env["CC"]="clang"
|
|
env["LD"]="clang++"
|
|
if (env["colored"]=="yes"):
|
|
if sys.stdout.isatty():
|
|
env.Append(CPPFLAGS=["-fcolor-diagnostics"])
|
|
|
|
import methods
|
|
|
|
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
|
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
|
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
|
#env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
|
|
|
env["x86_opt_gcc"]=True
|