detect.py 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. import os
  2. import sys
  3. import string
  4. def is_active():
  5. return True
  6. def get_name():
  7. return "WinRT"
  8. def can_build():
  9. if (os.name=="nt"):
  10. #building natively on windows!
  11. if (os.getenv("VSINSTALLDIR")):
  12. return True
  13. return False
  14. def get_opts():
  15. return []
  16. def get_flags():
  17. return []
  18. def configure(env):
  19. env.Append(CPPPATH=['#platform/winrt', '#platform/winrt/include'])
  20. arch = ""
  21. if os.getenv('PLATFORM') == "ARM":
  22. # compiler commandline
  23. # debug: /Yu"pch.h" /MP /GS /analyze- /W3 /wd"4453" /wd"28204" /Zc:wchar_t /I"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\App2\App2.WindowsPhone\" /I"Generated Files\" /I"ARM\Debug\" /I"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\App2\App2.Shared\" /ZW:nostdlib /Zi /Gm- /Od /sdl /Fd"ARM\Debug\vc120.pdb" /fp:precise /D "PSAPI_VERSION=2" /D "WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP" /D "_UITHREADCTXT_SUPPORT=0" /D "_UNICODE" /D "UNICODE" /D "_DEBUG" /errorReport:prompt /WX- /Zc:forScope /RTC1 /ZW /Gd /Oy- /MDd /Fa"ARM\Debug\" /EHsc /nologo /Fo"ARM\Debug\" /Fp"ARM\Debug\App2.WindowsPhone.pch"
  24. # release: /Yu"pch.h" /MP /GS /GL /analyze- /W3 /wd"4453" /wd"28204" /Gy /Zc:wchar_t /I"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\App2\App2.WindowsPhone\" /I"Generated Files\" /I"ARM\Release\" /I"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\App2\App2.Shared\" /ZW:nostdlib /Zi /Gm- /O2 /sdl /Fd"ARM\Release\vc120.pdb" /fp:precise /D "PSAPI_VERSION=2" /D "WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP" /D "_UITHREADCTXT_SUPPORT=0" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /ZW /Gd /Oy- /Oi /MD /Fa"ARM\Release\" /EHsc /nologo /Fo"ARM\Release\" /Fp"ARM\Release\App2.WindowsPhone.pch"
  25. # linker commandline
  26. # debug: /OUT:"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\ARM\Debug\App2.WindowsPhone\App2.WindowsPhone.exe" /MANIFEST:NO /NXCOMPAT /PDB:"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\ARM\Debug\App2.WindowsPhone\App2.WindowsPhone.pdb" /DYNAMICBASE "WindowsPhoneCore.lib" "RuntimeObject.lib" "PhoneAppModelHost.lib" /DEBUG /MACHINE:ARM /NODEFAULTLIB:"kernel32.lib" /NODEFAULTLIB:"ole32.lib" /WINMD /APPCONTAINER /INCREMENTAL /PGD:"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\ARM\Debug\App2.WindowsPhone\App2.WindowsPhone.pgd" /WINMDFILE:"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\ARM\Debug\App2.WindowsPhone\App2.winmd" /SUBSYSTEM:WINDOWS /MANIFESTUAC:NO /ManifestFile:"ARM\Debug\App2.WindowsPhone.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1
  27. # release: /OUT:"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\ARM\Release\App2.WindowsPhone\App2.WindowsPhone.exe" /MANIFEST:NO /LTCG /NXCOMPAT /PDB:"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\ARM\Release\App2.WindowsPhone\App2.WindowsPhone.pdb" /DYNAMICBASE "WindowsPhoneCore.lib" "RuntimeObject.lib" "PhoneAppModelHost.lib" /DEBUG /MACHINE:ARM /NODEFAULTLIB:"kernel32.lib" /NODEFAULTLIB:"ole32.lib" /WINMD /APPCONTAINER /OPT:REF /PGD:"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\ARM\Release\App2.WindowsPhone\App2.WindowsPhone.pgd" /WINMDFILE:"C:\Users\ariel\Documents\Visual Studio 2013\Projects\App2\ARM\Release\App2.WindowsPhone\App2.winmd" /SUBSYSTEM:WINDOWS /MANIFESTUAC:NO /ManifestFile:"ARM\Release\App2.WindowsPhone.exe.intermediate.manifest" /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /TLBID:1
  28. arch = "arm"
  29. env.Append(LINKFLAGS=['/INCREMENTAL:NO', '/MANIFEST:NO', '/NXCOMPAT', '/DYNAMICBASE', "WindowsPhoneCore.lib", "RuntimeObject.lib", "PhoneAppModelHost.lib", "/DEBUG", "/MACHINE:ARM", '/NODEFAULTLIB:"kernel32.lib"', '/NODEFAULTLIB:"ole32.lib"', '/WINMD', '/APPCONTAINER', '/MANIFESTUAC:NO', '/ERRORREPORT:PROMPT', '/NOLOGO', '/TLBID:1'])
  30. env.Append(LIBPATH=['#platform/winrt/ARM/lib'])
  31. env.Append(CCFLAGS=string.split('/MP /GS /wd"4453" /wd"28204" /analyze- /Zc:wchar_t /Zi /Gm- /Od /fp:precise /fp:precise /D "PSAPI_VERSION=2" /D "WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP" /DWINDOWSPHONE_ENABLED /D "_UITHREADCTXT_SUPPORT=0" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MD /RTC1 /Gd /EHsc /nologo'))
  32. env.Append(CXXFLAGS=string.split('/ZW'))
  33. if (env["target"]=="release"):
  34. env.Append(CCFLAGS=['/O2'])
  35. env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS'])
  36. elif (env["target"]=="test"):
  37. env.Append(CCFLAGS=['/O2','/DDEBUG_ENABLED','/DD3D_DEBUG_INFO'])
  38. env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
  39. elif (env["target"]=="debug"):
  40. env.Append(CCFLAGS=['/Zi','/DDEBUG_ENABLED','/DD3D_DEBUG_INFO'])
  41. env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
  42. env.Append(LINKFLAGS=['/DEBUG', '/D_DEBUG'])
  43. elif (env["target"]=="profile"):
  44. env.Append(CCFLAGS=['-g','-pg'])
  45. env.Append(LINKFLAGS=['-pg'])
  46. env['ENV'] = os.environ;
  47. # fix environment for windows phone 8.1
  48. env['ENV']['WINDOWSPHONEKITDIR'] = env['ENV']['WINDOWSPHONEKITDIR'].replace("8.0", "8.1") # wtf
  49. env['ENV']['INCLUDE'] = env['ENV']['INCLUDE'].replace("8.0", "8.1")
  50. env['ENV']['LIB'] = env['ENV']['LIB'].replace("8.0", "8.1")
  51. env['ENV']['PATH'] = env['ENV']['PATH'].replace("8.0", "8.1")
  52. env['ENV']['LIBPATH'] = env['ENV']['LIBPATH'].replace("8.0\\Windows Metadata", "8.1\\References\\CommonConfiguration\\Neutral")
  53. else:
  54. arch = "x64"
  55. env.Append(LINKFLAGS=['/MANIFEST:NO', '/NXCOMPAT', '/DYNAMICBASE', "kernel32.lib", '/MACHINE:X64', '/WINMD', '/APPCONTAINER', '/MANIFESTUAC:NO', '/ERRORREPORT:PROMPT', '/NOLOGO', '/TLBID:1'])
  56. env.Append(LIBPATH=['#platform/winrt/x64/lib'])
  57. if (env["target"]=="release"):
  58. env.Append(CCFLAGS=['/O2'])
  59. env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS'])
  60. env.Append(LINKFLAGS=['/ENTRY:mainCRTStartup'])
  61. elif (env["target"]=="test"):
  62. env.Append(CCFLAGS=['/O2','/DDEBUG_ENABLED','/DD3D_DEBUG_INFO'])
  63. env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
  64. elif (env["target"]=="debug"):
  65. env.Append(CCFLAGS=['/Zi','/DDEBUG_ENABLED','/DD3D_DEBUG_INFO'])
  66. env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
  67. env.Append(LINKFLAGS=['/DEBUG', '/D_DEBUG'])
  68. elif (env["target"]=="profile"):
  69. env.Append(CCFLAGS=['-g','-pg'])
  70. env.Append(LINKFLAGS=['-pg'])
  71. env.Append(CCFLAGS=string.split('/MP /GS /wd"4453" /wd"28204" /Zc:wchar_t /Gm- /Od /fp:precise /D "_UNICODE" /D "UNICODE" /D "WINAPI_FAMILY=WINAPI_FAMILY_APP" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /MDd /EHsc /nologo'))
  72. env.Append(CXXFLAGS=string.split('/ZW'))
  73. env.Append(CCFLAGS=['/AI', os.environ['VCINSTALLDIR']+'\\vcpackages', '/AI', os.environ['WINDOWSSDKDIR']+'\\References\\CommonConfiguration\\Neutral'])
  74. env.Append(CCFLAGS=['/DWINAPI_FAMILY=WINAPI_FAMILY_APP', '/D_WIN32_WINNT=0x0603', '/DNTDDI_VERSION=0x06030000'])
  75. env['ENV'] = os.environ;
  76. env["PROGSUFFIX"]="."+arch+env["PROGSUFFIX"]
  77. env["OBJSUFFIX"]="."+arch+env["OBJSUFFIX"]
  78. env["LIBSUFFIX"]="."+arch+env["LIBSUFFIX"]
  79. #env.Append(CCFLAGS=['/Gd','/GR','/nologo', '/EHsc'])
  80. #env.Append(CXXFLAGS=['/TP', '/ZW'])
  81. #env.Append(CPPFLAGS=['/DMSVC', '/GR', ])
  82. ##env.Append(CCFLAGS=['/I'+os.getenv("WindowsSdkDir")+"/Include"])
  83. env.Append(CCFLAGS=['/DWINRT_ENABLED'])
  84. env.Append(CCFLAGS=['/DWINDOWS_ENABLED'])
  85. env.Append(CCFLAGS=['/DRTAUDIO_ENABLED'])
  86. #env.Append(CCFLAGS=['/DWIN32'])
  87. env.Append(CCFLAGS=['/DTYPED_METHOD_BIND'])
  88. env.Append(CCFLAGS=['/DGLES2_ENABLED'])
  89. #env.Append(CCFLAGS=['/DGLES1_ENABLED'])
  90. LIBS=[
  91. #'winmm',
  92. 'libEGL',
  93. 'libGLESv2',
  94. 'libANGLE',
  95. #'kernel32','ole32','user32', 'advapi32'
  96. ]
  97. env.Append(LINKFLAGS=[p+".lib" for p in LIBS])
  98. import methods
  99. env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
  100. env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
  101. env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
  102. env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
  103. #/c/Program Files (x86)/Windows Phone Kits/8.1/lib/ARM/WindowsPhoneCore.lib