CMakeLists.txt 57 KB

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