BUILD.gn 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. # Copyright 2016 Google Inc.
  2. #
  3. # Use of this source code is governed by a BSD-style license that can be
  4. # found in the LICENSE file.
  5. declare_args() {
  6. }
  7. import("../third_party.gni")
  8. third_party("libsdl") {
  9. public_include_dirs = [ "../externals/sdl/include" ]
  10. include_dirs = [ "." ]
  11. sources = [
  12. "../externals/sdl/src/SDL.c",
  13. "../externals/sdl/src/SDL_assert.c",
  14. "../externals/sdl/src/SDL_error.c",
  15. "../externals/sdl/src/SDL_hints.c",
  16. "../externals/sdl/src/SDL_log.c",
  17. "../externals/sdl/src/atomic/SDL_atomic.c",
  18. "../externals/sdl/src/atomic/SDL_spinlock.c",
  19. "../externals/sdl/src/audio/SDL_audio.c",
  20. "../externals/sdl/src/audio/SDL_audiocvt.c",
  21. "../externals/sdl/src/audio/SDL_audiodev.c",
  22. "../externals/sdl/src/audio/SDL_audiotypecvt.c",
  23. "../externals/sdl/src/audio/SDL_mixer.c",
  24. "../externals/sdl/src/audio/SDL_wave.c",
  25. "../externals/sdl/src/cpuinfo/SDL_cpuinfo.c",
  26. "../externals/sdl/src/dynapi/SDL_dynapi.c",
  27. "../externals/sdl/src/events/SDL_clipboardevents.c",
  28. "../externals/sdl/src/events/SDL_dropevents.c",
  29. "../externals/sdl/src/events/SDL_events.c",
  30. "../externals/sdl/src/events/SDL_gesture.c",
  31. "../externals/sdl/src/events/SDL_keyboard.c",
  32. "../externals/sdl/src/events/SDL_mouse.c",
  33. "../externals/sdl/src/events/SDL_quit.c",
  34. "../externals/sdl/src/events/SDL_touch.c",
  35. "../externals/sdl/src/events/SDL_windowevents.c",
  36. "../externals/sdl/src/file/SDL_rwops.c",
  37. "../externals/sdl/src/haptic/SDL_haptic.c",
  38. "../externals/sdl/src/haptic/dummy/SDL_syshaptic.c",
  39. "../externals/sdl/src/joystick/SDL_gamecontroller.c",
  40. "../externals/sdl/src/joystick/SDL_joystick.c",
  41. "../externals/sdl/src/joystick/dummy/SDL_sysjoystick.c",
  42. "../externals/sdl/src/power/SDL_power.c",
  43. "../externals/sdl/src/render/SDL_render.c",
  44. "../externals/sdl/src/render/SDL_yuv_sw.c",
  45. "../externals/sdl/src/render/software/SDL_blendfillrect.c",
  46. "../externals/sdl/src/render/software/SDL_blendline.c",
  47. "../externals/sdl/src/render/software/SDL_blendpoint.c",
  48. "../externals/sdl/src/render/software/SDL_drawline.c",
  49. "../externals/sdl/src/render/software/SDL_drawpoint.c",
  50. "../externals/sdl/src/render/software/SDL_render_sw.c",
  51. "../externals/sdl/src/render/software/SDL_rotate.c",
  52. "../externals/sdl/src/stdlib/SDL_getenv.c",
  53. "../externals/sdl/src/stdlib/SDL_iconv.c",
  54. "../externals/sdl/src/stdlib/SDL_malloc.c",
  55. "../externals/sdl/src/stdlib/SDL_qsort.c",
  56. "../externals/sdl/src/stdlib/SDL_stdlib.c",
  57. "../externals/sdl/src/stdlib/SDL_string.c",
  58. "../externals/sdl/src/thread/SDL_thread.c",
  59. "../externals/sdl/src/timer/SDL_timer.c",
  60. "../externals/sdl/src/video/SDL_RLEaccel.c",
  61. "../externals/sdl/src/video/SDL_blit.c",
  62. "../externals/sdl/src/video/SDL_blit_0.c",
  63. "../externals/sdl/src/video/SDL_blit_1.c",
  64. "../externals/sdl/src/video/SDL_blit_A.c",
  65. "../externals/sdl/src/video/SDL_blit_N.c",
  66. "../externals/sdl/src/video/SDL_blit_auto.c",
  67. "../externals/sdl/src/video/SDL_blit_copy.c",
  68. "../externals/sdl/src/video/SDL_blit_slow.c",
  69. "../externals/sdl/src/video/SDL_bmp.c",
  70. "../externals/sdl/src/video/SDL_clipboard.c",
  71. "../externals/sdl/src/video/SDL_egl.c",
  72. "../externals/sdl/src/video/SDL_fillrect.c",
  73. "../externals/sdl/src/video/SDL_pixels.c",
  74. "../externals/sdl/src/video/SDL_rect.c",
  75. "../externals/sdl/src/video/SDL_shape.c",
  76. "../externals/sdl/src/video/SDL_stretch.c",
  77. "../externals/sdl/src/video/SDL_surface.c",
  78. "../externals/sdl/src/video/SDL_video.c",
  79. ]
  80. defines = [
  81. "HAVE_ACOS",
  82. "HAVE_ASIN",
  83. "HAVE_ATAN",
  84. "HAVE_ATAN2",
  85. "HAVE_CEIL",
  86. "HAVE_COPYSIGN",
  87. "HAVE_COS",
  88. "HAVE_COSF",
  89. "HAVE_FABS",
  90. "HAVE_FLOOR",
  91. "HAVE_LOG",
  92. "HAVE_POW",
  93. "HAVE_SCALBN",
  94. "HAVE_SIN",
  95. "HAVE_SINF",
  96. "HAVE_SQRT",
  97. "HAVE_SQRTF",
  98. "HAVE_TAN",
  99. "HAVE_TANF",
  100. "SDL_HAPTIC_DISABLED=1",
  101. "SDL_JOYSTICK_DISABLED=1",
  102. "USING_PREMAKE_CONFIG_H",
  103. ]
  104. libs = []
  105. if (!is_win) {
  106. defines += [
  107. "SDL_LOADSO_DLOPEN=1",
  108. "SDL_THREAD_PTHREAD=1",
  109. "SDL_THREAD_PTHREAD_RECURSIVE_MUTEX=1",
  110. "SDL_TIMER_UNIX=1",
  111. ]
  112. sources += [
  113. "../externals/sdl/src/loadso/dlopen/SDL_sysloadso.c",
  114. "../externals/sdl/src/thread/pthread/SDL_syscond.c",
  115. "../externals/sdl/src/thread/pthread/SDL_sysmutex.c",
  116. "../externals/sdl/src/thread/pthread/SDL_syssem.c",
  117. "../externals/sdl/src/thread/pthread/SDL_systhread.c",
  118. "../externals/sdl/src/thread/pthread/SDL_systls.c",
  119. "../externals/sdl/src/timer/unix/SDL_systimer.c",
  120. ]
  121. }
  122. if (is_linux) {
  123. sources += [
  124. "../externals/sdl/src/filesystem/unix/SDL_sysfilesystem.c",
  125. "../externals/sdl/src/render/opengles2/SDL_render_gles2.c",
  126. "../externals/sdl/src/render/opengles2/SDL_shaders_gles2.c",
  127. "../externals/sdl/src/video/wayland/SDL_waylanddyn.c",
  128. "../externals/sdl/src/video/wayland/SDL_waylandevents.c",
  129. "../externals/sdl/src/video/wayland/SDL_waylandmouse.c",
  130. "../externals/sdl/src/video/wayland/SDL_waylandopengles.c",
  131. "../externals/sdl/src/video/wayland/SDL_waylandtouch.c",
  132. "../externals/sdl/src/video/wayland/SDL_waylandvideo.c",
  133. "../externals/sdl/src/video/wayland/SDL_waylandwindow.c",
  134. "../externals/sdl/src/video/wayland/pointer-constraints-unstable-v1-protocol.c",
  135. "../externals/sdl/src/video/wayland/relative-pointer-unstable-v1-protocol.c"
  136. ]
  137. defines += [
  138. "SDL_FILESYSTEM_UNIX=1",
  139. "HAVE_GCC_ATOMICS=1",
  140. "SDL_VIDEO_DRIVER_WAYLAND=1",
  141. "SDL_VIDEO_OPENGL_EGL",
  142. "SDL_VIDEO_RENDER_OGL_ES2=1",
  143. "SDL_VIDEO_OPENGL_ES2=1",
  144. ]
  145. libs += [
  146. "GLESv2",
  147. "wayland-client",
  148. "wayland-egl",
  149. "wayland-cursor",
  150. "xkbcommon",
  151. ]
  152. }
  153. if (is_mac) {
  154. sources += [
  155. "../externals/sdl/src/file/cocoa/SDL_rwopsbundlesupport.m",
  156. "../externals/sdl/src/filesystem/cocoa/SDL_sysfilesystem.m",
  157. "../externals/sdl/src/render/opengl/SDL_render_gl.c",
  158. "../externals/sdl/src/render/opengl/SDL_shaders_gl.c",
  159. "../externals/sdl/src/video/cocoa/SDL_cocoaclipboard.m",
  160. "../externals/sdl/src/video/cocoa/SDL_cocoaevents.m",
  161. "../externals/sdl/src/video/cocoa/SDL_cocoakeyboard.m",
  162. "../externals/sdl/src/video/cocoa/SDL_cocoamessagebox.m",
  163. "../externals/sdl/src/video/cocoa/SDL_cocoamodes.m",
  164. "../externals/sdl/src/video/cocoa/SDL_cocoamouse.m",
  165. "../externals/sdl/src/video/cocoa/SDL_cocoamousetap.m",
  166. "../externals/sdl/src/video/cocoa/SDL_cocoaopengl.m",
  167. "../externals/sdl/src/video/cocoa/SDL_cocoashape.m",
  168. "../externals/sdl/src/video/cocoa/SDL_cocoavideo.m",
  169. "../externals/sdl/src/video/cocoa/SDL_cocoawindow.m",
  170. ]
  171. defines += [
  172. "SDL_FILESYSTEM_COCOA=1",
  173. "SDL_VIDEO_DRIVER_COCOA=1",
  174. "SDL_VIDEO_OPENGL=1",
  175. "SDL_VIDEO_RENDER_OGL=1",
  176. "SDL_VIDEO_OPENGL_CGL=1",
  177. ]
  178. libs += [
  179. "Carbon.framework",
  180. "Cocoa.framework",
  181. "Foundation.framework",
  182. "IOKit.framework",
  183. "QuartzCore.framework",
  184. ]
  185. }
  186. if (is_ios) {
  187. sources += [
  188. "../externals/sdl/src/file/cocoa/SDL_rwopsbundlesupport.m",
  189. "../externals/sdl/src/filesystem/cocoa/SDL_sysfilesystem.m",
  190. "../externals/sdl/src/render/opengles/SDL_render_gles.c",
  191. "../externals/sdl/src/render/opengles2/SDL_render_gles2.c",
  192. "../externals/sdl/src/render/opengles2/SDL_shaders_gles2.c",
  193. "../externals/sdl/src/video/uikit/SDL_uikitappdelegate.m",
  194. "../externals/sdl/src/video/uikit/SDL_uikitclipboard.m",
  195. "../externals/sdl/src/video/uikit/SDL_uikitevents.m",
  196. "../externals/sdl/src/video/uikit/SDL_uikitmessagebox.m",
  197. "../externals/sdl/src/video/uikit/SDL_uikitmodes.m",
  198. "../externals/sdl/src/video/uikit/SDL_uikitopengles.m",
  199. "../externals/sdl/src/video/uikit/SDL_uikitopenglview.m",
  200. "../externals/sdl/src/video/uikit/SDL_uikitvideo.m",
  201. "../externals/sdl/src/video/uikit/SDL_uikitview.m",
  202. "../externals/sdl/src/video/uikit/SDL_uikitviewcontroller.m",
  203. "../externals/sdl/src/video/uikit/SDL_uikitwindow.m",
  204. ]
  205. cflags_objc = [ "-fobjc-arc" ]
  206. defines += [
  207. "TARGET_OS_IPHONE=1",
  208. "__IPHONE_OS__=1",
  209. "HAVE_MATH_H=1",
  210. "HAVE_GCC_ATOMICS=1",
  211. "SDL_FILESYSTEM_COCOA=1",
  212. "SDL_VIDEO_DRIVER_UIKIT=1",
  213. "SDL_VIDEO_RENDER_OGL_ES=1",
  214. "SDL_VIDEO_RENDER_OGL_ES2=1",
  215. "SDL_VIDEO_OPENGL_ES=1",
  216. "SDL_VIDEO_OPENGL_ES2=1",
  217. ]
  218. libs += [
  219. "Foundation.framework",
  220. "QuartzCore.framework",
  221. "UIKit.framework",
  222. ]
  223. }
  224. }