CMakeLists.txt 39 KB

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