CMakeLists.txt 58 KB

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