CMakeLists.txt 59 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967
  1. #
  2. # Copyright (c) 2006-2024 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 3.1)
  25. project(love)
  26. set(LOVE_EXE_NAME love)
  27. set(LOVE_LIB_NAME liblove)
  28. set(CMAKE_MODULE_PATH "${love_SOURCE_DIR}/extra/cmake" ${CMAKE_MODULE_PATH})
  29. # Needed for shared libs on Linux. (-fPIC).
  30. set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
  31. set (CMAKE_CXX_STANDARD 11)
  32. if(APPLE)
  33. message(WARNING "CMake is not an officially supported build system for love on Apple platforms.")
  34. message(WARNING "Use the prebuilt .app or the xcode project in platform/xcode/ instead.")
  35. endif()
  36. if(MSVC OR MINGW)
  37. set(LOVE_CONSOLE_EXE_NAME lovec)
  38. endif()
  39. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  40. set(LOVE_X64 TRUE)
  41. set(LOVE_TARGET_PLATFORM x64)
  42. else()
  43. set(LOVE_X86 TRUE)
  44. set(LOVE_TARGET_PLATFORM x86)
  45. endif()
  46. if(APPLE)
  47. option(LOVE_JIT "Use LuaJIT" FALSE)
  48. else()
  49. option(LOVE_JIT "Use LuaJIT" TRUE)
  50. endif()
  51. option(LOVE_MPG123 "Use mpg123" TRUE)
  52. if(LOVE_JIT)
  53. if(APPLE)
  54. message(WARNING "JIT not supported yet on Mac.")
  55. endif()
  56. message(STATUS "LuaJIT: Enabled")
  57. else()
  58. message(STATUS "LuaJIT: Disabled")
  59. endif()
  60. if(NOT LOVE_MPG123)
  61. add_definitions(-DLOVE_NOMPG123)
  62. endif()
  63. message(STATUS "Target platform: ${LOVE_TARGET_PLATFORM}")
  64. if(POLICY CMP0072)
  65. cmake_policy(SET CMP0072 NEW)
  66. endif()
  67. if(POLICY CMP0063)
  68. cmake_policy(SET CMP0063 NEW)
  69. endif()
  70. find_package(OpenGL)
  71. if(MEGA)
  72. # LOVE_MSVC_DLLS contains runtime DLLs that should be bundled with the love
  73. # binary (in e.g. the installer). Example: msvcp140.dll.
  74. set(LOVE_MSVC_DLLS ${MEGA_MSVC_DLLS})
  75. # LOVE_INCLUDE_DIRS contains the search directories for #include. It's mostly
  76. # not needed for MEGA builds, since almost all the libraries (except LuaJIT)
  77. # are CMake targets, causing include paths to be added automatically.
  78. set(LOVE_INCLUDE_DIRS)
  79. if(APPLE)
  80. # Some files do #include <SDL2/SDL.h>, but building with megasource
  81. # requires #include <SDL.h>.
  82. add_definitions(-DLOVE_MACOSX_SDL_DIRECT_INCLUDE)
  83. endif ()
  84. # SDL2 links with some DirectX libraries, and we apparently also
  85. # pull those libraries in for linkage because we link with SDL2.
  86. set(LOVE_LINK_DIRS ${SDL_LINK_DIR})
  87. set(LOVE_LINK_LIBRARIES
  88. ${OPENGL_gl_LIBRARY}
  89. ${MEGA_FREETYPE}
  90. ${MEGA_LIBOGG}
  91. ${MEGA_LIBVORBISFILE}
  92. ${MEGA_LIBVORBIS}
  93. ${MEGA_LIBTHEORA}
  94. ${MEGA_MODPLUG}
  95. ${MEGA_OPENAL}
  96. ${MEGA_SDL2MAIN}
  97. ${MEGA_SDL2}
  98. ${MEGA_ZLIB}
  99. )
  100. # These DLLs are moved next to the love binary in a post-build step to
  101. # love runnable from inside Visual Studio.
  102. #
  103. # LOVE_MOVE_DLLS can contain CMake targets, in which case the target's
  104. # output is assumed to be a DLL, or it can contain paths to actual files.
  105. # We detect whether or not each item is a target, and take the appropriate
  106. # action.
  107. set(LOVE_MOVE_DLLS
  108. ${MEGA_SDL2}
  109. ${MEGA_OPENAL}
  110. )
  111. if(LOVE_MPG123)
  112. set(LOVE_LINK_LIBRARIES
  113. ${LOVE_LINK_LIBRARIES}
  114. ${MEGA_MPEG123}
  115. )
  116. set(LOVE_MOVE_DLLS
  117. ${LOVE_MOVE_DLLS}
  118. ${MEGA_MPEG123}
  119. )
  120. endif()
  121. if(LOVE_JIT)
  122. set(LOVE_LUA_LIBRARY ${MEGA_LUAJIT_LIB})
  123. # LOVE_EXTRA_DLLS are non-runtime DLLs which should be bundled with the
  124. # love binary in installers, etc. It's only needed for external
  125. # (non-CMake) targets, i.e. LuaJIT.
  126. set(LOVE_EXTRA_DLLS ${MEGA_LUAJIT_DLL})
  127. set(LOVE_EXTRA_DEPENDECIES luajit)
  128. set(LOVE_INCLUDE_DIRS
  129. ${LOVE_INCLUDE_DIRS}
  130. ${MEGA_LUAJIT_INCLUDE}
  131. )
  132. set(LOVE_LINK_LIBRARIES
  133. ${LOVE_LINK_LIBRARIES}
  134. ${LOVE_LUA_LIBRARY}
  135. )
  136. set(LOVE_MOVE_DLLS
  137. ${LOVE_MOVE_DLLS}
  138. ${MEGA_LUAJIT_DLL}
  139. )
  140. else()
  141. set(LOVE_LUA_LIBRARY ${MEGA_LUA51})
  142. set(LOVE_LINK_LIBRARIES
  143. ${LOVE_LINK_LIBRARIES}
  144. ${LOVE_LUA_LIBRARY}
  145. )
  146. set(LOVE_MOVE_DLLS
  147. ${LOVE_MOVE_DLLS}
  148. ${LOVE_LUA_LIBRARY}
  149. )
  150. # MEGA_LUA51 is a CMake target, so includes are handled
  151. # automatically.
  152. endif()
  153. else()
  154. if(MSVC)
  155. message(FATAL_ERROR "
  156. It is currently only possible to build with megasource or (experimental) mingw on Windows.
  157. Please see https://github.com/love2d/megasource
  158. ")
  159. endif()
  160. find_package(Freetype REQUIRED)
  161. find_package(ModPlug REQUIRED)
  162. find_package(OpenAL REQUIRED)
  163. find_package(OpenGL REQUIRED)
  164. find_package(SDL2 REQUIRED CONFIG COMPONENTS SDL2main)
  165. find_package(Theora REQUIRED)
  166. find_package(Vorbis REQUIRED)
  167. find_package(ZLIB REQUIRED)
  168. find_package(Ogg REQUIRED)
  169. # required for enet
  170. add_definitions(-D HAS_SOCKLEN_T)
  171. set(LOVE_INCLUDE_DIRS
  172. ${SDL2_INCLUDE_DIRS}
  173. ${FREETYPE_INCLUDE_DIRS}
  174. ${VORBIS_INCLUDE_DIR}
  175. ${OPENAL_INCLUDE_DIR}
  176. ${ZLIB_INCLUDE_DIRS}
  177. ${MODPLUG_INCLUDE_DIR}
  178. ${OGG_INCLUDE_DIR}
  179. ${THEORA_INCLUDE_DIR}
  180. )
  181. set(LOVE_LINK_LIBRARIES
  182. ${OPENGL_gl_LIBRARY}
  183. ${SDL2_LIBRARIES}
  184. ${FREETYPE_LIBRARY}
  185. ${OPENAL_LIBRARY}
  186. ${MODPLUG_LIBRARY}
  187. ${THEORA_LIBRARY}
  188. ${THEORADEC_LIBRARY}
  189. ${VORBISFILE_LIBRARY}
  190. ${LOVE_LUA_LIBRARY}
  191. ${OGG_LIBRARY}
  192. ${ZLIB_LIBRARY}
  193. )
  194. if(LOVE_MPG123)
  195. find_package(MPG123 REQUIRED)
  196. set(LOVE_LINK_LIBRARIES
  197. ${LOVE_LINK_LIBRARIES}
  198. ${MPG123_LIBRARY}
  199. )
  200. set(LOVE_INCLUDE_DIRS
  201. ${LOVE_INCLUDE_DIRS}
  202. ${MPG123_INCLUDE_DIR}
  203. )
  204. endif()
  205. if(LOVE_JIT)
  206. find_package(LuaJIT REQUIRED)
  207. set(LOVE_LUA_LIBRARY ${LUAJIT_LIBRARY})
  208. set(LOVE_LUA_INCLUDE_DIR ${LUAJIT_INCLUDE_DIR})
  209. else()
  210. find_package(Lua51 REQUIRED)
  211. set(LOVE_LUA_LIBRARY ${LUA_LIBRARY})
  212. set(LOVE_LUA_INCLUDE_DIR ${LUA_INCLUDE_DIR})
  213. endif()
  214. set(LOVE_INCLUDE_DIRS
  215. ${LOVE_INCLUDE_DIRS}
  216. ${LOVE_LUA_INCLUDE_DIR}
  217. )
  218. set(LOVE_LINK_LIBRARIES
  219. ${LOVE_LINK_LIBRARIES}
  220. ${LOVE_LUA_LIBRARY}
  221. )
  222. endif()
  223. ###
  224. ### No Megasource-specific stuff beyond this point!
  225. ###
  226. if(MSVC)
  227. set(DISABLE_WARNING_FLAG -W0)
  228. else()
  229. set(DISABLE_WARNING_FLAG -w)
  230. endif()
  231. function(love_disable_warnings ARG_TARGET)
  232. get_target_property(OLD_FLAGS ${ARG_TARGET} COMPILE_FLAGS)
  233. set(NEW_FLAGS ${DISABLE_WARNING_FLAG})
  234. if(OLD_FLAGS)
  235. set(NEW_FLAGS "${OLD_FLAGS} ${NEW_FLAGS}")
  236. endif()
  237. set_target_properties(${ARG_TARGET} PROPERTIES COMPILE_FLAGS ${NEW_FLAGS})
  238. endfunction()
  239. #
  240. # common
  241. #
  242. set(LOVE_SRC_COMMON
  243. src/common/b64.cpp
  244. src/common/b64.h
  245. src/common/Color.h
  246. src/common/config.h
  247. src/common/Data.cpp
  248. src/common/Data.h
  249. src/common/delay.cpp
  250. src/common/delay.h
  251. src/common/deprecation.cpp
  252. src/common/deprecation.h
  253. src/common/EnumMap.h
  254. src/common/Exception.cpp
  255. src/common/Exception.h
  256. src/common/floattypes.cpp
  257. src/common/floattypes.h
  258. src/common/int.h
  259. src/common/math.h
  260. src/common/Matrix.cpp
  261. src/common/Matrix.h
  262. src/common/memory.cpp
  263. src/common/memory.h
  264. src/common/Module.cpp
  265. src/common/Module.h
  266. src/common/Object.cpp
  267. src/common/Object.h
  268. src/common/Optional.h
  269. src/common/pixelformat.cpp
  270. src/common/pixelformat.h
  271. src/common/Reference.cpp
  272. src/common/Reference.h
  273. src/common/runtime.cpp
  274. src/common/runtime.h
  275. src/common/Stream.cpp
  276. src/common/Stream.h
  277. src/common/StringMap.cpp
  278. src/common/StringMap.h
  279. src/common/types.cpp
  280. src/common/types.h
  281. src/common/utf8.cpp
  282. src/common/utf8.h
  283. src/common/Variant.cpp
  284. src/common/Variant.h
  285. #src/common/Vector.cpp # Vector.cpp is empty.
  286. src/common/Vector.h
  287. src/common/version.h
  288. )
  289. if (APPLE)
  290. set(LOVE_SRC_COMMON ${LOVE_SRC_COMMON}
  291. src/common/macosx.mm
  292. )
  293. set(LOVE_LINK_LIBRARIES ${LOVE_LINK_LIBRARIES} objc)
  294. set(LOVE_LINK_LIBRARIES ${LOVE_LINK_LIBRARIES} "-framework CoreFoundation")
  295. set(LOVE_LINK_LIBRARIES ${LOVE_LINK_LIBRARIES} "-framework AppKit")
  296. endif()
  297. source_group("common" FILES ${LOVE_SRC_COMMON})
  298. #
  299. # love.audio
  300. #
  301. set(LOVE_SRC_MODULE_AUDIO_ROOT
  302. src/modules/audio/Audio.cpp
  303. src/modules/audio/Audio.h
  304. src/modules/audio/Source.cpp
  305. src/modules/audio/Source.h
  306. src/modules/audio/RecordingDevice.cpp
  307. src/modules/audio/RecordingDevice.h
  308. src/modules/audio/Filter.cpp
  309. src/modules/audio/Filter.h
  310. src/modules/audio/Effect.cpp
  311. src/modules/audio/Effect.h
  312. src/modules/audio/wrap_Audio.cpp
  313. src/modules/audio/wrap_Audio.h
  314. src/modules/audio/wrap_Source.cpp
  315. src/modules/audio/wrap_Source.h
  316. src/modules/audio/wrap_RecordingDevice.cpp
  317. src/modules/audio/wrap_RecordingDevice.h
  318. )
  319. set(LOVE_SRC_MODULE_AUDIO_NULL
  320. src/modules/audio/null/Audio.cpp
  321. src/modules/audio/null/Audio.h
  322. src/modules/audio/null/Source.cpp
  323. src/modules/audio/null/Source.h
  324. src/modules/audio/null/RecordingDevice.cpp
  325. src/modules/audio/null/RecordingDevice.h
  326. )
  327. set(LOVE_SRC_MODULE_AUDIO_OPENAL
  328. src/modules/audio/openal/Audio.cpp
  329. src/modules/audio/openal/Audio.h
  330. src/modules/audio/openal/Pool.cpp
  331. src/modules/audio/openal/Pool.h
  332. src/modules/audio/openal/Source.cpp
  333. src/modules/audio/openal/Source.h
  334. src/modules/audio/openal/RecordingDevice.cpp
  335. src/modules/audio/openal/RecordingDevice.h
  336. src/modules/audio/openal/Filter.cpp
  337. src/modules/audio/openal/Filter.h
  338. src/modules/audio/openal/Effect.cpp
  339. src/modules/audio/openal/Effect.h
  340. )
  341. set(LOVE_SRC_MODULE_AUDIO
  342. ${LOVE_SRC_MODULE_AUDIO_ROOT}
  343. ${LOVE_SRC_MODULE_AUDIO_NULL}
  344. ${LOVE_SRC_MODULE_AUDIO_OPENAL}
  345. )
  346. source_group("modules\\audio" FILES ${LOVE_SRC_MODULE_AUDIO_ROOT})
  347. source_group("modules\\audio\\null" FILES ${LOVE_SRC_MODULE_AUDIO_NULL})
  348. source_group("modules\\audio\\openal" FILES ${LOVE_SRC_MODULE_AUDIO_OPENAL})
  349. #
  350. # love.data
  351. #
  352. set(LOVE_SRC_MODULE_DATA
  353. src/modules/data/ByteData.cpp
  354. src/modules/data/ByteData.h
  355. src/modules/data/CompressedData.cpp
  356. src/modules/data/CompressedData.h
  357. src/modules/data/Compressor.cpp
  358. src/modules/data/Compressor.h
  359. src/modules/data/DataModule.cpp
  360. src/modules/data/DataModule.h
  361. src/modules/data/DataView.cpp
  362. src/modules/data/DataView.h
  363. src/modules/data/HashFunction.cpp
  364. src/modules/data/HashFunction.h
  365. src/modules/data/wrap_ByteData.cpp
  366. src/modules/data/wrap_ByteData.h
  367. src/modules/data/wrap_CompressedData.cpp
  368. src/modules/data/wrap_CompressedData.h
  369. src/modules/data/wrap_Data.cpp
  370. src/modules/data/wrap_Data.h
  371. src/modules/data/wrap_DataModule.cpp
  372. src/modules/data/wrap_DataModule.h
  373. src/modules/data/wrap_DataView.cpp
  374. src/modules/data/wrap_DataView.h
  375. )
  376. source_group("modules\\data" FILES ${LOVE_SRC_MODULE_DATA})
  377. #
  378. # love.event
  379. #
  380. set(LOVE_SRC_MODULE_EVENT_ROOT
  381. src/modules/event/Event.cpp
  382. src/modules/event/Event.h
  383. src/modules/event/wrap_Event.cpp
  384. src/modules/event/wrap_Event.h
  385. )
  386. set(LOVE_SRC_MODULE_EVENT_SDL
  387. src/modules/event/sdl/Event.cpp
  388. src/modules/event/sdl/Event.h
  389. )
  390. set(LOVE_SRC_MODULE_EVENT
  391. ${LOVE_SRC_MODULE_EVENT_ROOT}
  392. ${LOVE_SRC_MODULE_EVENT_SDL}
  393. )
  394. source_group("modules\\event" FILES ${LOVE_SRC_MODULE_EVENT_ROOT})
  395. source_group("modules\\event\\sdl" FILES ${LOVE_SRC_MODULE_EVENT_SDL})
  396. #
  397. # love.filesystem
  398. #
  399. set(LOVE_SRC_MODULE_FILESYSTEM_ROOT
  400. src/modules/filesystem/DroppedFile.cpp
  401. src/modules/filesystem/DroppedFile.h
  402. src/modules/filesystem/File.cpp
  403. src/modules/filesystem/File.h
  404. src/modules/filesystem/FileData.cpp
  405. src/modules/filesystem/FileData.h
  406. src/modules/filesystem/Filesystem.cpp
  407. src/modules/filesystem/Filesystem.h
  408. src/modules/filesystem/wrap_DroppedFile.cpp
  409. src/modules/filesystem/wrap_DroppedFile.h
  410. src/modules/filesystem/wrap_File.cpp
  411. src/modules/filesystem/wrap_File.h
  412. src/modules/filesystem/wrap_FileData.cpp
  413. src/modules/filesystem/wrap_FileData.h
  414. src/modules/filesystem/wrap_Filesystem.cpp
  415. src/modules/filesystem/wrap_Filesystem.h
  416. )
  417. set(LOVE_SRC_MODULE_FILESYSTEM_PHYSFS
  418. src/modules/filesystem/physfs/File.cpp
  419. src/modules/filesystem/physfs/File.h
  420. src/modules/filesystem/physfs/Filesystem.cpp
  421. src/modules/filesystem/physfs/Filesystem.h
  422. src/modules/filesystem/physfs/PhysfsIo.h
  423. src/modules/filesystem/physfs/PhysfsIo.cpp
  424. )
  425. set(LOVE_SRC_MODULE_FILESYSTEM
  426. ${LOVE_SRC_MODULE_FILESYSTEM_ROOT}
  427. ${LOVE_SRC_MODULE_FILESYSTEM_PHYSFS}
  428. )
  429. source_group("modules\\filesystem" FILES ${LOVE_SRC_MODULE_FILESYSTEM_ROOT})
  430. source_group("modules\\filesystem\\physfs" FILES ${LOVE_SRC_MODULE_FILESYSTEM_PHYSFS})
  431. #
  432. # love.font
  433. #
  434. set(LOVE_SRC_MODULE_FONT_ROOT
  435. src/modules/font/BMFontRasterizer.cpp
  436. src/modules/font/BMFontRasterizer.h
  437. src/modules/font/Font.cpp
  438. src/modules/font/Font.h
  439. src/modules/font/GlyphData.cpp
  440. src/modules/font/GlyphData.h
  441. src/modules/font/ImageRasterizer.cpp
  442. src/modules/font/ImageRasterizer.h
  443. src/modules/font/Rasterizer.cpp
  444. src/modules/font/Rasterizer.h
  445. src/modules/font/TrueTypeRasterizer.cpp
  446. src/modules/font/TrueTypeRasterizer.h
  447. src/modules/font/wrap_Font.cpp
  448. src/modules/font/wrap_Font.h
  449. src/modules/font/wrap_GlyphData.cpp
  450. src/modules/font/wrap_GlyphData.h
  451. src/modules/font/wrap_Rasterizer.cpp
  452. src/modules/font/wrap_Rasterizer.h
  453. )
  454. set(LOVE_SRC_MODULE_FONT_FREETYPE
  455. src/modules/font/freetype/Font.cpp
  456. src/modules/font/freetype/Font.h
  457. src/modules/font/freetype/TrueTypeRasterizer.cpp
  458. src/modules/font/freetype/TrueTypeRasterizer.h
  459. )
  460. set(LOVE_SRC_MODULE_FONT
  461. ${LOVE_SRC_MODULE_FONT_ROOT}
  462. ${LOVE_SRC_MODULE_FONT_FREETYPE}
  463. )
  464. source_group("modules\\font" FILES ${LOVE_SRC_MODULE_FONT_ROOT})
  465. source_group("modules\\font\\freetype" FILES ${LOVE_SRC_MODULE_FONT_FREETYPE})
  466. #
  467. # love.graphics
  468. #
  469. set(LOVE_SRC_MODULE_GRAPHICS_ROOT
  470. src/modules/graphics/Buffer.cpp
  471. src/modules/graphics/Buffer.h
  472. src/modules/graphics/Canvas.cpp
  473. src/modules/graphics/Canvas.h
  474. src/modules/graphics/depthstencil.cpp
  475. src/modules/graphics/depthstencil.h
  476. src/modules/graphics/Deprecations.cpp
  477. src/modules/graphics/Deprecations.h
  478. src/modules/graphics/Drawable.cpp
  479. src/modules/graphics/Drawable.h
  480. src/modules/graphics/Font.cpp
  481. src/modules/graphics/Font.h
  482. src/modules/graphics/Graphics.cpp
  483. src/modules/graphics/Graphics.h
  484. src/modules/graphics/Image.cpp
  485. src/modules/graphics/Image.h
  486. src/modules/graphics/Mesh.cpp
  487. src/modules/graphics/Mesh.h
  488. src/modules/graphics/ParticleSystem.cpp
  489. src/modules/graphics/ParticleSystem.h
  490. src/modules/graphics/Polyline.cpp
  491. src/modules/graphics/Polyline.h
  492. src/modules/graphics/Quad.cpp
  493. src/modules/graphics/Quad.h
  494. src/modules/graphics/Resource.h
  495. src/modules/graphics/Shader.cpp
  496. src/modules/graphics/Shader.h
  497. src/modules/graphics/ShaderStage.cpp
  498. src/modules/graphics/ShaderStage.h
  499. src/modules/graphics/SpriteBatch.cpp
  500. src/modules/graphics/SpriteBatch.h
  501. src/modules/graphics/StreamBuffer.cpp
  502. src/modules/graphics/StreamBuffer.h
  503. src/modules/graphics/Text.cpp
  504. src/modules/graphics/Text.h
  505. src/modules/graphics/Texture.cpp
  506. src/modules/graphics/Texture.h
  507. src/modules/graphics/vertex.cpp
  508. src/modules/graphics/vertex.h
  509. src/modules/graphics/Video.cpp
  510. src/modules/graphics/Video.h
  511. src/modules/graphics/Volatile.cpp
  512. src/modules/graphics/Volatile.h
  513. src/modules/graphics/wrap_Canvas.cpp
  514. src/modules/graphics/wrap_Canvas.h
  515. src/modules/graphics/wrap_Font.cpp
  516. src/modules/graphics/wrap_Font.h
  517. src/modules/graphics/wrap_Graphics.cpp
  518. src/modules/graphics/wrap_Graphics.h
  519. src/modules/graphics/wrap_Image.cpp
  520. src/modules/graphics/wrap_Image.h
  521. src/modules/graphics/wrap_Mesh.cpp
  522. src/modules/graphics/wrap_Mesh.h
  523. src/modules/graphics/wrap_ParticleSystem.cpp
  524. src/modules/graphics/wrap_ParticleSystem.h
  525. src/modules/graphics/wrap_Quad.cpp
  526. src/modules/graphics/wrap_Quad.h
  527. src/modules/graphics/wrap_Shader.cpp
  528. src/modules/graphics/wrap_Shader.h
  529. src/modules/graphics/wrap_SpriteBatch.cpp
  530. src/modules/graphics/wrap_SpriteBatch.h
  531. src/modules/graphics/wrap_Texture.cpp
  532. src/modules/graphics/wrap_Texture.h
  533. src/modules/graphics/wrap_Text.cpp
  534. src/modules/graphics/wrap_Text.h
  535. src/modules/graphics/wrap_Video.cpp
  536. src/modules/graphics/wrap_Video.h
  537. )
  538. set(LOVE_SRC_MODULE_GRAPHICS_OPENGL
  539. src/modules/graphics/opengl/Buffer.cpp
  540. src/modules/graphics/opengl/Buffer.h
  541. src/modules/graphics/opengl/Canvas.cpp
  542. src/modules/graphics/opengl/Canvas.h
  543. src/modules/graphics/opengl/FenceSync.cpp
  544. src/modules/graphics/opengl/FenceSync.h
  545. src/modules/graphics/opengl/Graphics.cpp
  546. src/modules/graphics/opengl/Graphics.h
  547. src/modules/graphics/opengl/Image.cpp
  548. src/modules/graphics/opengl/Image.h
  549. src/modules/graphics/opengl/OpenGL.cpp
  550. src/modules/graphics/opengl/OpenGL.h
  551. src/modules/graphics/opengl/Shader.cpp
  552. src/modules/graphics/opengl/Shader.h
  553. src/modules/graphics/opengl/ShaderStage.cpp
  554. src/modules/graphics/opengl/ShaderStage.h
  555. src/modules/graphics/opengl/StreamBuffer.cpp
  556. src/modules/graphics/opengl/StreamBuffer.h
  557. )
  558. set(LOVE_SRC_MODULE_GRAPHICS
  559. ${LOVE_SRC_MODULE_GRAPHICS_ROOT}
  560. ${LOVE_SRC_MODULE_GRAPHICS_OPENGL}
  561. )
  562. source_group("modules\\graphics" FILES ${LOVE_SRC_MODULE_GRAPHICS_ROOT})
  563. source_group("modules\\graphics\\opengl" FILES ${LOVE_SRC_MODULE_GRAPHICS_OPENGL})
  564. #
  565. # love.image
  566. #
  567. set(LOVE_SRC_MODULE_IMAGE_ROOT
  568. src/modules/image/CompressedImageData.cpp
  569. src/modules/image/CompressedImageData.h
  570. src/modules/image/CompressedSlice.cpp
  571. src/modules/image/CompressedSlice.h
  572. src/modules/image/FormatHandler.cpp
  573. src/modules/image/FormatHandler.h
  574. src/modules/image/Image.cpp
  575. src/modules/image/Image.h
  576. src/modules/image/ImageData.cpp
  577. src/modules/image/ImageData.h
  578. src/modules/image/ImageDataBase.cpp
  579. src/modules/image/ImageDataBase.h
  580. src/modules/image/wrap_CompressedImageData.cpp
  581. src/modules/image/wrap_CompressedImageData.h
  582. src/modules/image/wrap_Image.cpp
  583. src/modules/image/wrap_Image.h
  584. src/modules/image/wrap_ImageData.cpp
  585. src/modules/image/wrap_ImageData.h
  586. )
  587. set(LOVE_SRC_MODULE_IMAGE_MAGPIE
  588. src/modules/image/magpie/ASTCHandler.cpp
  589. src/modules/image/magpie/ASTCHandler.h
  590. src/modules/image/magpie/ddsHandler.cpp
  591. src/modules/image/magpie/ddsHandler.h
  592. src/modules/image/magpie/EXRHandler.cpp
  593. src/modules/image/magpie/EXRHandler.h
  594. src/modules/image/magpie/KTXHandler.cpp
  595. src/modules/image/magpie/KTXHandler.h
  596. src/modules/image/magpie/PKMHandler.cpp
  597. src/modules/image/magpie/PKMHandler.h
  598. src/modules/image/magpie/PNGHandler.cpp
  599. src/modules/image/magpie/PNGHandler.h
  600. src/modules/image/magpie/PVRHandler.cpp
  601. src/modules/image/magpie/PVRHandler.h
  602. src/modules/image/magpie/STBHandler.cpp
  603. src/modules/image/magpie/STBHandler.h
  604. )
  605. set(LOVE_SRC_MODULE_IMAGE
  606. ${LOVE_SRC_MODULE_IMAGE_ROOT}
  607. ${LOVE_SRC_MODULE_IMAGE_MAGPIE}
  608. )
  609. source_group("modules\\image" FILES ${LOVE_SRC_MODULE_IMAGE_ROOT})
  610. source_group("modules\\image\\magpie" FILES ${LOVE_SRC_MODULE_IMAGE_MAGPIE})
  611. #
  612. # love.joystick
  613. #
  614. set(LOVE_SRC_MODULE_JOYSTICK_ROOT
  615. src/modules/joystick/Joystick.cpp
  616. src/modules/joystick/Joystick.h
  617. src/modules/joystick/JoystickModule.h
  618. src/modules/joystick/wrap_Joystick.cpp
  619. src/modules/joystick/wrap_Joystick.h
  620. src/modules/joystick/wrap_JoystickModule.cpp
  621. src/modules/joystick/wrap_JoystickModule.h
  622. )
  623. set(LOVE_SRC_MODULE_JOYSTICK_SDL
  624. src/modules/joystick/sdl/Joystick.cpp
  625. src/modules/joystick/sdl/Joystick.h
  626. src/modules/joystick/sdl/JoystickModule.cpp
  627. src/modules/joystick/sdl/JoystickModule.h
  628. )
  629. set(LOVE_SRC_MODULE_JOYSTICK
  630. ${LOVE_SRC_MODULE_JOYSTICK_ROOT}
  631. ${LOVE_SRC_MODULE_JOYSTICK_SDL}
  632. )
  633. source_group("modules\\joystick" FILES ${LOVE_SRC_MODULE_JOYSTICK_ROOT})
  634. source_group("modules\\joystick\\sdl" FILES ${LOVE_SRC_MODULE_JOYSTICK_SDL})
  635. #
  636. # love.keyboard
  637. #
  638. set(LOVE_SRC_MODULE_KEYBOARD_ROOT
  639. src/modules/keyboard/Keyboard.cpp
  640. src/modules/keyboard/Keyboard.h
  641. src/modules/keyboard/wrap_Keyboard.cpp
  642. src/modules/keyboard/wrap_Keyboard.h
  643. )
  644. set(LOVE_SRC_MODULE_KEYBOARD_SDL
  645. src/modules/keyboard/sdl/Keyboard.cpp
  646. src/modules/keyboard/sdl/Keyboard.h
  647. )
  648. set(LOVE_SRC_MODULE_KEYBOARD
  649. ${LOVE_SRC_MODULE_KEYBOARD_ROOT}
  650. ${LOVE_SRC_MODULE_KEYBOARD_SDL}
  651. )
  652. source_group("modules\\keyboard" FILES ${LOVE_SRC_MODULE_KEYBOARD_ROOT})
  653. source_group("modules\\keyboard\\sdl" FILES ${LOVE_SRC_MODULE_KEYBOARD_SDL})
  654. #
  655. # love.math
  656. #
  657. set(LOVE_SRC_MODULE_MATH
  658. src/modules/math/BezierCurve.cpp
  659. src/modules/math/BezierCurve.h
  660. src/modules/math/MathModule.cpp
  661. src/modules/math/MathModule.h
  662. src/modules/math/RandomGenerator.cpp
  663. src/modules/math/RandomGenerator.h
  664. src/modules/math/Transform.cpp
  665. src/modules/math/Transform.h
  666. src/modules/math/wrap_BezierCurve.cpp
  667. src/modules/math/wrap_BezierCurve.h
  668. src/modules/math/wrap_Math.cpp
  669. src/modules/math/wrap_Math.h
  670. src/modules/math/wrap_RandomGenerator.cpp
  671. src/modules/math/wrap_RandomGenerator.h
  672. src/modules/math/wrap_Transform.cpp
  673. src/modules/math/wrap_Transform.h
  674. )
  675. source_group("modules\\math" FILES ${LOVE_SRC_MODULE_MATH})
  676. #
  677. # love (module)
  678. #
  679. set(LOVE_SRC_MODULE_LOVE
  680. src/modules/love/love.cpp
  681. src/modules/love/love.h
  682. )
  683. source_group("modules\\love" FILES ${LOVE_SRC_MODULE_LOVE})
  684. #
  685. # love.mouse
  686. #
  687. set(LOVE_SRC_MODULE_MOUSE_ROOT
  688. src/modules/mouse/Cursor.cpp
  689. src/modules/mouse/Cursor.h
  690. src/modules/mouse/Mouse.h
  691. src/modules/mouse/wrap_Cursor.cpp
  692. src/modules/mouse/wrap_Cursor.h
  693. src/modules/mouse/wrap_Mouse.cpp
  694. src/modules/mouse/wrap_Mouse.h
  695. )
  696. set(LOVE_SRC_MODULE_MOUSE_SDL
  697. src/modules/mouse/sdl/Cursor.cpp
  698. src/modules/mouse/sdl/Cursor.h
  699. src/modules/mouse/sdl/Mouse.cpp
  700. src/modules/mouse/sdl/Mouse.h
  701. )
  702. set(LOVE_SRC_MODULE_MOUSE
  703. ${LOVE_SRC_MODULE_MOUSE_ROOT}
  704. ${LOVE_SRC_MODULE_MOUSE_SDL}
  705. )
  706. source_group("modules\\mouse" FILES ${LOVE_SRC_MODULE_MOUSE_ROOT})
  707. source_group("modules\\mouse\\sdl" FILES ${LOVE_SRC_MODULE_MOUSE_SDL})
  708. #
  709. # love.physics
  710. #
  711. set(LOVE_SRC_MODULE_PHYSICS_ROOT
  712. src/modules/physics/Body.cpp
  713. src/modules/physics/Body.h
  714. src/modules/physics/Joint.cpp
  715. src/modules/physics/Joint.h
  716. src/modules/physics/Shape.cpp
  717. src/modules/physics/Shape.h
  718. )
  719. set(LOVE_SRC_MODULE_PHYSICS_BOX2D
  720. src/modules/physics/box2d/Body.cpp
  721. src/modules/physics/box2d/Body.h
  722. src/modules/physics/box2d/ChainShape.cpp
  723. src/modules/physics/box2d/ChainShape.h
  724. src/modules/physics/box2d/CircleShape.cpp
  725. src/modules/physics/box2d/CircleShape.h
  726. src/modules/physics/box2d/Contact.cpp
  727. src/modules/physics/box2d/Contact.h
  728. src/modules/physics/box2d/DistanceJoint.cpp
  729. src/modules/physics/box2d/DistanceJoint.h
  730. src/modules/physics/box2d/EdgeShape.cpp
  731. src/modules/physics/box2d/EdgeShape.h
  732. src/modules/physics/box2d/Fixture.cpp
  733. src/modules/physics/box2d/Fixture.h
  734. src/modules/physics/box2d/FrictionJoint.cpp
  735. src/modules/physics/box2d/FrictionJoint.h
  736. src/modules/physics/box2d/GearJoint.cpp
  737. src/modules/physics/box2d/GearJoint.h
  738. src/modules/physics/box2d/Joint.cpp
  739. src/modules/physics/box2d/Joint.h
  740. src/modules/physics/box2d/MotorJoint.cpp
  741. src/modules/physics/box2d/MotorJoint.h
  742. src/modules/physics/box2d/MouseJoint.cpp
  743. src/modules/physics/box2d/MouseJoint.h
  744. src/modules/physics/box2d/Physics.cpp
  745. src/modules/physics/box2d/Physics.h
  746. src/modules/physics/box2d/PolygonShape.cpp
  747. src/modules/physics/box2d/PolygonShape.h
  748. src/modules/physics/box2d/PrismaticJoint.cpp
  749. src/modules/physics/box2d/PrismaticJoint.h
  750. src/modules/physics/box2d/PulleyJoint.cpp
  751. src/modules/physics/box2d/PulleyJoint.h
  752. src/modules/physics/box2d/RevoluteJoint.cpp
  753. src/modules/physics/box2d/RevoluteJoint.h
  754. src/modules/physics/box2d/RopeJoint.cpp
  755. src/modules/physics/box2d/RopeJoint.h
  756. src/modules/physics/box2d/Shape.cpp
  757. src/modules/physics/box2d/Shape.h
  758. src/modules/physics/box2d/WeldJoint.cpp
  759. src/modules/physics/box2d/WeldJoint.h
  760. src/modules/physics/box2d/WheelJoint.cpp
  761. src/modules/physics/box2d/WheelJoint.h
  762. src/modules/physics/box2d/World.cpp
  763. src/modules/physics/box2d/World.h
  764. src/modules/physics/box2d/wrap_Body.cpp
  765. src/modules/physics/box2d/wrap_Body.h
  766. src/modules/physics/box2d/wrap_ChainShape.cpp
  767. src/modules/physics/box2d/wrap_ChainShape.h
  768. src/modules/physics/box2d/wrap_CircleShape.cpp
  769. src/modules/physics/box2d/wrap_CircleShape.h
  770. src/modules/physics/box2d/wrap_Contact.cpp
  771. src/modules/physics/box2d/wrap_Contact.h
  772. src/modules/physics/box2d/wrap_DistanceJoint.cpp
  773. src/modules/physics/box2d/wrap_DistanceJoint.h
  774. src/modules/physics/box2d/wrap_EdgeShape.cpp
  775. src/modules/physics/box2d/wrap_EdgeShape.h
  776. src/modules/physics/box2d/wrap_Fixture.cpp
  777. src/modules/physics/box2d/wrap_Fixture.h
  778. src/modules/physics/box2d/wrap_FrictionJoint.cpp
  779. src/modules/physics/box2d/wrap_FrictionJoint.h
  780. src/modules/physics/box2d/wrap_GearJoint.cpp
  781. src/modules/physics/box2d/wrap_GearJoint.h
  782. src/modules/physics/box2d/wrap_Joint.cpp
  783. src/modules/physics/box2d/wrap_Joint.h
  784. src/modules/physics/box2d/wrap_MotorJoint.cpp
  785. src/modules/physics/box2d/wrap_MotorJoint.h
  786. src/modules/physics/box2d/wrap_MouseJoint.cpp
  787. src/modules/physics/box2d/wrap_MouseJoint.h
  788. src/modules/physics/box2d/wrap_Physics.cpp
  789. src/modules/physics/box2d/wrap_Physics.h
  790. src/modules/physics/box2d/wrap_PolygonShape.cpp
  791. src/modules/physics/box2d/wrap_PolygonShape.h
  792. src/modules/physics/box2d/wrap_PrismaticJoint.cpp
  793. src/modules/physics/box2d/wrap_PrismaticJoint.h
  794. src/modules/physics/box2d/wrap_PulleyJoint.cpp
  795. src/modules/physics/box2d/wrap_PulleyJoint.h
  796. src/modules/physics/box2d/wrap_RevoluteJoint.cpp
  797. src/modules/physics/box2d/wrap_RevoluteJoint.h
  798. src/modules/physics/box2d/wrap_RopeJoint.cpp
  799. src/modules/physics/box2d/wrap_RopeJoint.h
  800. src/modules/physics/box2d/wrap_Shape.cpp
  801. src/modules/physics/box2d/wrap_Shape.h
  802. src/modules/physics/box2d/wrap_WeldJoint.cpp
  803. src/modules/physics/box2d/wrap_WeldJoint.h
  804. src/modules/physics/box2d/wrap_WheelJoint.cpp
  805. src/modules/physics/box2d/wrap_WheelJoint.h
  806. src/modules/physics/box2d/wrap_World.cpp
  807. src/modules/physics/box2d/wrap_World.h
  808. )
  809. set(LOVE_SRC_MODULE_PHYSICS
  810. ${LOVE_SRC_MODULE_PHYSICS_ROOT}
  811. ${LOVE_SRC_MODULE_PHYSICS_BOX2D}
  812. )
  813. source_group("modules\\physics" FILES ${LOVE_SRC_MODULE_PHYSICS_ROOT})
  814. source_group("modules\\physics\\box2d" FILES ${LOVE_SRC_MODULE_PHYSICS_BOX2D})
  815. #
  816. # love.sound
  817. #
  818. set(LOVE_SRC_MODULE_SOUND_ROOT
  819. src/modules/sound/Decoder.cpp
  820. src/modules/sound/Decoder.h
  821. src/modules/sound/Sound.cpp
  822. src/modules/sound/Sound.h
  823. src/modules/sound/SoundData.cpp
  824. src/modules/sound/SoundData.h
  825. src/modules/sound/wrap_Decoder.cpp
  826. src/modules/sound/wrap_Decoder.h
  827. src/modules/sound/wrap_Sound.cpp
  828. src/modules/sound/wrap_Sound.h
  829. src/modules/sound/wrap_SoundData.cpp
  830. src/modules/sound/wrap_SoundData.h
  831. )
  832. set(LOVE_SRC_MODULE_SOUND_LULLABY
  833. src/modules/sound/lullaby/FLACDecoder.cpp
  834. src/modules/sound/lullaby/FLACDecoder.h
  835. src/modules/sound/lullaby/GmeDecoder.cpp
  836. src/modules/sound/lullaby/GmeDecoder.h
  837. src/modules/sound/lullaby/ModPlugDecoder.cpp
  838. src/modules/sound/lullaby/ModPlugDecoder.h
  839. src/modules/sound/lullaby/Sound.cpp
  840. src/modules/sound/lullaby/Sound.h
  841. src/modules/sound/lullaby/VorbisDecoder.cpp
  842. src/modules/sound/lullaby/VorbisDecoder.h
  843. src/modules/sound/lullaby/WaveDecoder.cpp
  844. src/modules/sound/lullaby/WaveDecoder.h
  845. )
  846. if(LOVE_MPG123)
  847. set(LOVE_SRC_MODULE_SOUND_LULLABY
  848. ${LOVE_SRC_MODULE_SOUND_LULLABY}
  849. src/modules/sound/lullaby/Mpg123Decoder.cpp
  850. src/modules/sound/lullaby/Mpg123Decoder.h
  851. )
  852. endif()
  853. set(LOVE_SRC_MODULE_SOUND
  854. ${LOVE_SRC_MODULE_SOUND_ROOT}
  855. ${LOVE_SRC_MODULE_SOUND_LULLABY}
  856. )
  857. source_group("modules\\sound" FILES ${LOVE_SRC_MODULE_SOUND_ROOT})
  858. source_group("modules\\sound\\lullaby" FILES ${LOVE_SRC_MODULE_SOUND_LULLABY})
  859. #
  860. # love.system
  861. #
  862. set(LOVE_SRC_MODULE_SYSTEM_ROOT
  863. src/modules/system/System.cpp
  864. src/modules/system/System.h
  865. src/modules/system/wrap_System.cpp
  866. src/modules/system/wrap_System.h
  867. )
  868. set(LOVE_SRC_MODULE_SYSTEM_SDL
  869. src/modules/system/sdl/System.cpp
  870. src/modules/system/sdl/System.h
  871. )
  872. set(LOVE_SRC_MODULE_SYSTEM
  873. ${LOVE_SRC_MODULE_SYSTEM_ROOT}
  874. ${LOVE_SRC_MODULE_SYSTEM_SDL}
  875. )
  876. source_group("modules\\system" FILES ${LOVE_SRC_MODULE_SYSTEM_ROOT})
  877. source_group("modules\\system\\sdl" FILES ${LOVE_SRC_MODULE_SYSTEM_SDL})
  878. #
  879. # love.thread
  880. #
  881. set(LOVE_SRC_MODULE_THREAD_ROOT
  882. src/modules/thread/Channel.cpp
  883. src/modules/thread/Channel.h
  884. src/modules/thread/LuaThread.cpp
  885. src/modules/thread/LuaThread.h
  886. src/modules/thread/Thread.h
  887. src/modules/thread/ThreadModule.cpp
  888. src/modules/thread/ThreadModule.h
  889. src/modules/thread/threads.cpp
  890. src/modules/thread/threads.h
  891. src/modules/thread/wrap_Channel.cpp
  892. src/modules/thread/wrap_Channel.h
  893. src/modules/thread/wrap_LuaThread.cpp
  894. src/modules/thread/wrap_LuaThread.h
  895. src/modules/thread/wrap_ThreadModule.cpp
  896. src/modules/thread/wrap_ThreadModule.h
  897. )
  898. set(LOVE_SRC_MODULE_THREAD_SDL
  899. src/modules/thread/sdl/Thread.cpp
  900. src/modules/thread/sdl/Thread.h
  901. src/modules/thread/sdl/threads.cpp
  902. src/modules/thread/sdl/threads.h
  903. )
  904. set(LOVE_SRC_MODULE_THREAD
  905. ${LOVE_SRC_MODULE_THREAD_ROOT}
  906. ${LOVE_SRC_MODULE_THREAD_SDL}
  907. )
  908. source_group("modules\\thread" FILES ${LOVE_SRC_MODULE_THREAD_ROOT})
  909. source_group("modules\\thread\\sdl" FILES ${LOVE_SRC_MODULE_THREAD_SDL})
  910. #
  911. # love.timer
  912. #
  913. set(LOVE_SRC_MODULE_TIMER
  914. src/modules/timer/Timer.cpp
  915. src/modules/timer/Timer.h
  916. src/modules/timer/wrap_Timer.cpp
  917. src/modules/timer/wrap_Timer.h
  918. )
  919. source_group("modules\\timer" FILES ${LOVE_SRC_MODULE_TIMER})
  920. #
  921. # love.touch
  922. #
  923. set(LOVE_SRC_MODULE_TOUCH_ROOT
  924. src/modules/touch/Touch.h
  925. src/modules/touch/wrap_Touch.cpp
  926. src/modules/touch/wrap_Touch.h
  927. )
  928. set(LOVE_SRC_MODULE_TOUCH_SDL
  929. src/modules/touch/sdl/Touch.cpp
  930. src/modules/touch/sdl/Touch.h
  931. )
  932. set(LOVE_SRC_MODULE_TOUCH
  933. ${LOVE_SRC_MODULE_TOUCH_ROOT}
  934. ${LOVE_SRC_MODULE_TOUCH_SDL}
  935. )
  936. source_group("modules\\touch" FILES ${LOVE_SRC_MODULE_TOUCH_ROOT})
  937. source_group("modules\\touch\\sdl" FILES ${LOVE_SRC_MODULE_TOUCH_SDL})
  938. #
  939. # love.video
  940. #
  941. set(LOVE_SRC_MODULE_VIDEO_ROOT
  942. src/modules/video/Video.h
  943. src/modules/video/VideoStream.cpp
  944. src/modules/video/VideoStream.h
  945. src/modules/video/wrap_Video.cpp
  946. src/modules/video/wrap_Video.h
  947. src/modules/video/wrap_VideoStream.cpp
  948. src/modules/video/wrap_VideoStream.h
  949. )
  950. set(LOVE_SRC_MODULE_VIDEO_THEORA
  951. src/modules/video/theora/Video.cpp
  952. src/modules/video/theora/Video.h
  953. src/modules/video/theora/OggDemuxer.cpp
  954. src/modules/video/theora/OggDemuxer.h
  955. src/modules/video/theora/TheoraVideoStream.cpp
  956. src/modules/video/theora/TheoraVideoStream.h
  957. )
  958. set(LOVE_SRC_MODULE_VIDEO
  959. ${LOVE_SRC_MODULE_VIDEO_ROOT}
  960. ${LOVE_SRC_MODULE_VIDEO_THEORA}
  961. )
  962. source_group("modules\\video" FILES ${LOVE_SRC_MODULE_VIDEO_ROOT})
  963. source_group("modules\\video\\theora" FILES ${LOVE_SRC_MODULE_VIDEO_THEORA})
  964. #
  965. # love.window
  966. #
  967. set(LOVE_SRC_MODULE_WINDOW_ROOT
  968. src/modules/window/Window.cpp
  969. src/modules/window/Window.h
  970. src/modules/window/wrap_Window.cpp
  971. src/modules/window/wrap_Window.h
  972. )
  973. set(LOVE_SRC_MODULE_WINDOW_SDL
  974. src/modules/window/sdl/Window.cpp
  975. src/modules/window/sdl/Window.h
  976. )
  977. set(LOVE_SRC_MODULE_WINDOW
  978. ${LOVE_SRC_MODULE_WINDOW_ROOT}
  979. ${LOVE_SRC_MODULE_WINDOW_SDL}
  980. )
  981. source_group("modules\\window" FILES ${LOVE_SRC_MODULE_WINDOW_ROOT})
  982. source_group("modules\\window\\sdl" FILES ${LOVE_SRC_MODULE_WINDOW_SDL})
  983. ###################################
  984. # Third-party libraries
  985. ###################################
  986. #
  987. # Box2D
  988. #
  989. set(LOVE_SRC_3P_BOX2D_ROOT
  990. src/libraries/Box2D/Box2D.h
  991. )
  992. set(LOVE_SRC_3P_BOX2D_COLLISION
  993. src/libraries/Box2D/Collision/b2BroadPhase.cpp
  994. src/libraries/Box2D/Collision/b2BroadPhase.h
  995. src/libraries/Box2D/Collision/b2CollideCircle.cpp
  996. src/libraries/Box2D/Collision/b2CollideEdge.cpp
  997. src/libraries/Box2D/Collision/b2CollidePolygon.cpp
  998. src/libraries/Box2D/Collision/b2Collision.cpp
  999. src/libraries/Box2D/Collision/b2Collision.h
  1000. src/libraries/Box2D/Collision/b2Distance.cpp
  1001. src/libraries/Box2D/Collision/b2Distance.h
  1002. src/libraries/Box2D/Collision/b2DynamicTree.cpp
  1003. src/libraries/Box2D/Collision/b2DynamicTree.h
  1004. src/libraries/Box2D/Collision/b2TimeOfImpact.cpp
  1005. src/libraries/Box2D/Collision/b2TimeOfImpact.h
  1006. )
  1007. set(LOVE_SRC_3P_BOX2D_COLLISION_SHAPES
  1008. src/libraries/Box2D/Collision/Shapes/b2ChainShape.cpp
  1009. src/libraries/Box2D/Collision/Shapes/b2ChainShape.h
  1010. src/libraries/Box2D/Collision/Shapes/b2CircleShape.cpp
  1011. src/libraries/Box2D/Collision/Shapes/b2CircleShape.h
  1012. src/libraries/Box2D/Collision/Shapes/b2EdgeShape.cpp
  1013. src/libraries/Box2D/Collision/Shapes/b2EdgeShape.h
  1014. src/libraries/Box2D/Collision/Shapes/b2PolygonShape.cpp
  1015. src/libraries/Box2D/Collision/Shapes/b2PolygonShape.h
  1016. src/libraries/Box2D/Collision/Shapes/b2Shape.h
  1017. )
  1018. set(LOVE_SRC_3P_BOX2D_COMMON
  1019. src/libraries/Box2D/Common/b2BlockAllocator.cpp
  1020. src/libraries/Box2D/Common/b2BlockAllocator.h
  1021. src/libraries/Box2D/Common/b2Draw.cpp
  1022. src/libraries/Box2D/Common/b2Draw.h
  1023. src/libraries/Box2D/Common/b2GrowableStack.h
  1024. src/libraries/Box2D/Common/b2Math.cpp
  1025. src/libraries/Box2D/Common/b2Math.h
  1026. src/libraries/Box2D/Common/b2Settings.cpp
  1027. src/libraries/Box2D/Common/b2Settings.h
  1028. src/libraries/Box2D/Common/b2StackAllocator.cpp
  1029. src/libraries/Box2D/Common/b2StackAllocator.h
  1030. src/libraries/Box2D/Common/b2Timer.cpp
  1031. src/libraries/Box2D/Common/b2Timer.h
  1032. )
  1033. set(LOVE_SRC_3P_BOX2D_DYNAMICS
  1034. src/libraries/Box2D/Dynamics/b2Body.cpp
  1035. src/libraries/Box2D/Dynamics/b2Body.h
  1036. src/libraries/Box2D/Dynamics/b2ContactManager.cpp
  1037. src/libraries/Box2D/Dynamics/b2ContactManager.h
  1038. src/libraries/Box2D/Dynamics/b2Fixture.cpp
  1039. src/libraries/Box2D/Dynamics/b2Fixture.h
  1040. src/libraries/Box2D/Dynamics/b2Island.cpp
  1041. src/libraries/Box2D/Dynamics/b2Island.h
  1042. src/libraries/Box2D/Dynamics/b2TimeStep.h
  1043. src/libraries/Box2D/Dynamics/b2World.cpp
  1044. src/libraries/Box2D/Dynamics/b2World.h
  1045. src/libraries/Box2D/Dynamics/b2WorldCallbacks.cpp
  1046. src/libraries/Box2D/Dynamics/b2WorldCallbacks.h
  1047. )
  1048. set(LOVE_SRC_3P_BOX2D_DYNAMICS_CONTACTS
  1049. src/libraries/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp
  1050. src/libraries/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h
  1051. src/libraries/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp
  1052. src/libraries/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h
  1053. src/libraries/Box2D/Dynamics/Contacts/b2CircleContact.cpp
  1054. src/libraries/Box2D/Dynamics/Contacts/b2CircleContact.h
  1055. src/libraries/Box2D/Dynamics/Contacts/b2Contact.cpp
  1056. src/libraries/Box2D/Dynamics/Contacts/b2Contact.h
  1057. src/libraries/Box2D/Dynamics/Contacts/b2ContactSolver.cpp
  1058. src/libraries/Box2D/Dynamics/Contacts/b2ContactSolver.h
  1059. src/libraries/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp
  1060. src/libraries/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h
  1061. src/libraries/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp
  1062. src/libraries/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h
  1063. src/libraries/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp
  1064. src/libraries/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h
  1065. src/libraries/Box2D/Dynamics/Contacts/b2PolygonContact.cpp
  1066. src/libraries/Box2D/Dynamics/Contacts/b2PolygonContact.h
  1067. )
  1068. set(LOVE_SRC_3P_BOX2D_DYNAMICS_JOINTS
  1069. src/libraries/Box2D/Dynamics/Joints/b2DistanceJoint.cpp
  1070. src/libraries/Box2D/Dynamics/Joints/b2DistanceJoint.h
  1071. src/libraries/Box2D/Dynamics/Joints/b2FrictionJoint.cpp
  1072. src/libraries/Box2D/Dynamics/Joints/b2FrictionJoint.h
  1073. src/libraries/Box2D/Dynamics/Joints/b2GearJoint.cpp
  1074. src/libraries/Box2D/Dynamics/Joints/b2GearJoint.h
  1075. src/libraries/Box2D/Dynamics/Joints/b2Joint.cpp
  1076. src/libraries/Box2D/Dynamics/Joints/b2Joint.h
  1077. src/libraries/Box2D/Dynamics/Joints/b2MotorJoint.cpp
  1078. src/libraries/Box2D/Dynamics/Joints/b2MotorJoint.h
  1079. src/libraries/Box2D/Dynamics/Joints/b2MouseJoint.cpp
  1080. src/libraries/Box2D/Dynamics/Joints/b2MouseJoint.h
  1081. src/libraries/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp
  1082. src/libraries/Box2D/Dynamics/Joints/b2PrismaticJoint.h
  1083. src/libraries/Box2D/Dynamics/Joints/b2PulleyJoint.cpp
  1084. src/libraries/Box2D/Dynamics/Joints/b2PulleyJoint.h
  1085. src/libraries/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp
  1086. src/libraries/Box2D/Dynamics/Joints/b2RevoluteJoint.h
  1087. src/libraries/Box2D/Dynamics/Joints/b2RopeJoint.cpp
  1088. src/libraries/Box2D/Dynamics/Joints/b2RopeJoint.h
  1089. src/libraries/Box2D/Dynamics/Joints/b2WeldJoint.cpp
  1090. src/libraries/Box2D/Dynamics/Joints/b2WeldJoint.h
  1091. src/libraries/Box2D/Dynamics/Joints/b2WheelJoint.cpp
  1092. src/libraries/Box2D/Dynamics/Joints/b2WheelJoint.h
  1093. )
  1094. set(LOVE_SRC_3P_BOX2D_ROPE
  1095. src/libraries/Box2D/Rope/b2Rope.cpp
  1096. src/libraries/Box2D/Rope/b2Rope.h
  1097. )
  1098. set(LOVE_SRC_3P_BOX2D
  1099. ${LOVE_SRC_3P_BOX2D_ROOT}
  1100. ${LOVE_SRC_3P_BOX2D_COLLISION}
  1101. ${LOVE_SRC_3P_BOX2D_COLLISION_SHAPES}
  1102. ${LOVE_SRC_3P_BOX2D_COMMON}
  1103. ${LOVE_SRC_3P_BOX2D_DYNAMICS}
  1104. ${LOVE_SRC_3P_BOX2D_DYNAMICS_CONTACTS}
  1105. ${LOVE_SRC_3P_BOX2D_DYNAMICS_JOINTS}
  1106. ${LOVE_SRC_3P_BOX2D_ROPE}
  1107. )
  1108. add_library(love_3p_box2d ${LOVE_SRC_3P_BOX2D})
  1109. #
  1110. # ddsparse
  1111. #
  1112. set(LOVE_SRC_3P_DDSPARSE
  1113. src/libraries/ddsparse/ddsinfo.h
  1114. src/libraries/ddsparse/ddsparse.cpp
  1115. src/libraries/ddsparse/ddsparse.h
  1116. )
  1117. add_library(love_3p_ddsparse ${LOVE_SRC_3P_DDSPARSE})
  1118. #
  1119. # dr_flac
  1120. #
  1121. set(LOVE_SRC_3P_DRFLAC
  1122. src/libraries/dr_flac/dr_flac.h
  1123. )
  1124. # dr_flac has no implementation files of its own.
  1125. #
  1126. # enet
  1127. #
  1128. set(LOVE_SRC_3P_ENET_ROOT
  1129. src/libraries/enet/enet.cpp
  1130. src/libraries/enet/lua-enet.h
  1131. )
  1132. set(LOVE_SRC_3P_ENET_LIBENET
  1133. src/libraries/enet/libenet/callbacks.c
  1134. src/libraries/enet/libenet/compress.c
  1135. src/libraries/enet/libenet/host.c
  1136. src/libraries/enet/libenet/list.c
  1137. src/libraries/enet/libenet/packet.c
  1138. src/libraries/enet/libenet/peer.c
  1139. src/libraries/enet/libenet/protocol.c
  1140. src/libraries/enet/libenet/unix.c
  1141. src/libraries/enet/libenet/win32.c
  1142. )
  1143. set(LOVE_SRC_3P_ENET_LIBENET_INCLUDE_ENET
  1144. src/libraries/enet/libenet/include/enet/enet.h
  1145. src/libraries/enet/libenet/include/enet/list.h
  1146. src/libraries/enet/libenet/include/enet/protocol.h
  1147. src/libraries/enet/libenet/include/enet/time.h
  1148. src/libraries/enet/libenet/include/enet/types.h
  1149. src/libraries/enet/libenet/include/enet/unix.h
  1150. src/libraries/enet/libenet/include/enet/utility.h
  1151. src/libraries/enet/libenet/include/enet/win32.h
  1152. )
  1153. set(LOVE_SRC_3P_ENET
  1154. ${LOVE_SRC_3P_ENET_ROOT}
  1155. ${LOVE_SRC_3P_ENET_LIBENET}
  1156. ${LOVE_SRC_3P_ENET_LIBENET_INCLUDE_ENET}
  1157. )
  1158. add_library(love_3p_enet ${LOVE_SRC_3P_ENET})
  1159. target_link_libraries(love_3p_enet ${LOVE_LUA_LIBRARY})
  1160. target_include_directories(love_3p_enet PUBLIC src/libraries/enet/libenet/include)
  1161. if(MINGW)
  1162. target_link_libraries(love_3p_enet winmm.a)
  1163. endif()
  1164. #
  1165. # GLAD
  1166. #
  1167. set(LOVE_SRC_3P_GLAD
  1168. src/libraries/glad/glad.cpp
  1169. src/libraries/glad/glad.hpp
  1170. src/libraries/glad/gladfuncs.hpp
  1171. )
  1172. add_library(love_3p_glad ${LOVE_SRC_3P_GLAD})
  1173. #
  1174. # glslang
  1175. #
  1176. set(LOVE_SRC_3P_GLSLANG_GLSLANG_GENERICCODEGEN
  1177. src/libraries/glslang/glslang/GenericCodeGen/CodeGen.cpp
  1178. src/libraries/glslang/glslang/GenericCodeGen/Link.cpp
  1179. )
  1180. set(LOVE_SRC_3P_GLSLANG_GLSLANG_INCLUDE
  1181. src/libraries/glslang/glslang/Include/arrays.h
  1182. src/libraries/glslang/glslang/Include/BaseTypes.h
  1183. src/libraries/glslang/glslang/Include/Common.h
  1184. src/libraries/glslang/glslang/Include/ConstantUnion.h
  1185. src/libraries/glslang/glslang/Include/InfoSink.h
  1186. src/libraries/glslang/glslang/Include/InitializeGlobals.h
  1187. src/libraries/glslang/glslang/Include/intermediate.h
  1188. src/libraries/glslang/glslang/Include/PoolAlloc.h
  1189. src/libraries/glslang/glslang/Include/ResourceLimits.h
  1190. src/libraries/glslang/glslang/Include/revision.h
  1191. src/libraries/glslang/glslang/Include/ShHandle.h
  1192. src/libraries/glslang/glslang/Include/Types.h
  1193. )
  1194. set(LOVE_SRC_3P_GLSLANG_GLSLANG_MACHINEINDEPENDENT_PREPROCESSOR
  1195. src/libraries/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp
  1196. src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp
  1197. src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp
  1198. src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpContext.h
  1199. src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp
  1200. src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp
  1201. src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpTokens.h
  1202. )
  1203. set(LOVE_SRC_3P_GLSLANG_GLSLANG_MACHINEINDEPENDENT
  1204. ${LOVE_SRC_3P_GLSLANG_GLSLANG_MACHINEINDEPENDENT_PREPROCESSOR}
  1205. src/libraries/glslang/glslang/MachineIndependent/attribute.cpp
  1206. src/libraries/glslang/glslang/MachineIndependent/attribute.h
  1207. src/libraries/glslang/glslang/MachineIndependent/Constant.cpp
  1208. src/libraries/glslang/glslang/MachineIndependent/gl_types.h
  1209. src/libraries/glslang/glslang/MachineIndependent/glslang_tab.cpp
  1210. src/libraries/glslang/glslang/MachineIndependent/glslang_tab.cpp.h
  1211. src/libraries/glslang/glslang/MachineIndependent/InfoSink.cpp
  1212. src/libraries/glslang/glslang/MachineIndependent/Initialize.cpp
  1213. src/libraries/glslang/glslang/MachineIndependent/Initialize.h
  1214. src/libraries/glslang/glslang/MachineIndependent/Intermediate.cpp
  1215. src/libraries/glslang/glslang/MachineIndependent/intermOut.cpp
  1216. src/libraries/glslang/glslang/MachineIndependent/IntermTraverse.cpp
  1217. src/libraries/glslang/glslang/MachineIndependent/iomapper.cpp
  1218. src/libraries/glslang/glslang/MachineIndependent/iomapper.h
  1219. src/libraries/glslang/glslang/MachineIndependent/limits.cpp
  1220. src/libraries/glslang/glslang/MachineIndependent/linkValidate.cpp
  1221. src/libraries/glslang/glslang/MachineIndependent/LiveTraverser.h
  1222. src/libraries/glslang/glslang/MachineIndependent/localintermediate.h
  1223. src/libraries/glslang/glslang/MachineIndependent/parseConst.cpp
  1224. src/libraries/glslang/glslang/MachineIndependent/ParseContextBase.cpp
  1225. src/libraries/glslang/glslang/MachineIndependent/ParseHelper.cpp
  1226. src/libraries/glslang/glslang/MachineIndependent/ParseHelper.h
  1227. src/libraries/glslang/glslang/MachineIndependent/parseVersions.h
  1228. src/libraries/glslang/glslang/MachineIndependent/pch.cpp
  1229. src/libraries/glslang/glslang/MachineIndependent/pch.h
  1230. src/libraries/glslang/glslang/MachineIndependent/PoolAlloc.cpp
  1231. src/libraries/glslang/glslang/MachineIndependent/propagateNoContraction.cpp
  1232. src/libraries/glslang/glslang/MachineIndependent/propagateNoContraction.h
  1233. src/libraries/glslang/glslang/MachineIndependent/reflection.cpp
  1234. src/libraries/glslang/glslang/MachineIndependent/reflection.h
  1235. src/libraries/glslang/glslang/MachineIndependent/RemoveTree.cpp
  1236. src/libraries/glslang/glslang/MachineIndependent/RemoveTree.h
  1237. src/libraries/glslang/glslang/MachineIndependent/Scan.cpp
  1238. src/libraries/glslang/glslang/MachineIndependent/Scan.h
  1239. src/libraries/glslang/glslang/MachineIndependent/ScanContext.h
  1240. src/libraries/glslang/glslang/MachineIndependent/ShaderLang.cpp
  1241. src/libraries/glslang/glslang/MachineIndependent/SymbolTable.cpp
  1242. src/libraries/glslang/glslang/MachineIndependent/SymbolTable.h
  1243. src/libraries/glslang/glslang/MachineIndependent/Versions.cpp
  1244. src/libraries/glslang/glslang/MachineIndependent/Versions.h
  1245. )
  1246. set(LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT
  1247. src/libraries/glslang/glslang/OSDependent/osinclude.h
  1248. )
  1249. if(MSVC OR MINGW)
  1250. set(LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT
  1251. ${LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT}
  1252. src/libraries/glslang/glslang/OSDependent/Windows/main.cpp
  1253. src/libraries/glslang/glslang/OSDependent/Windows/ossource.cpp
  1254. )
  1255. else()
  1256. set(LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT
  1257. ${LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT}
  1258. src/libraries/glslang/glslang/OSDependent/Unix/ossource.cpp
  1259. )
  1260. endif()
  1261. set(LOVE_SRC_3P_GLSLANG_GLSLANG_PUBLIC
  1262. src/libraries/glslang/glslang/Public/ShaderLang.h
  1263. )
  1264. set(LOVE_SRC_3P_GLSLANG_GLSLANG
  1265. ${LOVE_SRC_3P_GLSLANG_GLSLANG_GENERICCODEGEN}
  1266. ${LOVE_SRC_3P_GLSLANG_GLSLANG_INCLUDE}
  1267. ${LOVE_SRC_3P_GLSLANG_GLSLANG_MACHINEINDEPENDENT}
  1268. ${LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT}
  1269. ${LOVE_SRC_3P_GLSLANG_GLSLANG_PUBLIC}
  1270. )
  1271. set(LOVE_SRC_3P_GLSLANG_OGLCOMPILERSDLL
  1272. src/libraries/glslang/OGLCompilersDLL/InitializeDll.cpp
  1273. src/libraries/glslang/OGLCompilersDLL/InitializeDll.h
  1274. )
  1275. set(LOVE_SRC_3P_GLSLANG
  1276. ${LOVE_SRC_3P_GLSLANG_GLSLANG}
  1277. ${LOVE_SRC_3P_GLSLANG_OGLCOMPILERSDLL}
  1278. )
  1279. add_library(love_3p_glslang ${LOVE_SRC_3P_GLSLANG})
  1280. #
  1281. # LodePNG
  1282. #
  1283. set(LOVE_SRC_3P_LODEPNG
  1284. src/libraries/lodepng/lodepng.cpp
  1285. src/libraries/lodepng/lodepng.h
  1286. )
  1287. add_library(love_3p_lodepng ${LOVE_SRC_3P_LODEPNG})
  1288. #
  1289. # luasocket
  1290. #
  1291. set(LOVE_SRC_3P_LUASOCKET_ROOT
  1292. src/libraries/luasocket/luasocket.cpp
  1293. src/libraries/luasocket/luasocket.h
  1294. )
  1295. set(LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET
  1296. src/libraries/luasocket/libluasocket/auxiliar.c
  1297. src/libraries/luasocket/libluasocket/auxiliar.h
  1298. src/libraries/luasocket/libluasocket/buffer.c
  1299. src/libraries/luasocket/libluasocket/buffer.h
  1300. src/libraries/luasocket/libluasocket/compat.c
  1301. src/libraries/luasocket/libluasocket/compat.h
  1302. src/libraries/luasocket/libluasocket/except.c
  1303. src/libraries/luasocket/libluasocket/except.h
  1304. src/libraries/luasocket/libluasocket/ftp.lua.h
  1305. src/libraries/luasocket/libluasocket/headers.lua.h
  1306. src/libraries/luasocket/libluasocket/http.lua.h
  1307. src/libraries/luasocket/libluasocket/inet.c
  1308. src/libraries/luasocket/libluasocket/inet.h
  1309. src/libraries/luasocket/libluasocket/io.c
  1310. src/libraries/luasocket/libluasocket/io.h
  1311. src/libraries/luasocket/libluasocket/ltn12.lua.h
  1312. src/libraries/luasocket/libluasocket/luasocket.c
  1313. src/libraries/luasocket/libluasocket/luasocket.h
  1314. src/libraries/luasocket/libluasocket/mbox.lua.h
  1315. src/libraries/luasocket/libluasocket/mime.c
  1316. src/libraries/luasocket/libluasocket/mime.h
  1317. src/libraries/luasocket/libluasocket/mime.lua.h
  1318. src/libraries/luasocket/libluasocket/options.c
  1319. src/libraries/luasocket/libluasocket/options.h
  1320. src/libraries/luasocket/libluasocket/pierror.h
  1321. src/libraries/luasocket/libluasocket/select.c
  1322. src/libraries/luasocket/libluasocket/select.h
  1323. src/libraries/luasocket/libluasocket/smtp.lua.h
  1324. src/libraries/luasocket/libluasocket/socket.h
  1325. src/libraries/luasocket/libluasocket/socket.lua.h
  1326. src/libraries/luasocket/libluasocket/tcp.c
  1327. src/libraries/luasocket/libluasocket/tcp.h
  1328. src/libraries/luasocket/libluasocket/timeout.c
  1329. src/libraries/luasocket/libluasocket/timeout.h
  1330. src/libraries/luasocket/libluasocket/tp.lua.h
  1331. src/libraries/luasocket/libluasocket/udp.c
  1332. src/libraries/luasocket/libluasocket/udp.h
  1333. src/libraries/luasocket/libluasocket/url.lua.h
  1334. )
  1335. set(LOVE_LINK_L3P_LUASOCKET_LIBLUASOCKET)
  1336. if(MINGW)
  1337. set(WIN32_LIB_EXT .a)
  1338. else()
  1339. set(WIN32_LIB_EXT .lib)
  1340. endif()
  1341. if(MSVC OR MINGW)
  1342. set(LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET
  1343. ${LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET}
  1344. src/libraries/luasocket/libluasocket/wsocket.c
  1345. src/libraries/luasocket/libluasocket/wsocket.h
  1346. )
  1347. set(LOVE_LINK_L3P_LUASOCKET_LIBLUASOCKET
  1348. ${LOVE_LINK_L3P_LUASOCKET_LIBLUASOCKET}
  1349. ws2_32${WIN32_LIB_EXT}
  1350. )
  1351. else()
  1352. set(LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET
  1353. ${LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET}
  1354. src/libraries/luasocket/libluasocket/serial.c
  1355. src/libraries/luasocket/libluasocket/unix.c
  1356. src/libraries/luasocket/libluasocket/unix.h
  1357. src/libraries/luasocket/libluasocket/unixtcp.c
  1358. src/libraries/luasocket/libluasocket/unixtcp.h
  1359. src/libraries/luasocket/libluasocket/unixudp.c
  1360. src/libraries/luasocket/libluasocket/unixudp.h
  1361. src/libraries/luasocket/libluasocket/usocket.c
  1362. src/libraries/luasocket/libluasocket/usocket.h
  1363. )
  1364. endif()
  1365. set(LOVE_SRC_3P_LUASOCKET
  1366. ${LOVE_SRC_3P_LUASOCKET_ROOT}
  1367. ${LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET}
  1368. )
  1369. add_library(love_3p_luasocket ${LOVE_SRC_3P_LUASOCKET})
  1370. target_link_libraries(love_3p_luasocket ${LOVE_LUA_LIBRARY} ${LOVE_LINK_L3P_LUASOCKET_LIBLUASOCKET})
  1371. #
  1372. # APIs from Lua 5.3
  1373. #
  1374. set(LOVE_SRC_3P_LUA53
  1375. src/libraries/lua53/lprefix.h
  1376. src/libraries/lua53/lstrlib.c
  1377. src/libraries/lua53/lstrlib.h
  1378. src/libraries/lua53/lutf8lib.c
  1379. src/libraries/lua53/lutf8lib.h
  1380. )
  1381. add_library(love_3p_lua53 ${LOVE_SRC_3P_LUA53})
  1382. target_link_libraries(love_3p_lua53 ${LOVE_LUA_LIBRARY})
  1383. #
  1384. # lz4
  1385. #
  1386. set(LOVE_SRC_3P_LZ4
  1387. src/libraries/lz4/lz4.c
  1388. src/libraries/lz4/lz4.h
  1389. src/libraries/lz4/lz4hc.c
  1390. src/libraries/lz4/lz4hc.h
  1391. src/libraries/lz4/lz4opt.h
  1392. )
  1393. add_library(love_3p_lz4 ${LOVE_SRC_3P_LZ4})
  1394. #
  1395. # noise1234
  1396. #
  1397. set(LOVE_SRC_3P_NOISE1234
  1398. src/libraries/noise1234/noise1234.cpp
  1399. src/libraries/noise1234/noise1234.h
  1400. src/libraries/noise1234/simplexnoise1234.cpp
  1401. src/libraries/noise1234/simplexnoise1234.h
  1402. )
  1403. add_library(love_3p_noise1234 ${LOVE_SRC_3P_NOISE1234})
  1404. #
  1405. # physfs
  1406. #
  1407. set(LOVE_SRC_3P_PHYSFS
  1408. src/libraries/physfs/physfs_archiver_7z.c
  1409. src/libraries/physfs/physfs_archiver_dir.c
  1410. src/libraries/physfs/physfs_archiver_grp.c
  1411. src/libraries/physfs/physfs_archiver_hog.c
  1412. src/libraries/physfs/physfs_archiver_iso9660.c
  1413. src/libraries/physfs/physfs_archiver_mvl.c
  1414. src/libraries/physfs/physfs_archiver_qpak.c
  1415. src/libraries/physfs/physfs_archiver_slb.c
  1416. src/libraries/physfs/physfs_archiver_unpacked.c
  1417. src/libraries/physfs/physfs_archiver_vdf.c
  1418. src/libraries/physfs/physfs_archiver_wad.c
  1419. src/libraries/physfs/physfs_archiver_zip.c
  1420. src/libraries/physfs/physfs_byteorder.c
  1421. src/libraries/physfs/physfs_casefolding.h
  1422. src/libraries/physfs/physfs_internal.h
  1423. src/libraries/physfs/physfs_lzmasdk.h
  1424. src/libraries/physfs/physfs_miniz.h
  1425. src/libraries/physfs/physfs_platform_haiku.cpp
  1426. src/libraries/physfs/physfs_platform_os2.c
  1427. src/libraries/physfs/physfs_platform_posix.c
  1428. src/libraries/physfs/physfs_platform_qnx.c
  1429. src/libraries/physfs/physfs_platform_unix.c
  1430. src/libraries/physfs/physfs_platform_windows.c
  1431. src/libraries/physfs/physfs_platform_winrt.cpp
  1432. src/libraries/physfs/physfs_platforms.h
  1433. src/libraries/physfs/physfs_unicode.c
  1434. src/libraries/physfs/physfs.c
  1435. src/libraries/physfs/physfs.h
  1436. )
  1437. if(APPLE)
  1438. set(LOVE_SRC_3P_PHYSFS ${LOVE_SRC_3P_PHYSFS}
  1439. src/libraries/physfs/physfs_platform_apple.m
  1440. )
  1441. set(LOVE_LINK_LIBRARIES ${LOVE_LINK_LIBRARIES} "-framework IOKit")
  1442. endif()
  1443. add_library(love_3p_physfs ${LOVE_SRC_3P_PHYSFS})
  1444. #
  1445. # stb_image
  1446. #
  1447. set(LOVE_SRC_3P_STB
  1448. src/libraries/stb/stb_image.h
  1449. )
  1450. # stb_image has no implementation files of its own.
  1451. #
  1452. # tiny exr
  1453. #
  1454. set(LOVE_SRC_3P_TINYEXR
  1455. src/libraries/tinyexr/tinyexr.h
  1456. )
  1457. # tinyexr has no implementation files of its own.
  1458. #
  1459. # utf8
  1460. #
  1461. set(LOVE_SRC_3P_UTF8_ROOT src/libraries/utf8/utf8.h)
  1462. set(LOVE_SRC_3P_UTF8_UTF8
  1463. src/libraries/utf8/utf8/checked.h
  1464. src/libraries/utf8/utf8/core.h
  1465. src/libraries/utf8/utf8/unchecked.h
  1466. )
  1467. set(LOVE_SRC_3P_UTF8
  1468. ${LOVE_SRC_3P_UTF8_ROOT}
  1469. ${LOVE_SRC_3P_UTF8_UTF8}
  1470. )
  1471. # This library is all headers ... so there is no need to
  1472. # add_library() here.
  1473. #
  1474. # Wuff
  1475. #
  1476. set(LOVE_SRC_3P_WUFF
  1477. src/libraries/Wuff/wuff.c
  1478. src/libraries/Wuff/wuff.h
  1479. src/libraries/Wuff/wuff_config.h
  1480. src/libraries/Wuff/wuff_convert.c
  1481. src/libraries/Wuff/wuff_convert.h
  1482. src/libraries/Wuff/wuff_internal.c
  1483. src/libraries/Wuff/wuff_internal.h
  1484. src/libraries/Wuff/wuff_memory.c
  1485. )
  1486. add_library(love_3p_wuff ${LOVE_SRC_3P_WUFF})
  1487. #
  1488. # xxHash
  1489. #
  1490. set(LOVE_SRC_3P_XXHASH
  1491. src/libraries/xxHash/xxhash.c
  1492. src/libraries/xxHash/xxhash.h
  1493. )
  1494. add_library(love_3p_xxhash ${LOVE_SRC_3P_XXHASH})
  1495. set(LOVE_3P
  1496. love_3p_box2d
  1497. love_3p_ddsparse
  1498. love_3p_enet
  1499. love_3p_glad
  1500. love_3p_glslang
  1501. love_3p_lodepng
  1502. love_3p_luasocket
  1503. love_3p_lua53
  1504. love_3p_lz4
  1505. love_3p_noise1234
  1506. love_3p_physfs
  1507. love_3p_wuff
  1508. love_3p_xxhash
  1509. )
  1510. love_disable_warnings(love_3p_box2d love_3p_enet love_3p_luasocket love_3p_physfs)
  1511. #
  1512. # liblove
  1513. #
  1514. set(LOVE_LIB_SRC
  1515. ${LOVE_SRC_COMMON}
  1516. # Modules
  1517. ${LOVE_SRC_MODULE_AUDIO}
  1518. ${LOVE_SRC_MODULE_DATA}
  1519. ${LOVE_SRC_MODULE_EVENT}
  1520. ${LOVE_SRC_MODULE_FILESYSTEM}
  1521. ${LOVE_SRC_MODULE_FONT}
  1522. ${LOVE_SRC_MODULE_GRAPHICS}
  1523. ${LOVE_SRC_MODULE_IMAGE}
  1524. ${LOVE_SRC_MODULE_JOYSTICK}
  1525. ${LOVE_SRC_MODULE_KEYBOARD}
  1526. ${LOVE_SRC_MODULE_LOVE}
  1527. ${LOVE_SRC_MODULE_MATH}
  1528. ${LOVE_SRC_MODULE_MOUSE}
  1529. ${LOVE_SRC_MODULE_PHYSICS}
  1530. ${LOVE_SRC_MODULE_SOUND}
  1531. ${LOVE_SRC_MODULE_SYSTEM}
  1532. ${LOVE_SRC_MODULE_THREAD}
  1533. ${LOVE_SRC_MODULE_TIMER}
  1534. ${LOVE_SRC_MODULE_TOUCH}
  1535. ${LOVE_SRC_MODULE_VIDEO}
  1536. ${LOVE_SRC_MODULE_WINDOW}
  1537. )
  1538. include_directories(
  1539. BEFORE
  1540. src
  1541. src/libraries
  1542. src/modules
  1543. ${LOVE_INCLUDE_DIRS}
  1544. )
  1545. link_directories(${LOVE_LINK_DIRS})
  1546. set(LOVE_RC)
  1547. if(MSVC OR MINGW)
  1548. set(LOVE_LINK_LIBRARIES ${LOVE_LINK_LIBRARIES}
  1549. ws2_32${WIN32_LIB_EXT}
  1550. winmm${WIN32_LIB_EXT}
  1551. dwmapi${WIN32_LIB_EXT}
  1552. )
  1553. set(LOVE_RC
  1554. extra/windows/love.rc
  1555. extra/windows/love.ico
  1556. )
  1557. if(MINGW)
  1558. # UTF-16 flags passed to windres. windres invokes gcc as preprocessor
  1559. # -> gcc outputs utf8, so windres must read-in codepage 65001 (utf8)
  1560. set(CMAKE_RC_FLAGS ${CMAKE_RC_FLAGS} "-c 65001 --preprocessor-arg=-finput-charset=UTF-16LE")
  1561. endif()
  1562. endif()
  1563. add_library(${LOVE_LIB_NAME} SHARED ${LOVE_LIB_SRC} ${LOVE_RC})
  1564. set_target_properties(${LOVE_LIB_NAME} PROPERTIES C_VISIBILITY_PRESET hidden CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN ON)
  1565. target_link_libraries(${LOVE_LIB_NAME} ${LOVE_LINK_LIBRARIES} ${LOVE_3P})
  1566. if(LOVE_EXTRA_DEPENDECIES)
  1567. add_dependencies(${LOVE_LIB_NAME} ${LOVE_EXTRA_DEPENDECIES})
  1568. endif()
  1569. if(MSVC)
  1570. set_target_properties(${LOVE_LIB_NAME} PROPERTIES RELEASE_OUTPUT_NAME "love" PDB_NAME "liblove" IMPORT_PREFIX "lib")
  1571. set_target_properties(${LOVE_LIB_NAME} PROPERTIES DEBUG_OUTPUT_NAME "love" PDB_NAME "liblove" IMPORT_PREFIX "lib")
  1572. endif()
  1573. #
  1574. # love (executable)
  1575. #
  1576. add_executable(${LOVE_EXE_NAME} WIN32 src/love.cpp ${LOVE_RC})
  1577. target_link_libraries(${LOVE_EXE_NAME} ${LOVE_LIB_NAME})
  1578. set_target_properties(${LOVE_EXE_NAME} PROPERTIES C_VISIBILITY_PRESET hidden CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN ON)
  1579. if(MSVC OR MINGW)
  1580. add_executable(${LOVE_CONSOLE_EXE_NAME} src/love.cpp ${LOVE_RC})
  1581. target_link_libraries(${LOVE_CONSOLE_EXE_NAME} ${LOVE_LIB_NAME})
  1582. endif()
  1583. function(post_step_move_dll ARG_POST_TARGET ARG_TARGET_OR_FILE)
  1584. if(TARGET ${ARG_TARGET_OR_FILE})
  1585. add_custom_command(TARGET ${ARG_POST_TARGET} POST_BUILD
  1586. COMMAND ${CMAKE_COMMAND} -E copy
  1587. $<TARGET_FILE:${ARG_TARGET_OR_FILE}>
  1588. ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/$<TARGET_FILE_NAME:${ARG_TARGET_OR_FILE}>)
  1589. else()
  1590. get_filename_component(TEMP_FILENAME ${ARG_TARGET_OR_FILE} NAME)
  1591. add_custom_command(TARGET ${ARG_POST_TARGET} POST_BUILD
  1592. COMMAND ${CMAKE_COMMAND} -E copy
  1593. ${ARG_TARGET_OR_FILE}
  1594. ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/${TEMP_FILENAME})
  1595. endif()
  1596. endfunction()
  1597. # Add post build steps to move the DLLs next to the binary. Otherwise
  1598. # running/debugging the binary will not work from inside VS.
  1599. if(LOVE_MOVE_DLLS)
  1600. foreach(DLL ${LOVE_MOVE_DLLS})
  1601. post_step_move_dll(love ${DLL})
  1602. endforeach()
  1603. endif()
  1604. if (NOT MSVC OR MINGW)
  1605. return()
  1606. endif()
  1607. ###################################
  1608. # Version
  1609. ###################################
  1610. # Extract version.h contents.
  1611. file(READ ${CMAKE_CURRENT_SOURCE_DIR}/src/common/version.h LOVE_VERSION_FILE_CONTENTS)
  1612. # Extract one of LOVE_VERSION_MAJOR/MINOR/REV.
  1613. function(match_version ARG_STRING OUT_VAR)
  1614. string(REGEX MATCH "VERSION_${ARG_STRING} = ([0-9]+);" TMP_VER "${LOVE_VERSION_FILE_CONTENTS}")
  1615. string(REGEX MATCH "[0-9]+" TMP_VER "${TMP_VER}")
  1616. set(${OUT_VAR} ${TMP_VER} PARENT_SCOPE)
  1617. endfunction()
  1618. match_version("MAJOR" LOVE_VERSION_MAJOR)
  1619. match_version("MINOR" LOVE_VERSION_MINOR)
  1620. match_version("REV" LOVE_VERSION_REV)
  1621. set(LOVE_VERSION_STR "${LOVE_VERSION_MAJOR}.${LOVE_VERSION_MINOR}")
  1622. message(STATUS "Version: ${LOVE_VERSION_STR}")
  1623. ###################################
  1624. # CPack
  1625. ###################################
  1626. install(TARGETS ${LOVE_EXE_NAME} ${LOVE_CONSOLE_EXE_NAME} ${LOVE_LIB_NAME} RUNTIME DESTINATION .)
  1627. # Extra DLLs.
  1628. if(LOVE_EXTRA_DLLS)
  1629. foreach(DLL ${LOVE_EXTRA_DLLS})
  1630. get_filename_component(DLL_NAME ${DLL} NAME)
  1631. message(STATUS "Extra DLL: ${DLL_NAME}")
  1632. endforeach()
  1633. install(FILES ${LOVE_EXTRA_DLLS} DESTINATION .)
  1634. endif()
  1635. # Dynamic runtime libs.
  1636. if(LOVE_MSVC_DLLS)
  1637. foreach(DLL ${LOVE_MSVC_DLLS})
  1638. get_filename_component(DLL_NAME ${DLL} NAME)
  1639. message(STATUS "Runtime DLL: ${DLL_NAME}")
  1640. endforeach()
  1641. install(FILES ${LOVE_MSVC_DLLS} DESTINATION .)
  1642. endif()
  1643. # Copy a text file from CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_BINARY_DIR.
  1644. # On Windows, this function will convert line endings to CR,LF.
  1645. function(copy_text_file ARG_FILE_IN ARG_FILE_OUT)
  1646. file(READ ${CMAKE_CURRENT_SOURCE_DIR}/${ARG_FILE_IN} TMP_TXT_CONTENTS)
  1647. file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${ARG_FILE_OUT} ${TMP_TXT_CONTENTS})
  1648. endfunction()
  1649. # Text files.
  1650. copy_text_file(readme.md readme.txt)
  1651. copy_text_file(license.txt license.txt)
  1652. copy_text_file(changes.txt changes.txt)
  1653. install(FILES
  1654. ${CMAKE_CURRENT_BINARY_DIR}/changes.txt
  1655. ${CMAKE_CURRENT_BINARY_DIR}/license.txt
  1656. ${CMAKE_CURRENT_BINARY_DIR}/readme.txt
  1657. DESTINATION .)
  1658. # Icons
  1659. install(FILES
  1660. ${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis/love.ico
  1661. ${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis/game.ico
  1662. DESTINATION .)
  1663. set(CPACK_GENERATOR ZIP NSIS)
  1664. set(CPACK_PACKAGE_NAME "love")
  1665. set(CPACK_PACKAGE_VENDOR "love2d.org")
  1666. set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LOVE -- It's awesome")
  1667. set(CPACK_PACKAGE_VERSION "${LOVE_VERSION_STR}")
  1668. set(CPACK_PACKAGE_VERSION_MAJOR "${LOVE_VERSION_MAJOR}")
  1669. set(CPACK_PACKAGE_VERSION_MINOR "${LOVE_VERSION_MINOR}")
  1670. set(CPACK_PACKAGE_VERSION_PATCH "${LOVE_VERSION_REV}")
  1671. set(CPACK_PACKAGE_INSTALL_DIRECTORY "LOVE")
  1672. set(CPACK_PACKAGE_EXECUTABLES "${LOVE_EXE_NAME};LOVE")
  1673. set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/readme.md")
  1674. set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/license.txt")
  1675. set(CPACK_NSIS_EXECUTABLES_DIRECTORY .)
  1676. set(CPACK_NSIS_PACKAGE_NAME "LOVE")
  1677. set(CPACK_NSIS_DISPLAY_NAME "LOVE ${LOVE_VERSION_STR}")
  1678. set(CPACK_NSIS_MODIFY_PATH OFF)
  1679. if(LOVE_X64)
  1680. set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
  1681. else()
  1682. set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
  1683. endif()
  1684. set(CPACK_NSIS_MENU_LINKS "http://love2d.org/wiki" "Documentation")
  1685. # Some bug somewhere in NSIS requires "\\\\" somewhere in the path,
  1686. # according to The Internet. (And sure enough, it does not work
  1687. # without it).
  1688. set(NSIS_LEFT_BMP "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\left.bmp")
  1689. set(NSIS_TOP_BMP "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\top.bmp")
  1690. set(NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
  1691. set(NSIS_MUI_UNICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
  1692. set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "
  1693. !define MUI_WELCOMEPAGE_TITLE \\\"LOVE ${LOVE_VERSION_STR} Setup\\\"
  1694. !define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${NSIS_LEFT_BMP}\\\"
  1695. !define MUI_HEADERIMAGE_BITMAP \\\"${NSIS_TOP_BMP}\\\"
  1696. !define MUI_ICON \\\"${NSIS_MUI_ICON}\\\"
  1697. !define MUI_UNICON \\\"${NSIS_MUI_UNICON}\\\"
  1698. ")
  1699. set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
  1700. WriteRegStr HKCR \\\".love\\\" \\\"\\\" \\\"LOVE\\\"
  1701. WriteRegStr HKCR \\\"LOVE\\\" \\\"\\\" \\\"LOVE Game File\\\"
  1702. WriteRegStr HKCR \\\"LOVE\\\\DefaultIcon\\\" \\\"\\\" \\\"$INSTDIR\\\\game.ico\\\"
  1703. WriteRegStr HKCR \\\"LOVE\\\\shell\\\" \\\"\\\" \\\"open\\\"
  1704. WriteRegStr HKCR \\\"LOVE\\\\shell\\\\open\\\" \\\"\\\" \\\"Open in LOVE\\\"
  1705. WriteRegStr HKCR \\\"LOVE\\\\shell\\\\open\\\\command\\\" \\\"\\\" \\\"$INSTDIR\\\\love.exe $\\\\\\\"%1$\\\\\\\"\\\"
  1706. System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
  1707. ")
  1708. set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
  1709. DeleteRegKey HKCR \\\"LOVE\\\"
  1710. DeleteRegKey HKCR \\\".love\\\"
  1711. System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
  1712. ")
  1713. include(CPack)