CMakeLists.txt 37 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261
  1. #
  2. # Copyright (c) 2006-2013 LOVE Development Team
  3. #
  4. # This software is provided 'as-is', without any express or implied
  5. # warranty. In no event will the authors be held liable for any damages
  6. # arising from the use of this software.
  7. #
  8. # Permission is granted to anyone to use this software for any purpose,
  9. # including commercial applications, and to alter it and redistribute it
  10. # freely, subject to the following restrictions:
  11. #
  12. # 1. The origin of this software must not be misrepresented; you must not
  13. # claim that you wrote the original software. If you use this software
  14. # in a product, an acknowledgment in the product documentation would be
  15. # appreciated but is not required.
  16. # 2. Altered source versions must be plainly marked as such, and must not be
  17. # misrepresented as being the original software.
  18. # 3. This notice may not be removed or altered from any source distribution.
  19. #
  20. if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
  21. # Protip: run cmake like this: cmake -G "<generator>" -H. -Bbuild
  22. message(FATAL_ERROR "Prevented in-tree build.")
  23. endif()
  24. cmake_minimum_required(VERSION 2.8)
  25. project(love)
  26. if(NOT MEGA)
  27. message(FATAL_ERROR "
  28. It is currently only possible to build with megasource on Windows.
  29. Please see http://bitbucket.org/rude/megasource
  30. ")
  31. endif()
  32. set(LOVE_EXE_NAME love)
  33. set(LOVE_LIB_NAME liblove)
  34. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  35. set(LOVE_X64 TRUE)
  36. set(LOVE_TARGET_PLATFORM x64)
  37. else()
  38. set(LOVE_X86 TRUE)
  39. set(LOVE_TARGET_PLATFORM x86)
  40. endif()
  41. option(LOVE_JIT "Use LuaJIT" TRUE)
  42. if(LOVE_JIT)
  43. message(STATUS "LuaJIT: Enabled")
  44. else()
  45. message(STATUS "LuaJIT: Disabled")
  46. endif()
  47. message(STATUS "Target platform: ${LOVE_TARGET_PLATFORM}")
  48. find_package(OpenGL)
  49. if(${LOVE_JIT})
  50. set(MEGA_LUA ${MEGA_LUAJIT_LIB})
  51. set(MEGA_EXTRA_INCLUDE ${MEGA_LUAJIT_INCLUDE})
  52. set(MEGA_EXTRA_DLLS ${MEGA_LUAJIT_DLL})
  53. set(MEGA_EXTRA_DEPENDECIES luajit)
  54. else()
  55. set(MEGA_LUA ${MEGA_LUA51})
  56. # MEGA_LUA51 is a CMake target, so includes are handled
  57. # automatically.
  58. endif()
  59. #
  60. # common
  61. #
  62. set(LOVE_SRC_COMMON
  63. src/common/b64.cpp
  64. src/common/b64.h
  65. src/common/config.h
  66. src/common/Data.h
  67. src/common/delay.cpp
  68. src/common/delay.h
  69. src/common/EnumMap.h
  70. src/common/Exception.cpp
  71. src/common/Exception.h
  72. src/common/int.h
  73. src/common/math.h
  74. src/common/Matrix.cpp
  75. src/common/Matrix.h
  76. src/common/Memoizer.cpp
  77. src/common/Memoizer.h
  78. src/common/Module.cpp
  79. src/common/Module.h
  80. src/common/Object.cpp
  81. src/common/Object.h
  82. src/common/Reference.cpp
  83. src/common/Reference.h
  84. src/common/runtime.cpp
  85. src/common/runtime.h
  86. src/common/StringMap.h
  87. src/common/types.h
  88. src/common/utf8.cpp
  89. src/common/utf8.h
  90. src/common/Variant.cpp
  91. src/common/Variant.h
  92. #src/common/Vector.cpp # Vector.cpp is empty.
  93. src/common/Vector.h
  94. src/common/version.h
  95. src/common/wrap_Data.cpp
  96. src/common/wrap_Data.h
  97. )
  98. source_group("common" FILES ${LOVE_SRC_COMMON})
  99. #
  100. # love.audio
  101. #
  102. set(LOVE_SRC_MODULE_AUDIO_ROOT
  103. src/modules/audio/Audio.cpp
  104. src/modules/audio/Audio.h
  105. src/modules/audio/Source.cpp
  106. src/modules/audio/Source.h
  107. src/modules/audio/wrap_Audio.cpp
  108. src/modules/audio/wrap_Audio.h
  109. src/modules/audio/wrap_Source.cpp
  110. src/modules/audio/wrap_Source.h
  111. )
  112. set(LOVE_SRC_MODULE_AUDIO_NULL
  113. src/modules/audio/null/Audio.cpp
  114. src/modules/audio/null/Audio.h
  115. src/modules/audio/null/Source.cpp
  116. src/modules/audio/null/Source.h
  117. )
  118. set(LOVE_SRC_MODULE_AUDIO_OPENAL
  119. src/modules/audio/openal/Audio.cpp
  120. src/modules/audio/openal/Audio.h
  121. src/modules/audio/openal/Pool.cpp
  122. src/modules/audio/openal/Pool.h
  123. src/modules/audio/openal/Source.cpp
  124. src/modules/audio/openal/Source.h
  125. )
  126. set(LOVE_SRC_MODULE_AUDIO
  127. ${LOVE_SRC_MODULE_AUDIO_ROOT}
  128. ${LOVE_SRC_MODULE_AUDIO_NULL}
  129. ${LOVE_SRC_MODULE_AUDIO_OPENAL}
  130. )
  131. source_group("modules\\audio" FILES ${LOVE_SRC_MODULE_AUDIO_ROOT})
  132. source_group("modules\\audio\\null" FILES ${LOVE_SRC_MODULE_AUDIO_NULL})
  133. source_group("modules\\audio\\openal" FILES ${LOVE_SRC_MODULE_AUDIO_OPENAL})
  134. #
  135. # love.event
  136. #
  137. set(LOVE_SRC_MODULE_EVENT_ROOT
  138. src/modules/event/Event.cpp
  139. src/modules/event/Event.h
  140. )
  141. set(LOVE_SRC_MODULE_EVENT_SDL
  142. src/modules/event/sdl/Event.cpp
  143. src/modules/event/sdl/Event.h
  144. src/modules/event/sdl/wrap_Event.cpp
  145. src/modules/event/sdl/wrap_Event.h
  146. )
  147. set(LOVE_SRC_MODULE_EVENT
  148. ${LOVE_SRC_MODULE_EVENT_ROOT}
  149. ${LOVE_SRC_MODULE_EVENT_SDL}
  150. )
  151. source_group("modules\\event" FILES ${LOVE_SRC_MODULE_EVENT_ROOT})
  152. source_group("modules\\event\\sdl" FILES ${LOVE_SRC_MODULE_EVENT_SDL})
  153. #
  154. # love.filesystem
  155. #
  156. set(LOVE_SRC_MODULE_FILESYSTEM_ROOT
  157. src/modules/filesystem/File.cpp
  158. src/modules/filesystem/File.h
  159. src/modules/filesystem/FileData.cpp
  160. src/modules/filesystem/FileData.h
  161. )
  162. set(LOVE_SRC_MODULE_FILESYSTEM_PHYSFS
  163. src/modules/filesystem/physfs/File.cpp
  164. src/modules/filesystem/physfs/File.h
  165. src/modules/filesystem/physfs/Filesystem.cpp
  166. src/modules/filesystem/physfs/Filesystem.h
  167. src/modules/filesystem/physfs/wrap_File.cpp
  168. src/modules/filesystem/physfs/wrap_File.h
  169. src/modules/filesystem/physfs/wrap_FileData.cpp
  170. src/modules/filesystem/physfs/wrap_FileData.h
  171. src/modules/filesystem/physfs/wrap_Filesystem.cpp
  172. src/modules/filesystem/physfs/wrap_Filesystem.h
  173. )
  174. set(LOVE_SRC_MODULE_FILESYSTEM
  175. ${LOVE_SRC_MODULE_FILESYSTEM_ROOT}
  176. ${LOVE_SRC_MODULE_FILESYSTEM_PHYSFS}
  177. )
  178. source_group("modules\\filesystem" FILES ${LOVE_SRC_MODULE_FILESYSTEM_ROOT})
  179. source_group("modules\\filesystem\\physfs" FILES ${LOVE_SRC_MODULE_FILESYSTEM_PHYSFS})
  180. #
  181. # love.font
  182. #
  183. set(LOVE_SRC_MODULE_FONT_ROOT
  184. src/modules/font/Font.h
  185. src/modules/font/GlyphData.cpp
  186. src/modules/font/GlyphData.h
  187. src/modules/font/ImageRasterizer.cpp
  188. src/modules/font/ImageRasterizer.h
  189. src/modules/font/Rasterizer.cpp
  190. src/modules/font/Rasterizer.h
  191. src/modules/font/wrap_GlyphData.cpp
  192. src/modules/font/wrap_GlyphData.h
  193. src/modules/font/wrap_Rasterizer.cpp
  194. src/modules/font/wrap_Rasterizer.h
  195. )
  196. set(LOVE_SRC_MODULE_FONT_FREETYPE
  197. src/modules/font/freetype/Font.cpp
  198. src/modules/font/freetype/Font.h
  199. src/modules/font/freetype/TrueTypeRasterizer.cpp
  200. src/modules/font/freetype/TrueTypeRasterizer.h
  201. src/modules/font/freetype/wrap_Font.cpp
  202. src/modules/font/freetype/wrap_Font.h
  203. )
  204. set(LOVE_SRC_MODULE_FONT
  205. ${LOVE_SRC_MODULE_FONT_ROOT}
  206. ${LOVE_SRC_MODULE_FONT_FREETYPE}
  207. )
  208. source_group("modules\\font" FILES ${LOVE_SRC_MODULE_FONT_ROOT})
  209. source_group("modules\\font\\freetype" FILES ${LOVE_SRC_MODULE_FONT_FREETYPE})
  210. #
  211. # love.graphics
  212. #
  213. set(LOVE_SRC_MODULE_GRAPHICS_ROOT
  214. src/modules/graphics/Color.h
  215. src/modules/graphics/Drawable.cpp
  216. src/modules/graphics/Drawable.h
  217. src/modules/graphics/DrawQable.h
  218. src/modules/graphics/Graphics.cpp
  219. src/modules/graphics/Graphics.h
  220. src/modules/graphics/Image.cpp
  221. src/modules/graphics/Image.h
  222. src/modules/graphics/Quad.cpp
  223. src/modules/graphics/Quad.h
  224. src/modules/graphics/Volatile.cpp
  225. src/modules/graphics/Volatile.h
  226. )
  227. set(LOVE_SRC_MODULE_GRAPHICS_OPENGL
  228. src/modules/graphics/opengl/Canvas.cpp
  229. src/modules/graphics/opengl/Canvas.h
  230. src/modules/graphics/opengl/Font.cpp
  231. src/modules/graphics/opengl/Font.h
  232. src/modules/graphics/opengl/GLee.c
  233. src/modules/graphics/opengl/GLee.h
  234. src/modules/graphics/opengl/Graphics.cpp
  235. src/modules/graphics/opengl/Graphics.h
  236. src/modules/graphics/opengl/Image.cpp
  237. src/modules/graphics/opengl/Image.h
  238. src/modules/graphics/opengl/Mesh.cpp
  239. src/modules/graphics/opengl/Mesh.h
  240. src/modules/graphics/opengl/OpenGL.cpp
  241. src/modules/graphics/opengl/OpenGL.h
  242. src/modules/graphics/opengl/ParticleSystem.cpp
  243. src/modules/graphics/opengl/ParticleSystem.h
  244. src/modules/graphics/opengl/Polyline.cpp
  245. src/modules/graphics/opengl/Polyline.h
  246. src/modules/graphics/opengl/Shader.cpp
  247. src/modules/graphics/opengl/Shader.h
  248. src/modules/graphics/opengl/SpriteBatch.cpp
  249. src/modules/graphics/opengl/SpriteBatch.h
  250. src/modules/graphics/opengl/VertexBuffer.cpp
  251. src/modules/graphics/opengl/VertexBuffer.h
  252. src/modules/graphics/opengl/wrap_Canvas.cpp
  253. src/modules/graphics/opengl/wrap_Canvas.h
  254. src/modules/graphics/opengl/wrap_Font.cpp
  255. src/modules/graphics/opengl/wrap_Font.h
  256. src/modules/graphics/opengl/wrap_Graphics.cpp
  257. src/modules/graphics/opengl/wrap_Graphics.h
  258. src/modules/graphics/opengl/wrap_Image.cpp
  259. src/modules/graphics/opengl/wrap_Image.h
  260. src/modules/graphics/opengl/wrap_Mesh.cpp
  261. src/modules/graphics/opengl/wrap_Mesh.h
  262. src/modules/graphics/opengl/wrap_ParticleSystem.cpp
  263. src/modules/graphics/opengl/wrap_ParticleSystem.h
  264. src/modules/graphics/opengl/wrap_Quad.cpp
  265. src/modules/graphics/opengl/wrap_Quad.h
  266. src/modules/graphics/opengl/wrap_Shader.cpp
  267. src/modules/graphics/opengl/wrap_Shader.h
  268. src/modules/graphics/opengl/wrap_SpriteBatch.cpp
  269. src/modules/graphics/opengl/wrap_SpriteBatch.h
  270. )
  271. set(LOVE_SRC_MODULE_GRAPHICS
  272. ${LOVE_SRC_MODULE_GRAPHICS_ROOT}
  273. ${LOVE_SRC_MODULE_GRAPHICS_OPENGL}
  274. )
  275. source_group("modules\\graphics" FILES ${LOVE_SRC_MODULE_GRAPHICS_ROOT})
  276. source_group("modules\\graphics\\opengl" FILES ${LOVE_SRC_MODULE_GRAPHICS_OPENGL})
  277. #
  278. # love.image
  279. #
  280. set(LOVE_SRC_MODULE_IMAGE_ROOT
  281. src/modules/image/CompressedData.cpp
  282. src/modules/image/CompressedData.h
  283. src/modules/image/Image.h
  284. src/modules/image/ImageData.cpp
  285. src/modules/image/ImageData.h
  286. src/modules/image/wrap_CompressedData.cpp
  287. src/modules/image/wrap_CompressedData.h
  288. src/modules/image/wrap_Image.cpp
  289. src/modules/image/wrap_Image.h
  290. src/modules/image/wrap_ImageData.cpp
  291. src/modules/image/wrap_ImageData.h
  292. )
  293. set(LOVE_SRC_MODULE_IMAGE_MAGPIE
  294. src/modules/image/magpie/CompressedData.cpp
  295. src/modules/image/magpie/CompressedData.h
  296. src/modules/image/magpie/ddsHandler.cpp
  297. src/modules/image/magpie/ddsHandler.h
  298. src/modules/image/magpie/DevilHandler.cpp
  299. src/modules/image/magpie/DevilHandler.h
  300. src/modules/image/magpie/FormatHandler.h
  301. src/modules/image/magpie/Image.cpp
  302. src/modules/image/magpie/Image.h
  303. src/modules/image/magpie/ImageData.cpp
  304. src/modules/image/magpie/ImageData.h
  305. )
  306. set(LOVE_SRC_MODULE_IMAGE
  307. ${LOVE_SRC_MODULE_IMAGE_ROOT}
  308. ${LOVE_SRC_MODULE_IMAGE_MAGPIE}
  309. )
  310. source_group("modules\\image" FILES ${LOVE_SRC_MODULE_IMAGE_ROOT})
  311. source_group("modules\\image\\magpie" FILES ${LOVE_SRC_MODULE_IMAGE_MAGPIE})
  312. #
  313. # love.joystick
  314. #
  315. set(LOVE_SRC_MODULE_JOYSTICK_ROOT
  316. src/modules/joystick/Joystick.cpp
  317. src/modules/joystick/Joystick.h
  318. src/modules/joystick/JoystickModule.h
  319. )
  320. set(LOVE_SRC_MODULE_JOYSTICK_SDL
  321. src/modules/joystick/sdl/Joystick.cpp
  322. src/modules/joystick/sdl/Joystick.h
  323. src/modules/joystick/sdl/JoystickModule.cpp
  324. src/modules/joystick/sdl/JoystickModule.h
  325. src/modules/joystick/sdl/wrap_Joystick.cpp
  326. src/modules/joystick/sdl/wrap_Joystick.h
  327. src/modules/joystick/sdl/wrap_JoystickModule.cpp
  328. src/modules/joystick/sdl/wrap_JoystickModule.h
  329. )
  330. set(LOVE_SRC_MODULE_JOYSTICK
  331. ${LOVE_SRC_MODULE_JOYSTICK_ROOT}
  332. ${LOVE_SRC_MODULE_JOYSTICK_SDL}
  333. )
  334. source_group("modules\\joystick" FILES ${LOVE_SRC_MODULE_JOYSTICK_ROOT})
  335. source_group("modules\\joystick\\sdl" FILES ${LOVE_SRC_MODULE_JOYSTICK_SDL})
  336. #
  337. # love.keyboard
  338. #
  339. set(LOVE_SRC_MODULE_KEYBOARD_ROOT
  340. src/modules/keyboard/Keyboard.cpp
  341. src/modules/keyboard/Keyboard.h
  342. src/modules/keyboard/wrap_Keyboard.cpp
  343. src/modules/keyboard/wrap_Keyboard.h
  344. )
  345. set(LOVE_SRC_MODULE_KEYBOARD_SDL
  346. src/modules/keyboard/sdl/Keyboard.cpp
  347. src/modules/keyboard/sdl/Keyboard.h
  348. )
  349. set(LOVE_SRC_MODULE_KEYBOARD
  350. ${LOVE_SRC_MODULE_KEYBOARD_ROOT}
  351. ${LOVE_SRC_MODULE_KEYBOARD_SDL}
  352. )
  353. source_group("modules\\keyboard" FILES ${LOVE_SRC_MODULE_KEYBOARD_ROOT})
  354. source_group("modules\\keyboard\\sdl" FILES ${LOVE_SRC_MODULE_KEYBOARD_SDL})
  355. #
  356. # love.math
  357. #
  358. set(LOVE_SRC_MODULE_MATH
  359. src/modules/math/BezierCurve.cpp
  360. src/modules/math/BezierCurve.h
  361. src/modules/math/MathModule.cpp
  362. src/modules/math/MathModule.h
  363. src/modules/math/RandomGenerator.cpp
  364. src/modules/math/RandomGenerator.h
  365. src/modules/math/wrap_BezierCurve.cpp
  366. src/modules/math/wrap_BezierCurve.h
  367. src/modules/math/wrap_Math.cpp
  368. src/modules/math/wrap_Math.h
  369. src/modules/math/wrap_RandomGenerator.cpp
  370. src/modules/math/wrap_RandomGenerator.h
  371. )
  372. source_group("modules\\math" FILES ${LOVE_SRC_MODULE_MATH})
  373. #
  374. # love (module)
  375. #
  376. set(LOVE_SRC_MODULE_LOVE
  377. src/modules/love/love.cpp
  378. src/modules/love/love.h
  379. )
  380. source_group("modules\\love" FILES ${LOVE_SRC_MODULE_LOVE})
  381. #
  382. # love.mouse
  383. #
  384. set(LOVE_SRC_MODULE_MOUSE_ROOT
  385. src/modules/mouse/Cursor.cpp
  386. src/modules/mouse/Cursor.h
  387. src/modules/mouse/Mouse.cpp
  388. src/modules/mouse/Mouse.h
  389. src/modules/mouse/wrap_Cursor.cpp
  390. src/modules/mouse/wrap_Cursor.h
  391. src/modules/mouse/wrap_Mouse.cpp
  392. src/modules/mouse/wrap_Mouse.h
  393. )
  394. set(LOVE_SRC_MODULE_MOUSE_SDL
  395. src/modules/mouse/sdl/Cursor.cpp
  396. src/modules/mouse/sdl/Cursor.h
  397. src/modules/mouse/sdl/Mouse.cpp
  398. src/modules/mouse/sdl/Mouse.h
  399. )
  400. set(LOVE_SRC_MODULE_MOUSE
  401. ${LOVE_SRC_MODULE_MOUSE_ROOT}
  402. ${LOVE_SRC_MODULE_MOUSE_SDL}
  403. )
  404. source_group("modules\\mouse" FILES ${LOVE_SRC_MODULE_MOUSE_ROOT})
  405. source_group("modules\\mouse\\sdl" FILES ${LOVE_SRC_MODULE_MOUSE_SDL})
  406. #
  407. # love.physics
  408. #
  409. set(LOVE_SRC_MODULE_PHYSICS_ROOT
  410. src/modules/physics/Body.cpp
  411. src/modules/physics/Body.h
  412. src/modules/physics/Joint.cpp
  413. src/modules/physics/Joint.h
  414. src/modules/physics/Shape.cpp
  415. src/modules/physics/Shape.h
  416. )
  417. set(LOVE_SRC_MODULE_PHYSICS_BOX2D
  418. src/modules/physics/box2d/Body.cpp
  419. src/modules/physics/box2d/Body.h
  420. src/modules/physics/box2d/ChainShape.cpp
  421. src/modules/physics/box2d/ChainShape.h
  422. src/modules/physics/box2d/CircleShape.cpp
  423. src/modules/physics/box2d/CircleShape.h
  424. src/modules/physics/box2d/Contact.cpp
  425. src/modules/physics/box2d/Contact.h
  426. src/modules/physics/box2d/DistanceJoint.cpp
  427. src/modules/physics/box2d/DistanceJoint.h
  428. src/modules/physics/box2d/EdgeShape.cpp
  429. src/modules/physics/box2d/EdgeShape.h
  430. src/modules/physics/box2d/Fixture.cpp
  431. src/modules/physics/box2d/Fixture.h
  432. src/modules/physics/box2d/FrictionJoint.cpp
  433. src/modules/physics/box2d/FrictionJoint.h
  434. src/modules/physics/box2d/GearJoint.cpp
  435. src/modules/physics/box2d/GearJoint.h
  436. src/modules/physics/box2d/Joint.cpp
  437. src/modules/physics/box2d/Joint.h
  438. src/modules/physics/box2d/MotorJoint.cpp
  439. src/modules/physics/box2d/MotorJoint.h
  440. src/modules/physics/box2d/MouseJoint.cpp
  441. src/modules/physics/box2d/MouseJoint.h
  442. src/modules/physics/box2d/Physics.cpp
  443. src/modules/physics/box2d/Physics.h
  444. src/modules/physics/box2d/PolygonShape.cpp
  445. src/modules/physics/box2d/PolygonShape.h
  446. src/modules/physics/box2d/PrismaticJoint.cpp
  447. src/modules/physics/box2d/PrismaticJoint.h
  448. src/modules/physics/box2d/PulleyJoint.cpp
  449. src/modules/physics/box2d/PulleyJoint.h
  450. src/modules/physics/box2d/RevoluteJoint.cpp
  451. src/modules/physics/box2d/RevoluteJoint.h
  452. src/modules/physics/box2d/RopeJoint.cpp
  453. src/modules/physics/box2d/RopeJoint.h
  454. src/modules/physics/box2d/Shape.cpp
  455. src/modules/physics/box2d/Shape.h
  456. src/modules/physics/box2d/WeldJoint.cpp
  457. src/modules/physics/box2d/WeldJoint.h
  458. src/modules/physics/box2d/WheelJoint.cpp
  459. src/modules/physics/box2d/WheelJoint.h
  460. src/modules/physics/box2d/World.cpp
  461. src/modules/physics/box2d/World.h
  462. src/modules/physics/box2d/wrap_Body.cpp
  463. src/modules/physics/box2d/wrap_Body.h
  464. src/modules/physics/box2d/wrap_ChainShape.cpp
  465. src/modules/physics/box2d/wrap_ChainShape.h
  466. src/modules/physics/box2d/wrap_CircleShape.cpp
  467. src/modules/physics/box2d/wrap_CircleShape.h
  468. src/modules/physics/box2d/wrap_Contact.cpp
  469. src/modules/physics/box2d/wrap_Contact.h
  470. src/modules/physics/box2d/wrap_DistanceJoint.cpp
  471. src/modules/physics/box2d/wrap_DistanceJoint.h
  472. src/modules/physics/box2d/wrap_EdgeShape.cpp
  473. src/modules/physics/box2d/wrap_EdgeShape.h
  474. src/modules/physics/box2d/wrap_Fixture.cpp
  475. src/modules/physics/box2d/wrap_Fixture.h
  476. src/modules/physics/box2d/wrap_FrictionJoint.cpp
  477. src/modules/physics/box2d/wrap_FrictionJoint.h
  478. src/modules/physics/box2d/wrap_GearJoint.cpp
  479. src/modules/physics/box2d/wrap_GearJoint.h
  480. src/modules/physics/box2d/wrap_Joint.cpp
  481. src/modules/physics/box2d/wrap_Joint.h
  482. src/modules/physics/box2d/wrap_MotorJoint.cpp
  483. src/modules/physics/box2d/wrap_MotorJoint.h
  484. src/modules/physics/box2d/wrap_MouseJoint.cpp
  485. src/modules/physics/box2d/wrap_MouseJoint.h
  486. src/modules/physics/box2d/wrap_Physics.cpp
  487. src/modules/physics/box2d/wrap_Physics.h
  488. src/modules/physics/box2d/wrap_PolygonShape.cpp
  489. src/modules/physics/box2d/wrap_PolygonShape.h
  490. src/modules/physics/box2d/wrap_PrismaticJoint.cpp
  491. src/modules/physics/box2d/wrap_PrismaticJoint.h
  492. src/modules/physics/box2d/wrap_PulleyJoint.cpp
  493. src/modules/physics/box2d/wrap_PulleyJoint.h
  494. src/modules/physics/box2d/wrap_RevoluteJoint.cpp
  495. src/modules/physics/box2d/wrap_RevoluteJoint.h
  496. src/modules/physics/box2d/wrap_RopeJoint.cpp
  497. src/modules/physics/box2d/wrap_RopeJoint.h
  498. src/modules/physics/box2d/wrap_Shape.cpp
  499. src/modules/physics/box2d/wrap_Shape.h
  500. src/modules/physics/box2d/wrap_WeldJoint.cpp
  501. src/modules/physics/box2d/wrap_WeldJoint.h
  502. src/modules/physics/box2d/wrap_WheelJoint.cpp
  503. src/modules/physics/box2d/wrap_WheelJoint.h
  504. src/modules/physics/box2d/wrap_World.cpp
  505. src/modules/physics/box2d/wrap_World.h
  506. )
  507. set(LOVE_SRC_MODULE_PHYSICS
  508. ${LOVE_SRC_MODULE_PHYSICS_ROOT}
  509. ${LOVE_SRC_MODULE_PHYSICS_BOX2D}
  510. )
  511. source_group("modules\\physics" FILES ${LOVE_SRC_MODULE_PHYSICS_ROOT})
  512. source_group("modules\\physics\\box2d" FILES ${LOVE_SRC_MODULE_PHYSICS_BOX2D})
  513. #
  514. # love.sound
  515. #
  516. set(LOVE_SRC_MODULE_SOUND_ROOT
  517. src/modules/sound/Decoder.h
  518. src/modules/sound/Sound.cpp
  519. src/modules/sound/Sound.h
  520. src/modules/sound/SoundData.cpp
  521. src/modules/sound/SoundData.h
  522. src/modules/sound/wrap_Decoder.cpp
  523. src/modules/sound/wrap_Decoder.h
  524. src/modules/sound/wrap_Sound.cpp
  525. src/modules/sound/wrap_Sound.h
  526. src/modules/sound/wrap_SoundData.cpp
  527. src/modules/sound/wrap_SoundData.h
  528. )
  529. set(LOVE_SRC_MODULE_SOUND_LULLABY
  530. src/modules/sound/lullaby/Decoder.cpp
  531. src/modules/sound/lullaby/Decoder.h
  532. src/modules/sound/lullaby/FLACDecoder.cpp
  533. src/modules/sound/lullaby/FLACDecoder.h
  534. src/modules/sound/lullaby/GmeDecoder.cpp
  535. src/modules/sound/lullaby/GmeDecoder.h
  536. src/modules/sound/lullaby/ModPlugDecoder.cpp
  537. src/modules/sound/lullaby/ModPlugDecoder.h
  538. src/modules/sound/lullaby/Mpg123Decoder.cpp
  539. src/modules/sound/lullaby/Mpg123Decoder.h
  540. src/modules/sound/lullaby/Sound.cpp
  541. src/modules/sound/lullaby/Sound.h
  542. src/modules/sound/lullaby/VorbisDecoder.cpp
  543. src/modules/sound/lullaby/VorbisDecoder.h
  544. src/modules/sound/lullaby/WaveDecoder.cpp
  545. src/modules/sound/lullaby/WaveDecoder.h
  546. )
  547. set(LOVE_SRC_MODULE_SOUND
  548. ${LOVE_SRC_MODULE_SOUND_ROOT}
  549. ${LOVE_SRC_MODULE_SOUND_LULLABY}
  550. )
  551. source_group("modules\\sound" FILES ${LOVE_SRC_MODULE_SOUND_ROOT})
  552. source_group("modules\\sound\\lullaby" FILES ${LOVE_SRC_MODULE_SOUND_LULLABY})
  553. #
  554. # love.system
  555. #
  556. set(LOVE_SRC_MODULE_SYSTEM_ROOT
  557. src/modules/system/System.cpp
  558. src/modules/system/System.h
  559. src/modules/system/wrap_System.cpp
  560. src/modules/system/wrap_System.h
  561. )
  562. set(LOVE_SRC_MODULE_SYSTEM_SDL
  563. src/modules/system/sdl/System.cpp
  564. src/modules/system/sdl/System.h
  565. )
  566. set(LOVE_SRC_MODULE_SYSTEM
  567. ${LOVE_SRC_MODULE_SYSTEM_ROOT}
  568. ${LOVE_SRC_MODULE_SYSTEM_SDL}
  569. )
  570. source_group("modules\\system" FILES ${LOVE_SRC_MODULE_SYSTEM_ROOT})
  571. source_group("modules\\system\\sdl" FILES ${LOVE_SRC_MODULE_SYSTEM_SDL})
  572. #
  573. # love.thread
  574. #
  575. set(LOVE_SRC_MODULE_THREAD_ROOT
  576. src/modules/thread/Channel.cpp
  577. src/modules/thread/Channel.h
  578. src/modules/thread/LuaThread.cpp
  579. src/modules/thread/LuaThread.h
  580. src/modules/thread/Thread.h
  581. src/modules/thread/ThreadModule.cpp
  582. src/modules/thread/ThreadModule.h
  583. src/modules/thread/threads.cpp
  584. src/modules/thread/threads.h
  585. src/modules/thread/wrap_Channel.cpp
  586. src/modules/thread/wrap_Channel.h
  587. src/modules/thread/wrap_LuaThread.cpp
  588. src/modules/thread/wrap_LuaThread.h
  589. src/modules/thread/wrap_ThreadModule.cpp
  590. src/modules/thread/wrap_ThreadModule.h
  591. )
  592. set(LOVE_SRC_MODULE_THREAD_SDL
  593. src/modules/thread/sdl/Thread.cpp
  594. src/modules/thread/sdl/Thread.h
  595. src/modules/thread/sdl/threads.cpp
  596. src/modules/thread/sdl/threads.h
  597. )
  598. set(LOVE_SRC_MODULE_THREAD
  599. ${LOVE_SRC_MODULE_THREAD_ROOT}
  600. ${LOVE_SRC_MODULE_THREAD_SDL}
  601. )
  602. source_group("modules\\thread" FILES ${LOVE_SRC_MODULE_THREAD_ROOT})
  603. source_group("modules\\thread\\sdl" FILES ${LOVE_SRC_MODULE_THREAD_SDL})
  604. #
  605. # love.timer
  606. #
  607. set(LOVE_SRC_MODULE_TIMER_ROOT
  608. src/modules/timer/Timer.h
  609. src/modules/timer/wrap_Timer.cpp
  610. src/modules/timer/wrap_Timer.h
  611. )
  612. set(LOVE_SRC_MODULE_TIMER_SDL
  613. src/modules/timer/sdl/Timer.cpp
  614. src/modules/timer/sdl/Timer.h
  615. )
  616. set(LOVE_SRC_MODULE_TIMER
  617. ${LOVE_SRC_MODULE_TIMER_ROOT}
  618. ${LOVE_SRC_MODULE_TIMER_SDL}
  619. )
  620. source_group("modules\\timer" FILES ${LOVE_SRC_MODULE_TIMER_ROOT})
  621. source_group("modules\\timer\\sdl" FILES ${LOVE_SRC_MODULE_TIMER_SDL})
  622. #
  623. # love.window
  624. #
  625. set(LOVE_SRC_MODULE_WINDOW_ROOT
  626. src/modules/window/Window.cpp
  627. src/modules/window/Window.h
  628. src/modules/window/wrap_Window.cpp
  629. src/modules/window/wrap_Window.h
  630. )
  631. set(LOVE_SRC_MODULE_WINDOW_SDL
  632. src/modules/window/sdl/Window.cpp
  633. src/modules/window/sdl/Window.h
  634. )
  635. set(LOVE_SRC_MODULE_WINDOW
  636. ${LOVE_SRC_MODULE_WINDOW_ROOT}
  637. ${LOVE_SRC_MODULE_WINDOW_SDL}
  638. )
  639. source_group("modules\\window" FILES ${LOVE_SRC_MODULE_WINDOW_ROOT})
  640. source_group("modules\\window\\sdl" FILES ${LOVE_SRC_MODULE_WINDOW_SDL})
  641. ###################################
  642. # Third-party libraries
  643. ###################################
  644. #
  645. # Box2D
  646. #
  647. set(LOVE_SRC_3P_BOX2D_ROOT
  648. src/libraries/Box2D/Box2D.h
  649. )
  650. set(LOVE_SRC_3P_BOX2D_COLLISION
  651. src/libraries/Box2D/Collision/b2BroadPhase.cpp
  652. src/libraries/Box2D/Collision/b2BroadPhase.h
  653. src/libraries/Box2D/Collision/b2CollideCircle.cpp
  654. src/libraries/Box2D/Collision/b2CollideEdge.cpp
  655. src/libraries/Box2D/Collision/b2CollidePolygon.cpp
  656. src/libraries/Box2D/Collision/b2Collision.cpp
  657. src/libraries/Box2D/Collision/b2Collision.h
  658. src/libraries/Box2D/Collision/b2Distance.cpp
  659. src/libraries/Box2D/Collision/b2Distance.h
  660. src/libraries/Box2D/Collision/b2DynamicTree.cpp
  661. src/libraries/Box2D/Collision/b2DynamicTree.h
  662. src/libraries/Box2D/Collision/b2TimeOfImpact.cpp
  663. src/libraries/Box2D/Collision/b2TimeOfImpact.h
  664. )
  665. set(LOVE_SRC_3P_BOX2D_COLLISION_SHAPES
  666. src/libraries/Box2D/Collision/Shapes/b2ChainShape.cpp
  667. src/libraries/Box2D/Collision/Shapes/b2ChainShape.h
  668. src/libraries/Box2D/Collision/Shapes/b2CircleShape.cpp
  669. src/libraries/Box2D/Collision/Shapes/b2CircleShape.h
  670. src/libraries/Box2D/Collision/Shapes/b2EdgeShape.cpp
  671. src/libraries/Box2D/Collision/Shapes/b2EdgeShape.h
  672. src/libraries/Box2D/Collision/Shapes/b2PolygonShape.cpp
  673. src/libraries/Box2D/Collision/Shapes/b2PolygonShape.h
  674. src/libraries/Box2D/Collision/Shapes/b2Shape.h
  675. )
  676. set(LOVE_SRC_3P_BOX2D_COMMON
  677. src/libraries/Box2D/Common/b2BlockAllocator.cpp
  678. src/libraries/Box2D/Common/b2BlockAllocator.h
  679. src/libraries/Box2D/Common/b2Draw.cpp
  680. src/libraries/Box2D/Common/b2Draw.h
  681. src/libraries/Box2D/Common/b2GrowableStack.h
  682. src/libraries/Box2D/Common/b2Math.cpp
  683. src/libraries/Box2D/Common/b2Math.h
  684. src/libraries/Box2D/Common/b2Settings.cpp
  685. src/libraries/Box2D/Common/b2Settings.h
  686. src/libraries/Box2D/Common/b2StackAllocator.cpp
  687. src/libraries/Box2D/Common/b2StackAllocator.h
  688. src/libraries/Box2D/Common/b2Timer.cpp
  689. src/libraries/Box2D/Common/b2Timer.h
  690. )
  691. set(LOVE_SRC_3P_BOX2D_DYNAMICS
  692. src/libraries/Box2D/Dynamics/b2Body.cpp
  693. src/libraries/Box2D/Dynamics/b2Body.h
  694. src/libraries/Box2D/Dynamics/b2ContactManager.cpp
  695. src/libraries/Box2D/Dynamics/b2ContactManager.h
  696. src/libraries/Box2D/Dynamics/b2Fixture.cpp
  697. src/libraries/Box2D/Dynamics/b2Fixture.h
  698. src/libraries/Box2D/Dynamics/b2Island.cpp
  699. src/libraries/Box2D/Dynamics/b2Island.h
  700. src/libraries/Box2D/Dynamics/b2TimeStep.h
  701. src/libraries/Box2D/Dynamics/b2World.cpp
  702. src/libraries/Box2D/Dynamics/b2World.h
  703. src/libraries/Box2D/Dynamics/b2WorldCallbacks.cpp
  704. src/libraries/Box2D/Dynamics/b2WorldCallbacks.h
  705. )
  706. set(LOVE_SRC_3P_BOX2D_DYNAMICS_CONTACTS
  707. src/libraries/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp
  708. src/libraries/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h
  709. src/libraries/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp
  710. src/libraries/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h
  711. src/libraries/Box2D/Dynamics/Contacts/b2CircleContact.cpp
  712. src/libraries/Box2D/Dynamics/Contacts/b2CircleContact.h
  713. src/libraries/Box2D/Dynamics/Contacts/b2Contact.cpp
  714. src/libraries/Box2D/Dynamics/Contacts/b2Contact.h
  715. src/libraries/Box2D/Dynamics/Contacts/b2ContactSolver.cpp
  716. src/libraries/Box2D/Dynamics/Contacts/b2ContactSolver.h
  717. src/libraries/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp
  718. src/libraries/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h
  719. src/libraries/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp
  720. src/libraries/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h
  721. src/libraries/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp
  722. src/libraries/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h
  723. src/libraries/Box2D/Dynamics/Contacts/b2PolygonContact.cpp
  724. src/libraries/Box2D/Dynamics/Contacts/b2PolygonContact.h
  725. )
  726. set(LOVE_SRC_3P_BOX2D_DYNAMICS_JOINTS
  727. src/libraries/Box2D/Dynamics/Joints/b2DistanceJoint.cpp
  728. src/libraries/Box2D/Dynamics/Joints/b2DistanceJoint.h
  729. src/libraries/Box2D/Dynamics/Joints/b2FrictionJoint.cpp
  730. src/libraries/Box2D/Dynamics/Joints/b2FrictionJoint.h
  731. src/libraries/Box2D/Dynamics/Joints/b2GearJoint.cpp
  732. src/libraries/Box2D/Dynamics/Joints/b2GearJoint.h
  733. src/libraries/Box2D/Dynamics/Joints/b2Joint.cpp
  734. src/libraries/Box2D/Dynamics/Joints/b2Joint.h
  735. src/libraries/Box2D/Dynamics/Joints/b2MotorJoint.cpp
  736. src/libraries/Box2D/Dynamics/Joints/b2MotorJoint.h
  737. src/libraries/Box2D/Dynamics/Joints/b2MouseJoint.cpp
  738. src/libraries/Box2D/Dynamics/Joints/b2MouseJoint.h
  739. src/libraries/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp
  740. src/libraries/Box2D/Dynamics/Joints/b2PrismaticJoint.h
  741. src/libraries/Box2D/Dynamics/Joints/b2PulleyJoint.cpp
  742. src/libraries/Box2D/Dynamics/Joints/b2PulleyJoint.h
  743. src/libraries/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp
  744. src/libraries/Box2D/Dynamics/Joints/b2RevoluteJoint.h
  745. src/libraries/Box2D/Dynamics/Joints/b2RopeJoint.cpp
  746. src/libraries/Box2D/Dynamics/Joints/b2RopeJoint.h
  747. src/libraries/Box2D/Dynamics/Joints/b2WeldJoint.cpp
  748. src/libraries/Box2D/Dynamics/Joints/b2WeldJoint.h
  749. src/libraries/Box2D/Dynamics/Joints/b2WheelJoint.cpp
  750. src/libraries/Box2D/Dynamics/Joints/b2WheelJoint.h
  751. )
  752. set(LOVE_SRC_3P_BOX2D_ROPE
  753. src/libraries/Box2D/Rope/b2Rope.cpp
  754. src/libraries/Box2D/Rope/b2Rope.h
  755. )
  756. set(LOVE_SRC_3P_BOX2D
  757. ${LOVE_SRC_3P_BOX2D_ROOT}
  758. ${LOVE_SRC_3P_BOX2D_COLLISION}
  759. ${LOVE_SRC_3P_BOX2D_COLLISION_SHAPES}
  760. ${LOVE_SRC_3P_BOX2D_COMMON}
  761. ${LOVE_SRC_3P_BOX2D_DYNAMICS}
  762. ${LOVE_SRC_3P_BOX2D_DYNAMICS_CONTACTS}
  763. ${LOVE_SRC_3P_BOX2D_DYNAMICS_JOINTS}
  764. ${LOVE_SRC_3P_BOX2D_ROPE}
  765. )
  766. add_library(love_3p_box2d ${LOVE_SRC_3P_BOX2D})
  767. #
  768. # ddsparse
  769. #
  770. set(LOVE_SRC_3P_DDSPARSE
  771. src/libraries/ddsparse/ddsinfo.h
  772. src/libraries/ddsparse/ddsparse.cpp
  773. src/libraries/ddsparse/ddsparse.h
  774. )
  775. add_library(love_3p_ddsparse ${LOVE_SRC_3P_DDSPARSE})
  776. #
  777. # enet
  778. #
  779. set(LOVE_SRC_3P_ENET_ROOT
  780. src/libraries/enet/enet.cpp
  781. src/libraries/enet/lua-enet.h
  782. )
  783. set(LOVE_SRC_3P_ENET_LIBENET
  784. src/libraries/enet/libenet/callbacks.c
  785. src/libraries/enet/libenet/compress.c
  786. src/libraries/enet/libenet/host.c
  787. src/libraries/enet/libenet/list.c
  788. src/libraries/enet/libenet/packet.c
  789. src/libraries/enet/libenet/peer.c
  790. src/libraries/enet/libenet/protocol.c
  791. src/libraries/enet/libenet/unix.c
  792. src/libraries/enet/libenet/win32.c
  793. )
  794. set(LOVE_SRC_3P_ENET_LIBENET_INCLUDE_ENET
  795. src/libraries/enet/libenet/include/enet/enet.h
  796. src/libraries/enet/libenet/include/enet/list.h
  797. src/libraries/enet/libenet/include/enet/protocol.h
  798. src/libraries/enet/libenet/include/enet/time.h
  799. src/libraries/enet/libenet/include/enet/types.h
  800. src/libraries/enet/libenet/include/enet/unix.h
  801. src/libraries/enet/libenet/include/enet/utility.h
  802. src/libraries/enet/libenet/include/enet/win32.h
  803. )
  804. set(LOVE_SRC_3P_ENET
  805. ${LOVE_SRC_3P_ENET_ROOT}
  806. ${LOVE_SRC_3P_ENET_LIBENET}
  807. ${LOVE_SRC_3P_ENET_LIBENET_INCLUDE_ENET}
  808. )
  809. add_library(love_3p_enet ${LOVE_SRC_3P_ENET})
  810. target_link_libraries(love_3p_enet ${MEGA_LUA})
  811. target_include_directories(love_3p_enet PUBLIC src/libraries/enet/libenet/include)
  812. #
  813. # luasocket
  814. #
  815. set(LOVE_SRC_3P_LUASOCKET_ROOT
  816. src/libraries/luasocket/luasocket.cpp
  817. src/libraries/luasocket/luasocket.h
  818. )
  819. set(LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET
  820. src/libraries/luasocket/libluasocket/auxiliar.c
  821. src/libraries/luasocket/libluasocket/auxiliar.h
  822. src/libraries/luasocket/libluasocket/buffer.c
  823. src/libraries/luasocket/libluasocket/buffer.h
  824. src/libraries/luasocket/libluasocket/except.c
  825. src/libraries/luasocket/libluasocket/except.h
  826. src/libraries/luasocket/libluasocket/ftp.lua.h
  827. src/libraries/luasocket/libluasocket/http.lua.h
  828. src/libraries/luasocket/libluasocket/inet.c
  829. src/libraries/luasocket/libluasocket/inet.h
  830. src/libraries/luasocket/libluasocket/io.c
  831. src/libraries/luasocket/libluasocket/io.h
  832. src/libraries/luasocket/libluasocket/ltn12.lua.h
  833. src/libraries/luasocket/libluasocket/lua.h
  834. src/libraries/luasocket/libluasocket/luasocket.c
  835. src/libraries/luasocket/libluasocket/luasocket.h
  836. src/libraries/luasocket/libluasocket/mime.c
  837. src/libraries/luasocket/libluasocket/mime.h
  838. src/libraries/luasocket/libluasocket/mime.lua.h
  839. src/libraries/luasocket/libluasocket/options.c
  840. src/libraries/luasocket/libluasocket/options.h
  841. src/libraries/luasocket/libluasocket/select.c
  842. src/libraries/luasocket/libluasocket/select.h
  843. src/libraries/luasocket/libluasocket/smtp.lua.h
  844. src/libraries/luasocket/libluasocket/socket.h
  845. src/libraries/luasocket/libluasocket/socket.lua.h
  846. src/libraries/luasocket/libluasocket/tcp.c
  847. src/libraries/luasocket/libluasocket/tcp.h
  848. src/libraries/luasocket/libluasocket/timeout.c
  849. src/libraries/luasocket/libluasocket/timeout.h
  850. src/libraries/luasocket/libluasocket/tp.lua.h
  851. src/libraries/luasocket/libluasocket/udp.c
  852. src/libraries/luasocket/libluasocket/udp.h
  853. src/libraries/luasocket/libluasocket/url.lua.h
  854. )
  855. if(MSVC)
  856. set(LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET
  857. ${LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET}
  858. src/libraries/luasocket/libluasocket/wsocket.c
  859. src/libraries/luasocket/libluasocket/wsocket.h
  860. )
  861. endif()
  862. set(LOVE_SRC_3P_LUASOCKET
  863. ${LOVE_SRC_3P_LUASOCKET_ROOT}
  864. ${LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET}
  865. )
  866. add_library(love_3p_luasocket ${LOVE_SRC_3P_LUASOCKET})
  867. target_link_libraries(love_3p_luasocket ${MEGA_LUA})
  868. #
  869. # noise1234
  870. #
  871. set(LOVE_SRC_3P_NOISE1234
  872. src/libraries/noise1234/simplexnoise1234.cpp
  873. src/libraries/noise1234/simplexnoise1234.h
  874. )
  875. add_library(love_3p_noise1234 ${LOVE_SRC_3P_NOISE1234})
  876. #
  877. # utf8
  878. #
  879. set(LOVE_SRC_3P_UTF8_ROOT src/libraries/utf8/utf8.h)
  880. set(LOVE_SRC_3P_UTF8_UTF8
  881. src/libraries/utf8/utf8/checked.h
  882. src/libraries/utf8/utf8/core.h
  883. src/libraries/utf8/utf8/unchecked.h
  884. )
  885. set(LOVE_SRC_3P_UTF8
  886. ${LOVE_SRC_3P_UTF8_ROOT}
  887. ${LOVE_SRC_3P_UTF8_UTF8}
  888. )
  889. # This library is all headers ... so there is no need to
  890. # add_library() here.
  891. #
  892. # Wuff
  893. #
  894. set(LOVE_SRC_3P_WUFF
  895. src/libraries/Wuff/wuff.c
  896. src/libraries/Wuff/wuff.h
  897. src/libraries/Wuff/wuff_config.h
  898. src/libraries/Wuff/wuff_convert.c
  899. src/libraries/Wuff/wuff_convert.h
  900. src/libraries/Wuff/wuff_internal.c
  901. src/libraries/Wuff/wuff_internal.h
  902. src/libraries/Wuff/wuff_memory.c
  903. )
  904. add_library(love_3p_wuff ${LOVE_SRC_3P_WUFF})
  905. set(LOVE_3P
  906. love_3p_box2d
  907. love_3p_ddsparse
  908. love_3p_enet
  909. love_3p_luasocket
  910. love_3p_noise1234
  911. love_3p_wuff
  912. )
  913. disable_warnings(love_3p_box2d love_3p_enet love_3p_luasocket)
  914. #
  915. # liblove
  916. #
  917. set(LOVE_LIB_SRC
  918. ${LOVE_SRC_COMMON}
  919. # Modules
  920. ${LOVE_SRC_MODULE_AUDIO}
  921. ${LOVE_SRC_MODULE_EVENT}
  922. ${LOVE_SRC_MODULE_FILESYSTEM}
  923. ${LOVE_SRC_MODULE_FONT}
  924. ${LOVE_SRC_MODULE_GRAPHICS}
  925. ${LOVE_SRC_MODULE_IMAGE}
  926. ${LOVE_SRC_MODULE_JOYSTICK}
  927. ${LOVE_SRC_MODULE_KEYBOARD}
  928. ${LOVE_SRC_MODULE_LOVE}
  929. ${LOVE_SRC_MODULE_MATH}
  930. ${LOVE_SRC_MODULE_MOUSE}
  931. ${LOVE_SRC_MODULE_PHYSICS}
  932. ${LOVE_SRC_MODULE_SOUND}
  933. ${LOVE_SRC_MODULE_SYSTEM}
  934. ${LOVE_SRC_MODULE_THREAD}
  935. ${LOVE_SRC_MODULE_TIMER}
  936. ${LOVE_SRC_MODULE_WINDOW}
  937. )
  938. include_directories(
  939. src
  940. src/libraries
  941. src/modules
  942. ${MEGA_EXTRA_INCLUDE}
  943. )
  944. # SDL2 links with some DirectX libraries, and we apparently also
  945. # pull those libraries in for linkage because we link with SDL2.
  946. link_directories(${SDL_LINK_DIR})
  947. set(LOVE_MEGA_3P
  948. ${MEGA_DEVIL}
  949. ${MEGA_FREETYPE}
  950. ${MEGA_JASPER}
  951. ${MEGA_JPEG}
  952. ${MEGA_LIBOGG}
  953. ${MEGA_LIBPNG}
  954. ${MEGA_LIBVORBISFILE}
  955. ${MEGA_LIBVORBIS}
  956. ${MEGA_LUA}
  957. ${MEGA_MODPLUG}
  958. ${MEGA_MPEG123}
  959. ${MEGA_OPENAL}
  960. ${MEGA_PHYSFS}
  961. ${MEGA_SDL2MAIN}
  962. ${MEGA_SDL2}
  963. ${MEGA_TIFF}
  964. ${MEGA_ZLIB}
  965. )
  966. set(LOVE_LINK_LIBRARIES
  967. ${OPENGL_gl_LIBRARY}
  968. ${LOVE_MEGA_3P}
  969. )
  970. set(LOVE_RC)
  971. if(MSVC)
  972. set(LOVE_LINK_LIBRARIES ${LOVE_LINK_LIBRARIES}
  973. ws2_32.lib
  974. winmm.lib
  975. )
  976. set(LOVE_RC
  977. platform/msvc2010/love.rc
  978. platform/msvc2010/love.ico
  979. )
  980. endif()
  981. add_library(${LOVE_LIB_NAME} SHARED ${LOVE_LIB_SRC} ${LOVE_RC})
  982. target_link_libraries(liblove ${LOVE_LINK_LIBRARIES} ${LOVE_3P})
  983. if(MEGA_EXTRA_DEPENDECIES)
  984. add_dependencies(${LOVE_LIB_NAME} ${MEGA_EXTRA_DEPENDECIES})
  985. endif()
  986. if(MSVC)
  987. set_target_properties(${LOVE_LIB_NAME} PROPERTIES RELEASE_OUTPUT_NAME "love" PDB_NAME "liblove")
  988. set_target_properties(${LOVE_LIB_NAME} PROPERTIES DEBUG_OUTPUT_NAME "love" PDB_NAME "liblove")
  989. endif()
  990. #
  991. # love (executable)
  992. #
  993. add_executable(${LOVE_EXE_NAME} WIN32 src/love.cpp ${LOVE_RC})
  994. target_link_libraries(love liblove)
  995. # Add post build steps to move the DLLs next to the binary. Otherwise
  996. # running/debugging the binary will not work from inside VS.
  997. add_move_dll(love ${MEGA_MPEG123})
  998. add_move_dll(love ${MEGA_SDL2})
  999. add_move_dll(love ${MEGA_OPENAL})
  1000. add_move_dll(love ${MEGA_DEVIL})
  1001. if(LOVE_JIT)
  1002. add_move_file(love ${MEGA_LUAJIT_DLL})
  1003. else()
  1004. add_move_dll(love ${MEGA_LUA51})
  1005. endif()
  1006. ###################################
  1007. # Version
  1008. ###################################
  1009. # Extract version.h contents.
  1010. file(READ ${CMAKE_CURRENT_SOURCE_DIR}/src/common/version.h LOVE_VERSION_FILE_CONTENTS)
  1011. # Extract one of LOVE_VERSION_MAJOR/MINOR/REV.
  1012. function(match_version ARG_STRING OUT_VAR)
  1013. string(REGEX MATCH "VERSION_${ARG_STRING} = ([0-9]+);" TMP_VER "${LOVE_VERSION_FILE_CONTENTS}")
  1014. string(REGEX MATCH "[0-9]+" TMP_VER "${TMP_VER}")
  1015. set(${OUT_VAR} ${TMP_VER} PARENT_SCOPE)
  1016. endfunction()
  1017. match_version("MAJOR" LOVE_VERSION_MAJOR)
  1018. match_version("MINOR" LOVE_VERSION_MINOR)
  1019. match_version("REV" LOVE_VERSION_REV)
  1020. set(LOVE_VERSION_STR "${LOVE_VERSION_MAJOR}.${LOVE_VERSION_MINOR}.${LOVE_VERSION_REV}")
  1021. message(STATUS "Version: ${LOVE_VERSION_STR}")
  1022. ###################################
  1023. # CPack
  1024. ###################################
  1025. install(TARGETS love ${LOVE_LIB_NAME} RUNTIME DESTINATION .)
  1026. # Extra DLLs.
  1027. if(MEGA_EXTRA_DLLS)
  1028. foreach(DLL ${MEGA_EXTRA_DLLS})
  1029. get_filename_component(DLL_NAME ${DLL} NAME)
  1030. message(STATUS "Extra DLL: ${DLL_NAME}")
  1031. endforeach()
  1032. install(FILES ${MEGA_EXTRA_DLLS} DESTINATION .)
  1033. endif()
  1034. # Dynamic runtime libs.
  1035. if(MEGA_MSVC_DLLS)
  1036. foreach(DLL ${MEGA_MSVC_DLLS})
  1037. get_filename_component(DLL_NAME ${DLL} NAME)
  1038. message(STATUS "Runtime DLL: ${DLL_NAME}")
  1039. endforeach()
  1040. install(FILES ${MEGA_MSVC_DLLS} DESTINATION .)
  1041. endif()
  1042. # Copy a text file from CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_BINARY_DIR.
  1043. # On Windows, this function will convert line endings to CR,LF.
  1044. function(copy_text_file ARG_FILE_IN ARG_FILE_OUT)
  1045. file(READ ${CMAKE_CURRENT_SOURCE_DIR}/${ARG_FILE_IN} TMP_TXT_CONTENTS)
  1046. file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${ARG_FILE_OUT} ${TMP_TXT_CONTENTS})
  1047. endfunction()
  1048. # Text files.
  1049. copy_text_file(readme.md readme.txt)
  1050. copy_text_file(license.txt license.txt)
  1051. copy_text_file(changes.txt changes.txt)
  1052. install(FILES
  1053. ${CMAKE_CURRENT_BINARY_DIR}/changes.txt
  1054. ${CMAKE_CURRENT_BINARY_DIR}/license.txt
  1055. ${CMAKE_CURRENT_BINARY_DIR}/readme.txt
  1056. DESTINATION .)
  1057. set(CPACK_GENERATOR ZIP NSIS)
  1058. set(CPACK_PACKAGE_NAME "love")
  1059. set(CPACK_PACKAGE_VENDOR "love2d.org")
  1060. set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LOVE -- It's awesome")
  1061. set(CPACK_PACKAGE_VERSION "${LOVE_VERSION_STR}")
  1062. set(CPACK_PACKAGE_VERSION_MAJOR "${LOVE_VERSION_MAJOR}")
  1063. set(CPACK_PACKAGE_VERSION_MINOR "${LOVE_VERSION_MINOR}")
  1064. set(CPACK_PACKAGE_VERSION_PATCH "${LOVE_VERSION_REV}")
  1065. set(CPACK_PACKAGE_INSTALL_DIRECTORY "LOVE")
  1066. set(CPACK_PACKAGE_EXECUTABLES "love;LOVE")
  1067. set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/readme.md")
  1068. set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/license.txt")
  1069. set(CPACK_NSIS_EXECUTABLES_DIRECTORY .)
  1070. set(CPACK_NSIS_PACKAGE_NAME "LÖVE")
  1071. set(CPACK_NSIS_DISPLAY_NAME "LÖVE ${LOVE_VERSION_STR}")
  1072. set(CPACK_NSIS_MODIFY_PATH OFF)
  1073. if(LOVE_X64)
  1074. set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
  1075. else()
  1076. set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
  1077. endif()
  1078. set(CPACK_NSIS_MENU_LINKS "http://love2d.org/wiki" "Documentation")
  1079. # Some bug somewhere in NSIS requires "\\\\" somewhere in the path,
  1080. # according to The Internet. (And sure enough, it does not work
  1081. # without it).
  1082. set(NSIS_LEFT_BMP "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\left.bmp")
  1083. set(NSIS_TOP_BMP "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\top.bmp")
  1084. set(NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
  1085. set(NSIS_MUI_UNICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
  1086. set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "
  1087. !define MUI_WELCOMEPAGE_TITLE \\\"LÖVE ${LOVE_VERSION_STR} Setup\\\"
  1088. !define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${NSIS_LEFT_BMP}\\\"
  1089. !define MUI_HEADERIMAGE_BITMAP \\\"${NSIS_TOP_BMP}\\\"
  1090. !define MUI_ICON \\\"${NSIS_MUI_ICON}\\\"
  1091. !define MUI_UNICON \\\"${NSIS_MUI_UNICON}\\\"
  1092. ")
  1093. include(CPack)