| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187 |
- #
- # Copyright (c) 2006-2024 LOVE Development Team
- #
- # This software is provided 'as-is', without any express or implied
- # warranty. In no event will the authors be held liable for any damages
- # arising from the use of this software.
- #
- # Permission is granted to anyone to use this software for any purpose,
- # including commercial applications, and to alter it and redistribute it
- # freely, subject to the following restrictions:
- #
- # 1. The origin of this software must not be misrepresented; you must not
- # claim that you wrote the original software. If you use this software
- # in a product, an acknowledgment in the product documentation would be
- # appreciated but is not required.
- # 2. Altered source versions must be plainly marked as such, and must not be
- # misrepresented as being the original software.
- # 3. This notice may not be removed or altered from any source distribution.
- #
- if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
- # Protip: run cmake like this: cmake -G "<generator>" -H. -Bbuild
- message(FATAL_ERROR "Prevented in-tree build.")
- endif()
- cmake_minimum_required(VERSION 3.16)
- project(love)
- set(CMAKE_MODULE_PATH "${love_SOURCE_DIR}/extra/cmake" ${CMAKE_MODULE_PATH})
- set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) # Needed for shared libs on Linux. (-fPIC).
- set(CMAKE_CXX_STANDARD 17)
- set_property(GLOBAL PROPERTY USE_FOLDERS ON) # Allow grouping projects in Visual Studio
- if(APPLE)
- message(WARNING "CMake is not an officially supported build system for love on Apple platforms.")
- message(WARNING "Use the prebuilt .app or the xcode project in platform/xcode/ instead.")
- endif()
- if(MINGW)
- message(WARNING "MinGW is not an officially supported build system for love.")
- message(WARNING "Use megasource with Visual Studio instead.")
- message(WARNING "Please see https://github.com/love2d/megasource")
- endif()
- include(LoveMacros)
- # Extract version.h contents.
- file(READ ${CMAKE_CURRENT_SOURCE_DIR}/src/common/version.h LOVE_VERSION_FILE_CONTENTS)
- # Extract one of LOVE_VERSION_MAJOR/MINOR/REV.
- function(match_version ARG_STRING OUT_VAR)
- string(REGEX MATCH "VERSION_${ARG_STRING} = ([0-9]+);" TMP_VER "${LOVE_VERSION_FILE_CONTENTS}")
- string(REGEX MATCH "[0-9]+" TMP_VER "${TMP_VER}")
- set(${OUT_VAR} ${TMP_VER} PARENT_SCOPE)
- endfunction()
- match_version("MAJOR" LOVE_VERSION_MAJOR)
- match_version("MINOR" LOVE_VERSION_MINOR)
- match_version("REV" LOVE_VERSION_REV)
- set(LOVE_VERSION_STR "${LOVE_VERSION_MAJOR}.${LOVE_VERSION_MINOR}")
- message(STATUS "Version: ${LOVE_VERSION_STR}")
- set(LOVE_EXE_NAME love CACHE STRING "The name of the executable, usually 'love'")
- set(LOVE_DEFAULT_LIB_NAME liblove)
- if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
- set(LOVE_DEFAULT_LIB_NAME "${LOVE_EXE_NAME}-${LOVE_VERSION_STR}")
- endif()
- set(LOVE_LIB_NAME ${LOVE_DEFAULT_LIB_NAME} CACHE STRING "The name of the lua library, usually 'liblove' or 'love'")
- set(LOVE_CONSOLE_EXE_NAME "${LOVE_EXE_NAME}c" CACHE STRING "The name of the console version of the executable, usually 'lovec'")
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(LOVE_X64 TRUE)
- set(LOVE_TARGET_PLATFORM x64)
- else()
- set(LOVE_X86 TRUE)
- set(LOVE_TARGET_PLATFORM x86)
- endif()
- if(APPLE)
- set(LOVE_DEFAULT_JIT FALSE)
- else()
- set(LOVE_DEFAULT_JIT TRUE)
- endif()
- option(LOVE_JIT "Use LuaJIT" ${LOVE_DEFAULT_JIT})
- if(LOVE_JIT)
- if(APPLE)
- message(WARNING "JIT not supported yet on Mac.")
- endif()
- message(STATUS "LuaJIT: Enabled")
- else()
- message(STATUS "LuaJIT: Disabled")
- endif()
- message(STATUS "Target platform: ${LOVE_TARGET_PLATFORM}")
- add_library(lovedep::SDL INTERFACE IMPORTED)
- add_library(lovedep::Freetype INTERFACE IMPORTED)
- add_library(lovedep::Harfbuzz INTERFACE IMPORTED)
- add_library(lovedep::OpenAL INTERFACE IMPORTED)
- add_library(lovedep::Modplug INTERFACE IMPORTED)
- add_library(lovedep::Theora INTERFACE IMPORTED)
- add_library(lovedep::Vorbis INTERFACE IMPORTED)
- add_library(lovedep::Ogg INTERFACE IMPORTED)
- add_library(lovedep::Zlib INTERFACE IMPORTED)
- add_library(lovedep::Lua INTERFACE IMPORTED)
- if(MEGA)
- # LOVE_MSVC_DLLS contains runtime DLLs that should be bundled with the love
- # binary (in e.g. the installer). Example: msvcp140.dll.
- set(LOVE_MSVC_DLLS ${MEGA_MSVC_DLLS})
- if(APPLE)
- # Some files do #include <SDL2/SDL.h>, but building with megasource
- # requires #include <SDL.h>.
- add_definitions(-DLOVE_MACOSX_SDL_DIRECT_INCLUDE)
- endif ()
- # SDL2 links with some DirectX libraries, and we apparently also
- # pull those libraries in for linkage because we link with SDL2.
- set(LOVE_LINK_DIRS ${SDL_LINK_DIR})
- # These DLLs are moved next to the love binary in a post-build step to
- # love runnable from inside Visual Studio.
- #
- # LOVE_MOVE_DLLS can contain CMake targets, in which case the target's
- # output is assumed to be a DLL, or it can contain paths to actual files.
- # We detect whether or not each item is a target, and take the appropriate
- # action.
- set(LOVE_MOVE_DLLS
- ${MEGA_SDL2}
- ${MEGA_SDL3}
- ${MEGA_OPENAL}
- )
- # LOVE_EXTRA_DLLS are non-runtime DLLs which should be bundled with the
- # love binary in installers, etc. It's only needed for external
- # (non-CMake) targets, i.e. LuaJIT.
- if(NOT DEFINED LOVE_EXTRA_DLLS)
- set(LOVE_EXTRA_DLLS)
- endif()
- target_link_libraries(lovedep::SDL INTERFACE ${MEGA_SDL2} ${MEGA_SDL2MAIN} ${MEGA_SDL3})
- target_link_libraries(lovedep::Freetype INTERFACE ${MEGA_FREETYPE})
- target_link_libraries(lovedep::Harfbuzz INTERFACE ${MEGA_HARFBUZZ})
- target_link_libraries(lovedep::OpenAL INTERFACE ${MEGA_OPENAL})
- target_link_libraries(lovedep::Modplug INTERFACE ${MEGA_MODPLUG})
- target_link_libraries(lovedep::Theora INTERFACE ${MEGA_LIBTHEORA})
- target_link_libraries(lovedep::Vorbis INTERFACE ${MEGA_LIBVORBIS} ${MEGA_LIBVORBISFILE})
- target_link_libraries(lovedep::Ogg INTERFACE ${MEGA_LIBOGG})
- target_link_libraries(lovedep::Zlib INTERFACE ${MEGA_ZLIB})
- if(LOVE_JIT)
- target_include_directories(lovedep::Lua INTERFACE ${MEGA_LUAJIT_INCLUDE})
- target_link_libraries(lovedep::Lua INTERFACE ${MEGA_LUAJIT_LIB})
- set(LOVE_EXTRA_DLLS ${LOVE_EXTRA_DLLS} ${MEGA_LUAJIT_DLL})
- set(LOVE_EXTRA_DEPENDECIES luajit)
- set(LOVE_MOVE_DLLS
- ${LOVE_MOVE_DLLS}
- ${MEGA_LUAJIT_DLL}
- )
- else()
- # MEGA_LUA51 is a CMake target, so includes are handled
- # automatically.
- target_link_libraries(lovedep::Lua INTERFACE ${MEGA_LUA51})
- set(LOVE_MOVE_DLLS
- ${LOVE_MOVE_DLLS}
- ${MEGA_LUA51}
- )
- endif()
- else()
- if(MSVC OR ANDROID)
- message(FATAL_ERROR "
- It is currently only possible to build with megasource on Windows and Android.
- Please see https://github.com/love2d/megasource
- ")
- endif()
- # required for enet
- add_definitions(-D HAS_SOCKLEN_T)
- find_package(SDL2 2.0.9 REQUIRED CONFIG COMPONENTS SDL2main)
- target_include_directories(lovedep::SDL INTERFACE ${SDL2_INCLUDE_DIRS})
- target_link_libraries(lovedep::SDL INTERFACE ${SDL2_LIBRARIES})
- find_package(Freetype REQUIRED)
- target_include_directories(lovedep::Freetype INTERFACE ${FREETYPE_INCLUDE_DIRS})
- target_link_libraries(lovedep::Freetype INTERFACE ${FREETYPE_LIBRARY})
- find_package(Harfbuzz REQUIRED)
- target_include_directories(lovedep::Harfbuzz INTERFACE ${HARFBUZZ_INCLUDE_DIR})
- target_link_libraries(lovedep::Harfbuzz INTERFACE ${HARFBUZZ_LIBRARY})
- find_package(OpenAL REQUIRED)
- target_include_directories(lovedep::OpenAL INTERFACE ${OPENAL_INCLUDE_DIR})
- target_link_libraries(lovedep::OpenAL INTERFACE ${OPENAL_LIBRARY})
- find_package(ModPlug REQUIRED)
- target_include_directories(lovedep::Modplug INTERFACE ${MODPLUG_INCLUDE_DIR})
- target_link_libraries(lovedep::Modplug INTERFACE ${MODPLUG_LIBRARY})
- find_package(Theora REQUIRED)
- target_include_directories(lovedep::Theora INTERFACE ${THEORA_INCLUDE_DIR})
- target_link_libraries(lovedep::Theora INTERFACE ${THEORA_LIBRARY} ${THEORADEC_LIBRARY})
- find_package(Vorbis REQUIRED)
- target_include_directories(lovedep::Vorbis INTERFACE ${VORBIS_INCLUDE_DIR})
- target_link_libraries(lovedep::Vorbis INTERFACE ${VORBISFILE_LIBRARY})
- find_package(Ogg REQUIRED)
- target_include_directories(lovedep::Ogg INTERFACE ${OGG_INCLUDE_DIR})
- target_link_libraries(lovedep::Ogg INTERFACE ${OGG_LIBRARY})
- find_package(ZLIB REQUIRED)
- target_include_directories(lovedep::Zlib INTERFACE ${ZLIB_INCLUDE_DIRS})
- target_link_libraries(lovedep::Zlib INTERFACE ${ZLIB_LIBRARY})
- if(LOVE_JIT)
- find_package(LuaJIT REQUIRED)
- target_include_directories(lovedep::Lua INTERFACE ${LUAJIT_INCLUDE_DIR})
- target_link_libraries(lovedep::Lua INTERFACE ${LUAJIT_LIBRARY})
- else()
- find_package(Lua51 REQUIRED)
- target_include_directories(lovedep::Lua INTERFACE ${LUA_INCLUDE_DIR})
- target_link_libraries(lovedep::Lua INTERFACE ${LUA_LIBRARY})
- endif()
- endif()
- ###
- ### No Megasource-specific stuff beyond this point!
- ###
- if(MSVC)
- set(DISABLE_WARNING_FLAG -W0)
- else()
- set(DISABLE_WARNING_FLAG -w)
- endif()
- function(love_disable_warnings ARG_TARGET)
- target_compile_options(${ARG_TARGET} PRIVATE ${DISABLE_WARNING_FLAG})
- endfunction()
- #
- # common
- #
- add_library(love_common STATIC
- src/common/android.cpp
- src/common/android.h
- src/common/b64.cpp
- src/common/b64.h
- src/common/Color.h
- src/common/config.h
- src/common/Data.cpp
- src/common/Data.h
- src/common/delay.cpp
- src/common/delay.h
- src/common/deprecation.cpp
- src/common/deprecation.h
- src/common/EnumMap.h
- src/common/Exception.cpp
- src/common/Exception.h
- src/common/floattypes.cpp
- src/common/floattypes.h
- src/common/int.h
- src/common/math.h
- src/common/Matrix.cpp
- src/common/Matrix.h
- src/common/memory.cpp
- src/common/memory.h
- src/common/Module.cpp
- src/common/Module.h
- src/common/Object.cpp
- src/common/Object.h
- src/common/Optional.h
- src/common/pixelformat.cpp
- src/common/pixelformat.h
- src/common/Range.h
- src/common/Reference.cpp
- src/common/Reference.h
- src/common/runtime.cpp
- src/common/runtime.h
- src/common/Stream.cpp
- src/common/Stream.h
- src/common/StringMap.cpp
- src/common/StringMap.h
- src/common/types.cpp
- src/common/types.h
- src/common/utf8.cpp
- src/common/utf8.h
- src/common/Variant.cpp
- src/common/Variant.h
- #src/common/Vector.cpp # Vector.cpp is empty.
- src/common/Vector.h
- src/common/version.h
- )
- target_link_libraries(love_common PUBLIC
- lovedep::Lua
- lovedep::SDL
- )
- if (APPLE)
- target_sources(love_common PRIVATE
- src/common/apple.mm
- )
- target_link_libraries(love_common PUBLIC
- objc
- "-framework CoreFoundation"
- )
- if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- target_sources(love_common PRIVATE
- src/common/macos.mm
- )
- target_link_libraries(love_common PUBLIC
- "-framework AppKit"
- )
- else()
- target_sources(love_common PRIVATE
- src/common/ios.mm
- )
- target_link_libraries(love_common PUBLIC
- "-framework UIKit"
- )
- endif()
- endif()
- #
- # love.audio
- #
- add_library(love_audio_root STATIC
- src/modules/audio/Audio.cpp
- src/modules/audio/Audio.h
- src/modules/audio/Source.cpp
- src/modules/audio/Source.h
- src/modules/audio/RecordingDevice.cpp
- src/modules/audio/RecordingDevice.h
- src/modules/audio/Filter.cpp
- src/modules/audio/Filter.h
- src/modules/audio/Effect.cpp
- src/modules/audio/Effect.h
- src/modules/audio/wrap_Audio.cpp
- src/modules/audio/wrap_Audio.h
- src/modules/audio/wrap_Source.cpp
- src/modules/audio/wrap_Source.h
- src/modules/audio/wrap_RecordingDevice.cpp
- src/modules/audio/wrap_RecordingDevice.h
- )
- target_link_libraries(love_audio_root PUBLIC
- lovedep::Lua
- lovedep::OpenAL
- )
- add_library(love_audio_null STATIC
- src/modules/audio/null/Audio.cpp
- src/modules/audio/null/Audio.h
- src/modules/audio/null/Source.cpp
- src/modules/audio/null/Source.h
- src/modules/audio/null/RecordingDevice.cpp
- src/modules/audio/null/RecordingDevice.h
- )
- add_library(love_audio_openal STATIC
- src/modules/audio/openal/Audio.cpp
- src/modules/audio/openal/Audio.h
- src/modules/audio/openal/Pool.cpp
- src/modules/audio/openal/Pool.h
- src/modules/audio/openal/Source.cpp
- src/modules/audio/openal/Source.h
- src/modules/audio/openal/RecordingDevice.cpp
- src/modules/audio/openal/RecordingDevice.h
- src/modules/audio/openal/Filter.cpp
- src/modules/audio/openal/Filter.h
- src/modules/audio/openal/Effect.cpp
- src/modules/audio/openal/Effect.h
- )
- target_link_libraries(love_audio_openal PUBLIC
- lovedep::OpenAL
- )
- add_library(love_audio INTERFACE)
- target_link_libraries(love_audio INTERFACE
- love_audio_root
- love_audio_null
- love_audio_openal
- )
- #
- # love.data
- #
- add_library(love_data STATIC
- src/modules/data/ByteData.cpp
- src/modules/data/ByteData.h
- src/modules/data/CompressedData.cpp
- src/modules/data/CompressedData.h
- src/modules/data/Compressor.cpp
- src/modules/data/Compressor.h
- src/modules/data/DataModule.cpp
- src/modules/data/DataModule.h
- src/modules/data/DataStream.cpp
- src/modules/data/DataStream.h
- src/modules/data/DataView.cpp
- src/modules/data/DataView.h
- src/modules/data/HashFunction.cpp
- src/modules/data/HashFunction.h
- src/modules/data/wrap_ByteData.cpp
- src/modules/data/wrap_ByteData.h
- src/modules/data/wrap_CompressedData.cpp
- src/modules/data/wrap_CompressedData.h
- src/modules/data/wrap_Data.cpp
- src/modules/data/wrap_Data.h
- src/modules/data/wrap_Data.lua
- src/modules/data/wrap_DataModule.cpp
- src/modules/data/wrap_DataModule.h
- src/modules/data/wrap_DataView.cpp
- src/modules/data/wrap_DataView.h
- )
- target_link_libraries(love_data PUBLIC
- lovedep::Lua
- lovedep::Zlib
- )
- #
- # love.event
- #
- add_library(love_event_root STATIC
- src/modules/event/Event.cpp
- src/modules/event/Event.h
- src/modules/event/wrap_Event.cpp
- src/modules/event/wrap_Event.h
- src/modules/event/wrap_Event.lua
- )
- target_link_libraries(love_event_root PUBLIC
- lovedep::Lua
- lovedep::SDL
- )
- add_library(love_event_sdl STATIC
- src/modules/event/sdl/Event.cpp
- src/modules/event/sdl/Event.h
- )
- target_link_libraries(love_event_sdl PUBLIC
- lovedep::SDL
- )
- add_library(love_event INTERFACE)
- target_link_libraries(love_event INTERFACE
- love_event_root
- love_event_sdl
- )
- #
- # love.filesystem
- #
- add_library(love_filesystem_root STATIC
- src/modules/filesystem/File.cpp
- src/modules/filesystem/File.h
- src/modules/filesystem/FileData.cpp
- src/modules/filesystem/FileData.h
- src/modules/filesystem/Filesystem.cpp
- src/modules/filesystem/Filesystem.h
- src/modules/filesystem/NativeFile.cpp
- src/modules/filesystem/NativeFile.h
- src/modules/filesystem/wrap_File.cpp
- src/modules/filesystem/wrap_File.h
- src/modules/filesystem/wrap_FileData.cpp
- src/modules/filesystem/wrap_FileData.h
- src/modules/filesystem/wrap_Filesystem.cpp
- src/modules/filesystem/wrap_Filesystem.h
- src/modules/filesystem/wrap_NativeFile.cpp
- src/modules/filesystem/wrap_NativeFile.h
- )
- target_link_libraries(love_filesystem_root PUBLIC
- lovedep::Lua
- lovedep::SDL
- )
- add_library(love_filesystem_physfs STATIC
- src/modules/filesystem/physfs/File.cpp
- src/modules/filesystem/physfs/File.h
- src/modules/filesystem/physfs/Filesystem.cpp
- src/modules/filesystem/physfs/Filesystem.h
- src/modules/filesystem/physfs/PhysfsIo.h
- src/modules/filesystem/physfs/PhysfsIo.cpp
- )
- if(ANDROID)
- target_link_libraries(love_filesystem_physfs PUBLIC
- lovedep::SDL
- )
- endif()
- add_library(love_filesystem INTERFACE)
- target_link_libraries(love_filesystem INTERFACE
- love_filesystem_root
- love_filesystem_physfs
- )
- #
- # love.font
- #
- add_library(love_font_root STATIC
- src/modules/font/BMFontRasterizer.cpp
- src/modules/font/BMFontRasterizer.h
- src/modules/font/Font.cpp
- src/modules/font/Font.h
- src/modules/font/GenericShaper.cpp
- src/modules/font/GenericShaper.h
- src/modules/font/GlyphData.cpp
- src/modules/font/GlyphData.h
- src/modules/font/ImageRasterizer.cpp
- src/modules/font/ImageRasterizer.h
- src/modules/font/Rasterizer.cpp
- src/modules/font/Rasterizer.h
- src/modules/font/TextShaper.cpp
- src/modules/font/TextShaper.h
- src/modules/font/TrueTypeRasterizer.cpp
- src/modules/font/TrueTypeRasterizer.h
- src/modules/font/wrap_Font.cpp
- src/modules/font/wrap_Font.h
- src/modules/font/wrap_GlyphData.cpp
- src/modules/font/wrap_GlyphData.h
- src/modules/font/wrap_Rasterizer.cpp
- src/modules/font/wrap_Rasterizer.h
- )
- target_link_libraries(love_font_root PUBLIC
- lovedep::Lua
- lovedep::Freetype
- )
- add_library(love_font_freetype STATIC
- src/modules/font/freetype/Font.cpp
- src/modules/font/freetype/Font.h
- src/modules/font/freetype/HarfbuzzShaper.cpp
- src/modules/font/freetype/HarfbuzzShaper.h
- src/modules/font/freetype/TrueTypeRasterizer.cpp
- src/modules/font/freetype/TrueTypeRasterizer.h
- )
- target_link_libraries(love_font_freetype PUBLIC
- lovedep::Freetype
- lovedep::Harfbuzz
- )
- add_library(love_font INTERFACE)
- target_link_libraries(love_font INTERFACE
- love_font_root
- love_font_freetype
- )
- #
- # love.graphics
- #
- add_library(love_graphics_root STATIC
- src/modules/graphics/Buffer.cpp
- src/modules/graphics/Buffer.h
- src/modules/graphics/Deprecations.cpp
- src/modules/graphics/Deprecations.h
- src/modules/graphics/Drawable.cpp
- src/modules/graphics/Drawable.h
- src/modules/graphics/Font.cpp
- src/modules/graphics/Font.h
- src/modules/graphics/Graphics.cpp
- src/modules/graphics/Graphics.h
- src/modules/graphics/GraphicsReadback.cpp
- src/modules/graphics/GraphicsReadback.h
- src/modules/graphics/Mesh.cpp
- src/modules/graphics/Mesh.h
- src/modules/graphics/ParticleSystem.cpp
- src/modules/graphics/ParticleSystem.h
- src/modules/graphics/Polyline.cpp
- src/modules/graphics/Polyline.h
- src/modules/graphics/Quad.cpp
- src/modules/graphics/Quad.h
- src/modules/graphics/renderstate.cpp
- src/modules/graphics/renderstate.h
- src/modules/graphics/Resource.h
- src/modules/graphics/Shader.cpp
- src/modules/graphics/Shader.h
- src/modules/graphics/ShaderStage.cpp
- src/modules/graphics/ShaderStage.h
- src/modules/graphics/SpriteBatch.cpp
- src/modules/graphics/SpriteBatch.h
- src/modules/graphics/StreamBuffer.cpp
- src/modules/graphics/StreamBuffer.h
- src/modules/graphics/TextBatch.cpp
- src/modules/graphics/TextBatch.h
- src/modules/graphics/Texture.cpp
- src/modules/graphics/Texture.h
- src/modules/graphics/vertex.cpp
- src/modules/graphics/vertex.h
- src/modules/graphics/Video.cpp
- src/modules/graphics/Video.h
- src/modules/graphics/Volatile.cpp
- src/modules/graphics/Volatile.h
- src/modules/graphics/wrap_Buffer.cpp
- src/modules/graphics/wrap_Buffer.h
- src/modules/graphics/wrap_Font.cpp
- src/modules/graphics/wrap_Font.h
- src/modules/graphics/wrap_Graphics.cpp
- src/modules/graphics/wrap_Graphics.h
- src/modules/graphics/wrap_Graphics.lua
- src/modules/graphics/wrap_GraphicsReadback.cpp
- src/modules/graphics/wrap_GraphicsReadback.h
- src/modules/graphics/wrap_Mesh.cpp
- src/modules/graphics/wrap_Mesh.h
- src/modules/graphics/wrap_ParticleSystem.cpp
- src/modules/graphics/wrap_ParticleSystem.h
- src/modules/graphics/wrap_Quad.cpp
- src/modules/graphics/wrap_Quad.h
- src/modules/graphics/wrap_Shader.cpp
- src/modules/graphics/wrap_Shader.h
- src/modules/graphics/wrap_SpriteBatch.cpp
- src/modules/graphics/wrap_SpriteBatch.h
- src/modules/graphics/wrap_Texture.cpp
- src/modules/graphics/wrap_Texture.h
- src/modules/graphics/wrap_TextBatch.cpp
- src/modules/graphics/wrap_TextBatch.h
- src/modules/graphics/wrap_Video.cpp
- src/modules/graphics/wrap_Video.h
- src/modules/graphics/wrap_Video.lua
- )
- target_link_libraries(love_graphics_root PUBLIC
- lovedep::Lua
- )
- add_library(love_graphics_opengl STATIC
- src/modules/graphics/opengl/Buffer.cpp
- src/modules/graphics/opengl/Buffer.h
- src/modules/graphics/opengl/FenceSync.cpp
- src/modules/graphics/opengl/FenceSync.h
- src/modules/graphics/opengl/Graphics.cpp
- src/modules/graphics/opengl/Graphics.h
- src/modules/graphics/opengl/GraphicsReadback.cpp
- src/modules/graphics/opengl/GraphicsReadback.h
- src/modules/graphics/opengl/OpenGL.cpp
- src/modules/graphics/opengl/OpenGL.h
- src/modules/graphics/opengl/Shader.cpp
- src/modules/graphics/opengl/Shader.h
- src/modules/graphics/opengl/ShaderStage.cpp
- src/modules/graphics/opengl/ShaderStage.h
- src/modules/graphics/opengl/StreamBuffer.cpp
- src/modules/graphics/opengl/StreamBuffer.h
- src/modules/graphics/opengl/Texture.cpp
- src/modules/graphics/opengl/Texture.h
- )
- target_link_libraries(love_graphics_opengl PUBLIC
- lovedep::SDL
- )
- add_library(love_graphics INTERFACE)
- target_link_libraries(love_graphics INTERFACE
- love_graphics_root
- love_graphics_opengl
- )
- if(APPLE)
- add_library(love_graphics_metal STATIC
- src/modules/graphics/metal/Buffer.h
- src/modules/graphics/metal/Buffer.mm
- src/modules/graphics/metal/Graphics.h
- src/modules/graphics/metal/Graphics.mm
- src/modules/graphics/metal/GraphicsReadback.h
- src/modules/graphics/metal/GraphicsReadback.mm
- src/modules/graphics/metal/Metal.h
- src/modules/graphics/metal/Metal.mm
- src/modules/graphics/metal/Shader.h
- src/modules/graphics/metal/Shader.mm
- src/modules/graphics/metal/ShaderStage.h
- src/modules/graphics/metal/ShaderStage.mm
- src/modules/graphics/metal/StreamBuffer.h
- src/modules/graphics/metal/StreamBuffer.mm
- src/modules/graphics/metal/Texture.h
- src/modules/graphics/metal/Texture.mm
- )
- target_link_libraries(love_graphics_metal PUBLIC
- objc
- "-framework Metal"
- "-framework QuartzCore"
- )
- target_link_libraries(love_graphics INTERFACE
- love_graphics_metal
- )
- else()
- add_library(love_graphics_vulkan STATIC
- src/modules/graphics/vulkan/Graphics.h
- src/modules/graphics/vulkan/Graphics.cpp
- src/modules/graphics/vulkan/GraphicsReadback.h
- src/modules/graphics/vulkan/GraphicsReadback.cpp
- src/modules/graphics/vulkan/Shader.h
- src/modules/graphics/vulkan/Shader.cpp
- src/modules/graphics/vulkan/ShaderStage.h
- src/modules/graphics/vulkan/ShaderStage.cpp
- src/modules/graphics/vulkan/StreamBuffer.h
- src/modules/graphics/vulkan/StreamBuffer.cpp
- src/modules/graphics/vulkan/Buffer.h
- src/modules/graphics/vulkan/Buffer.cpp
- src/modules/graphics/vulkan/Texture.h
- src/modules/graphics/vulkan/Texture.cpp
- src/modules/graphics/vulkan/Vulkan.h
- src/modules/graphics/vulkan/Vulkan.cpp
- src/modules/graphics/vulkan/VulkanWrapper.h
- )
- target_link_libraries(love_graphics_vulkan PUBLIC
- lovedep::SDL
- )
- target_link_libraries(love_graphics INTERFACE
- love_graphics_vulkan
- )
- endif()
- #
- # love.image
- #
- add_library(love_image_root STATIC
- src/modules/image/CompressedImageData.cpp
- src/modules/image/CompressedImageData.h
- src/modules/image/CompressedSlice.cpp
- src/modules/image/CompressedSlice.h
- src/modules/image/FormatHandler.cpp
- src/modules/image/FormatHandler.h
- src/modules/image/Image.cpp
- src/modules/image/Image.h
- src/modules/image/ImageData.cpp
- src/modules/image/ImageData.h
- src/modules/image/ImageDataBase.cpp
- src/modules/image/ImageDataBase.h
- src/modules/image/wrap_CompressedImageData.cpp
- src/modules/image/wrap_CompressedImageData.h
- src/modules/image/wrap_Image.cpp
- src/modules/image/wrap_Image.h
- src/modules/image/wrap_ImageData.cpp
- src/modules/image/wrap_ImageData.h
- src/modules/image/wrap_ImageData.lua
- )
- target_link_libraries(love_image_root PUBLIC
- lovedep::Lua
- )
- add_library(love_image_magpie STATIC
- src/modules/image/magpie/ASTCHandler.cpp
- src/modules/image/magpie/ASTCHandler.h
- src/modules/image/magpie/ddsHandler.cpp
- src/modules/image/magpie/ddsHandler.h
- src/modules/image/magpie/EXRHandler.cpp
- src/modules/image/magpie/EXRHandler.h
- src/modules/image/magpie/KTXHandler.cpp
- src/modules/image/magpie/KTXHandler.h
- src/modules/image/magpie/PKMHandler.cpp
- src/modules/image/magpie/PKMHandler.h
- src/modules/image/magpie/PNGHandler.cpp
- src/modules/image/magpie/PNGHandler.h
- src/modules/image/magpie/PVRHandler.cpp
- src/modules/image/magpie/PVRHandler.h
- src/modules/image/magpie/STBHandler.cpp
- src/modules/image/magpie/STBHandler.h
- )
- target_link_libraries(love_image_magpie PUBLIC
- lovedep::Zlib
- )
- add_library(love_image INTERFACE)
- target_link_libraries(love_image INTERFACE
- love_image_root
- love_image_magpie
- )
- #
- # love.joystick
- #
- add_library(love_joystick_root STATIC
- src/modules/joystick/Joystick.cpp
- src/modules/joystick/Joystick.h
- src/modules/joystick/JoystickModule.h
- src/modules/joystick/wrap_Joystick.cpp
- src/modules/joystick/wrap_Joystick.h
- src/modules/joystick/wrap_JoystickModule.cpp
- src/modules/joystick/wrap_JoystickModule.h
- )
- target_link_libraries(love_joystick_root PUBLIC
- lovedep::Lua
- )
- add_library(love_joystick_sdl STATIC
- src/modules/joystick/sdl/Joystick.cpp
- src/modules/joystick/sdl/Joystick.h
- src/modules/joystick/sdl/JoystickSDL3.cpp
- src/modules/joystick/sdl/JoystickSDL3.h
- src/modules/joystick/sdl/JoystickModule.cpp
- src/modules/joystick/sdl/JoystickModule.h
- )
- target_link_libraries(love_joystick_sdl PUBLIC
- lovedep::SDL
- )
- add_library(love_joystick INTERFACE)
- target_link_libraries(love_joystick INTERFACE
- love_joystick_root
- love_joystick_sdl
- )
- #
- # love.keyboard
- #
- add_library(love_keyboard_root STATIC
- src/modules/keyboard/Keyboard.cpp
- src/modules/keyboard/Keyboard.h
- src/modules/keyboard/wrap_Keyboard.cpp
- src/modules/keyboard/wrap_Keyboard.h
- )
- target_link_libraries(love_keyboard_root PUBLIC
- lovedep::Lua
- lovedep::SDL
- )
- add_library(love_keyboard_sdl STATIC
- src/modules/keyboard/sdl/Keyboard.cpp
- src/modules/keyboard/sdl/Keyboard.h
- )
- target_link_libraries(love_keyboard_sdl PUBLIC
- lovedep::SDL
- )
- add_library(love_keyboard INTERFACE)
- target_link_libraries(love_keyboard INTERFACE
- love_keyboard_root
- love_keyboard_sdl
- )
- #
- # love.math
- #
- add_library(love_math STATIC
- src/modules/math/BezierCurve.cpp
- src/modules/math/BezierCurve.h
- src/modules/math/MathModule.cpp
- src/modules/math/MathModule.h
- src/modules/math/RandomGenerator.cpp
- src/modules/math/RandomGenerator.h
- src/modules/math/Transform.cpp
- src/modules/math/Transform.h
- src/modules/math/wrap_BezierCurve.cpp
- src/modules/math/wrap_BezierCurve.h
- src/modules/math/wrap_Math.cpp
- src/modules/math/wrap_Math.h
- src/modules/math/wrap_Math.lua
- src/modules/math/wrap_RandomGenerator.cpp
- src/modules/math/wrap_RandomGenerator.h
- src/modules/math/wrap_RandomGenerator.lua
- src/modules/math/wrap_Transform.cpp
- src/modules/math/wrap_Transform.h
- )
- target_link_libraries(love_math PUBLIC
- lovedep::Lua
- )
- #
- # love.mouse
- #
- add_library(love_mouse_root STATIC
- src/modules/mouse/Cursor.cpp
- src/modules/mouse/Cursor.h
- src/modules/mouse/Mouse.h
- src/modules/mouse/wrap_Cursor.cpp
- src/modules/mouse/wrap_Cursor.h
- src/modules/mouse/wrap_Mouse.cpp
- src/modules/mouse/wrap_Mouse.h
- )
- target_link_libraries(love_mouse_root PUBLIC
- lovedep::Lua
- lovedep::SDL
- )
- add_library(love_mouse_sdl STATIC
- src/modules/mouse/sdl/Cursor.cpp
- src/modules/mouse/sdl/Cursor.h
- src/modules/mouse/sdl/Mouse.cpp
- src/modules/mouse/sdl/Mouse.h
- )
- target_link_libraries(love_mouse_sdl PUBLIC
- lovedep::SDL
- )
- add_library(love_mouse INTERFACE)
- target_link_libraries(love_mouse INTERFACE
- love_mouse_root
- love_mouse_sdl
- )
- #
- # love.physics
- #
- add_library(love_physics_root STATIC
- src/modules/physics/Body.cpp
- src/modules/physics/Body.h
- src/modules/physics/Joint.cpp
- src/modules/physics/Joint.h
- src/modules/physics/Shape.cpp
- src/modules/physics/Shape.h
- )
- add_library(love_physics_box2d STATIC
- src/modules/physics/box2d/Body.cpp
- src/modules/physics/box2d/Body.h
- src/modules/physics/box2d/ChainShape.cpp
- src/modules/physics/box2d/ChainShape.h
- src/modules/physics/box2d/CircleShape.cpp
- src/modules/physics/box2d/CircleShape.h
- src/modules/physics/box2d/Contact.cpp
- src/modules/physics/box2d/Contact.h
- src/modules/physics/box2d/DistanceJoint.cpp
- src/modules/physics/box2d/DistanceJoint.h
- src/modules/physics/box2d/EdgeShape.cpp
- src/modules/physics/box2d/EdgeShape.h
- src/modules/physics/box2d/FrictionJoint.cpp
- src/modules/physics/box2d/FrictionJoint.h
- src/modules/physics/box2d/GearJoint.cpp
- src/modules/physics/box2d/GearJoint.h
- src/modules/physics/box2d/Joint.cpp
- src/modules/physics/box2d/Joint.h
- src/modules/physics/box2d/MotorJoint.cpp
- src/modules/physics/box2d/MotorJoint.h
- src/modules/physics/box2d/MouseJoint.cpp
- src/modules/physics/box2d/MouseJoint.h
- src/modules/physics/box2d/Physics.cpp
- src/modules/physics/box2d/Physics.h
- src/modules/physics/box2d/PolygonShape.cpp
- src/modules/physics/box2d/PolygonShape.h
- src/modules/physics/box2d/PrismaticJoint.cpp
- src/modules/physics/box2d/PrismaticJoint.h
- src/modules/physics/box2d/PulleyJoint.cpp
- src/modules/physics/box2d/PulleyJoint.h
- src/modules/physics/box2d/RevoluteJoint.cpp
- src/modules/physics/box2d/RevoluteJoint.h
- src/modules/physics/box2d/RopeJoint.cpp
- src/modules/physics/box2d/RopeJoint.h
- src/modules/physics/box2d/Shape.cpp
- src/modules/physics/box2d/Shape.h
- src/modules/physics/box2d/WeldJoint.cpp
- src/modules/physics/box2d/WeldJoint.h
- src/modules/physics/box2d/WheelJoint.cpp
- src/modules/physics/box2d/WheelJoint.h
- src/modules/physics/box2d/World.cpp
- src/modules/physics/box2d/World.h
- src/modules/physics/box2d/wrap_Body.cpp
- src/modules/physics/box2d/wrap_Body.h
- src/modules/physics/box2d/wrap_ChainShape.cpp
- src/modules/physics/box2d/wrap_ChainShape.h
- src/modules/physics/box2d/wrap_CircleShape.cpp
- src/modules/physics/box2d/wrap_CircleShape.h
- src/modules/physics/box2d/wrap_Contact.cpp
- src/modules/physics/box2d/wrap_Contact.h
- src/modules/physics/box2d/wrap_DistanceJoint.cpp
- src/modules/physics/box2d/wrap_DistanceJoint.h
- src/modules/physics/box2d/wrap_EdgeShape.cpp
- src/modules/physics/box2d/wrap_EdgeShape.h
- src/modules/physics/box2d/wrap_FrictionJoint.cpp
- src/modules/physics/box2d/wrap_FrictionJoint.h
- src/modules/physics/box2d/wrap_GearJoint.cpp
- src/modules/physics/box2d/wrap_GearJoint.h
- src/modules/physics/box2d/wrap_Joint.cpp
- src/modules/physics/box2d/wrap_Joint.h
- src/modules/physics/box2d/wrap_MotorJoint.cpp
- src/modules/physics/box2d/wrap_MotorJoint.h
- src/modules/physics/box2d/wrap_MouseJoint.cpp
- src/modules/physics/box2d/wrap_MouseJoint.h
- src/modules/physics/box2d/wrap_Physics.cpp
- src/modules/physics/box2d/wrap_Physics.h
- src/modules/physics/box2d/wrap_PolygonShape.cpp
- src/modules/physics/box2d/wrap_PolygonShape.h
- src/modules/physics/box2d/wrap_PrismaticJoint.cpp
- src/modules/physics/box2d/wrap_PrismaticJoint.h
- src/modules/physics/box2d/wrap_PulleyJoint.cpp
- src/modules/physics/box2d/wrap_PulleyJoint.h
- src/modules/physics/box2d/wrap_RevoluteJoint.cpp
- src/modules/physics/box2d/wrap_RevoluteJoint.h
- src/modules/physics/box2d/wrap_RopeJoint.cpp
- src/modules/physics/box2d/wrap_RopeJoint.h
- src/modules/physics/box2d/wrap_Shape.cpp
- src/modules/physics/box2d/wrap_Shape.h
- src/modules/physics/box2d/wrap_WeldJoint.cpp
- src/modules/physics/box2d/wrap_WeldJoint.h
- src/modules/physics/box2d/wrap_WheelJoint.cpp
- src/modules/physics/box2d/wrap_WheelJoint.h
- src/modules/physics/box2d/wrap_World.cpp
- src/modules/physics/box2d/wrap_World.h
- )
- target_link_libraries(love_physics_box2d PUBLIC
- lovedep::Lua
- )
- add_library(love_physics INTERFACE)
- target_link_libraries(love_physics INTERFACE
- love_physics_root
- love_physics_box2d
- )
- #
- # love.sensor
- #
- add_library(love_sensor_root STATIC
- src/modules/sensor/Sensor.cpp
- src/modules/sensor/Sensor.h
- src/modules/sensor/wrap_Sensor.cpp
- src/modules/sensor/wrap_Sensor.h
- )
- target_link_libraries(love_sensor_root PUBLIC
- lovedep::Lua
- lovedep::SDL
- )
- add_library(love_sensor_sdl STATIC
- src/modules/sensor/sdl/Sensor.cpp
- src/modules/sensor/sdl/Sensor.h
- )
- target_link_libraries(love_sensor_sdl PUBLIC
- lovedep::SDL
- )
- add_library(love_sensor INTERFACE)
- target_link_libraries(love_sensor INTERFACE
- love_sensor_root
- love_sensor_sdl
- )
- #
- # love.sound
- #
- add_library(love_sound_root STATIC
- src/modules/sound/Decoder.cpp
- src/modules/sound/Decoder.h
- src/modules/sound/Sound.cpp
- src/modules/sound/Sound.h
- src/modules/sound/SoundData.cpp
- src/modules/sound/SoundData.h
- src/modules/sound/wrap_Decoder.cpp
- src/modules/sound/wrap_Decoder.h
- src/modules/sound/wrap_Sound.cpp
- src/modules/sound/wrap_Sound.h
- src/modules/sound/wrap_SoundData.cpp
- src/modules/sound/wrap_SoundData.h
- src/modules/sound/wrap_SoundData.lua
- )
- target_link_libraries(love_sound_root PUBLIC
- lovedep::Lua
- )
- add_library(love_sound_lullaby STATIC
- src/modules/sound/lullaby/FLACDecoder.cpp
- src/modules/sound/lullaby/FLACDecoder.h
- src/modules/sound/lullaby/ModPlugDecoder.cpp
- src/modules/sound/lullaby/ModPlugDecoder.h
- src/modules/sound/lullaby/MP3Decoder.h
- src/modules/sound/lullaby/MP3Decoder.cpp
- src/modules/sound/lullaby/Sound.cpp
- src/modules/sound/lullaby/Sound.h
- src/modules/sound/lullaby/VorbisDecoder.cpp
- src/modules/sound/lullaby/VorbisDecoder.h
- src/modules/sound/lullaby/WaveDecoder.cpp
- src/modules/sound/lullaby/WaveDecoder.h
- )
- target_link_libraries(love_sound_lullaby PUBLIC
- lovedep::Modplug
- lovedep::Vorbis
- lovedep::Ogg
- )
- add_library(love_sound INTERFACE)
- target_link_libraries(love_sound INTERFACE
- love_sound_root
- love_sound_lullaby
- )
- #
- # love.system
- #
- add_library(love_system_root STATIC
- src/modules/system/System.cpp
- src/modules/system/System.h
- src/modules/system/wrap_System.cpp
- src/modules/system/wrap_System.h
- )
- target_link_libraries(love_system_root PUBLIC
- lovedep::Lua
- lovedep::SDL
- )
- add_library(love_system_sdl STATIC
- src/modules/system/sdl/System.cpp
- src/modules/system/sdl/System.h
- )
- target_link_libraries(love_system_sdl PUBLIC
- lovedep::SDL
- )
- add_library(love_system INTERFACE)
- target_link_libraries(love_system INTERFACE
- love_system_root
- love_system_sdl
- )
- #
- # love.thread
- #
- add_library(love_thread_root STATIC
- src/modules/thread/Channel.cpp
- src/modules/thread/Channel.h
- src/modules/thread/LuaThread.cpp
- src/modules/thread/LuaThread.h
- src/modules/thread/Thread.h
- src/modules/thread/ThreadModule.cpp
- src/modules/thread/ThreadModule.h
- src/modules/thread/threads.cpp
- src/modules/thread/threads.h
- src/modules/thread/wrap_Channel.cpp
- src/modules/thread/wrap_Channel.h
- src/modules/thread/wrap_LuaThread.cpp
- src/modules/thread/wrap_LuaThread.h
- src/modules/thread/wrap_ThreadModule.cpp
- src/modules/thread/wrap_ThreadModule.h
- )
- target_link_libraries(love_thread_root PUBLIC
- lovedep::Lua
- )
- add_library(love_thread_sdl STATIC
- src/modules/thread/sdl/Thread.cpp
- src/modules/thread/sdl/Thread.h
- src/modules/thread/sdl/threads.cpp
- src/modules/thread/sdl/threads.h
- )
- target_link_libraries(love_thread_sdl PUBLIC
- lovedep::SDL
- )
- add_library(love_thread INTERFACE)
- target_link_libraries(love_thread INTERFACE
- love_thread_root
- love_thread_sdl
- )
- #
- # love.timer
- #
- add_library(love_timer STATIC
- src/modules/timer/Timer.cpp
- src/modules/timer/Timer.h
- src/modules/timer/wrap_Timer.cpp
- src/modules/timer/wrap_Timer.h
- )
- target_link_libraries(love_timer PUBLIC
- lovedep::Lua
- )
- #
- # love.touch
- #
- add_library(love_touch_root STATIC
- src/modules/touch/Touch.h
- src/modules/touch/wrap_Touch.cpp
- src/modules/touch/wrap_Touch.h
- )
- target_link_libraries(love_touch_root PUBLIC
- lovedep::Lua
- lovedep::SDL
- )
- add_library(love_touch_sdl STATIC
- src/modules/touch/sdl/Touch.cpp
- src/modules/touch/sdl/Touch.h
- )
- target_link_libraries(love_touch_sdl PUBLIC
- lovedep::SDL
- )
- add_library(love_touch INTERFACE)
- target_link_libraries(love_touch INTERFACE
- love_touch_root
- love_touch_sdl
- )
- #
- # love.video
- #
- add_library(love_video_root STATIC
- src/modules/video/Video.h
- src/modules/video/VideoStream.cpp
- src/modules/video/VideoStream.h
- src/modules/video/wrap_Video.cpp
- src/modules/video/wrap_Video.h
- src/modules/video/wrap_VideoStream.cpp
- src/modules/video/wrap_VideoStream.h
- )
- target_link_libraries(love_video_root PUBLIC
- lovedep::Lua
- lovedep::Theora
- lovedep::Ogg
- )
- add_library(love_video_theora STATIC
- src/modules/video/theora/Video.cpp
- src/modules/video/theora/Video.h
- src/modules/video/theora/OggDemuxer.cpp
- src/modules/video/theora/OggDemuxer.h
- src/modules/video/theora/TheoraVideoStream.cpp
- src/modules/video/theora/TheoraVideoStream.h
- )
- target_link_libraries(love_video_theora PUBLIC
- lovedep::Theora
- lovedep::Ogg
- )
- add_library(love_video INTERFACE)
- target_link_libraries(love_video INTERFACE
- love_video_root
- love_video_theora
- )
- #
- # love.window
- #
- add_library(love_window_root STATIC
- src/modules/window/Window.cpp
- src/modules/window/Window.h
- src/modules/window/wrap_Window.cpp
- src/modules/window/wrap_Window.h
- )
- target_link_libraries(love_window_root PUBLIC
- lovedep::Lua
- lovedep::SDL
- )
- add_library(love_window_sdl STATIC
- src/modules/window/sdl/Window.cpp
- src/modules/window/sdl/Window.h
- )
- target_link_libraries(love_window_sdl PUBLIC
- lovedep::SDL
- )
- add_library(love_window INTERFACE)
- target_link_libraries(love_window INTERFACE
- love_window_root
- love_window_sdl
- )
- ###################################
- # Third-party libraries
- ###################################
- #
- # Box2D
- #
- add_library(love_3p_box2d
- src/libraries/box2d/Box2D.h
- src/libraries/box2d/collision/b2_broad_phase.cpp
- src/libraries/box2d/collision/b2_chain_shape.cpp
- src/libraries/box2d/collision/b2_circle_shape.cpp
- src/libraries/box2d/collision/b2_collide_circle.cpp
- src/libraries/box2d/collision/b2_collide_edge.cpp
- src/libraries/box2d/collision/b2_collide_polygon.cpp
- src/libraries/box2d/collision/b2_collision.cpp
- src/libraries/box2d/collision/b2_distance.cpp
- src/libraries/box2d/collision/b2_dynamic_tree.cpp
- src/libraries/box2d/collision/b2_edge_shape.cpp
- src/libraries/box2d/collision/b2_polygon_shape.cpp
- src/libraries/box2d/collision/b2_time_of_impact.cpp
- src/libraries/box2d/common/b2_block_allocator.cpp
- src/libraries/box2d/common/b2_draw.cpp
- src/libraries/box2d/common/b2_math.cpp
- src/libraries/box2d/common/b2_settings.cpp
- src/libraries/box2d/common/b2_stack_allocator.cpp
- src/libraries/box2d/common/b2_timer.cpp
- src/libraries/box2d/dynamics/b2_body.cpp
- src/libraries/box2d/dynamics/b2_chain_circle_contact.cpp
- src/libraries/box2d/dynamics/b2_chain_circle_contact.h
- src/libraries/box2d/dynamics/b2_chain_polygon_contact.cpp
- src/libraries/box2d/dynamics/b2_chain_polygon_contact.h
- src/libraries/box2d/dynamics/b2_circle_contact.cpp
- src/libraries/box2d/dynamics/b2_circle_contact.h
- src/libraries/box2d/dynamics/b2_contact.cpp
- src/libraries/box2d/dynamics/b2_contact_manager.cpp
- src/libraries/box2d/dynamics/b2_contact_solver.cpp
- src/libraries/box2d/dynamics/b2_contact_solver.h
- src/libraries/box2d/dynamics/b2_distance_joint.cpp
- src/libraries/box2d/dynamics/b2_edge_circle_contact.cpp
- src/libraries/box2d/dynamics/b2_edge_circle_contact.h
- src/libraries/box2d/dynamics/b2_edge_polygon_contact.cpp
- src/libraries/box2d/dynamics/b2_edge_polygon_contact.h
- src/libraries/box2d/dynamics/b2_fixture.cpp
- src/libraries/box2d/dynamics/b2_friction_joint.cpp
- src/libraries/box2d/dynamics/b2_gear_joint.cpp
- src/libraries/box2d/dynamics/b2_island.cpp
- src/libraries/box2d/dynamics/b2_island.h
- src/libraries/box2d/dynamics/b2_joint.cpp
- src/libraries/box2d/dynamics/b2_motor_joint.cpp
- src/libraries/box2d/dynamics/b2_mouse_joint.cpp
- src/libraries/box2d/dynamics/b2_polygon_circle_contact.cpp
- src/libraries/box2d/dynamics/b2_polygon_circle_contact.h
- src/libraries/box2d/dynamics/b2_polygon_contact.cpp
- src/libraries/box2d/dynamics/b2_polygon_contact.h
- src/libraries/box2d/dynamics/b2_prismatic_joint.cpp
- src/libraries/box2d/dynamics/b2_pulley_joint.cpp
- src/libraries/box2d/dynamics/b2_revolute_joint.cpp
- src/libraries/box2d/dynamics/b2_weld_joint.cpp
- src/libraries/box2d/dynamics/b2_wheel_joint.cpp
- src/libraries/box2d/dynamics/b2_world.cpp
- src/libraries/box2d/dynamics/b2_world_callbacks.cpp
- src/libraries/box2d/rope/b2_rope.cpp
- )
- love_disable_warnings(love_3p_box2d)
- #
- # ddsparse
- #
- add_library(love_3p_ddsparse
- src/libraries/ddsparse/ddsinfo.h
- src/libraries/ddsparse/ddsparse.cpp
- src/libraries/ddsparse/ddsparse.h
- )
- #
- # dr_flac
- #
- # dr_flac has no implementation files of its own.
- #add_library(love_3p_drflac
- # src/libraries/dr/dr_flac.h
- #)
- #
- # dr_mp3
- #
- # dr_mp3 has no implementation files of its own.
- #add_library(love_3p_drmp3
- # src/libraries/dr/dr_mp3.h
- #)
- #
- # enet
- #
- add_library(love_3p_enet
- src/libraries/enet/enet.cpp
- src/libraries/enet/lua-enet.h
- src/libraries/enet/libenet/callbacks.c
- src/libraries/enet/libenet/compress.c
- src/libraries/enet/libenet/host.c
- src/libraries/enet/libenet/list.c
- src/libraries/enet/libenet/packet.c
- src/libraries/enet/libenet/peer.c
- src/libraries/enet/libenet/protocol.c
- src/libraries/enet/libenet/unix.c
- src/libraries/enet/libenet/win32.c
- src/libraries/enet/libenet/include/enet/enet.h
- src/libraries/enet/libenet/include/enet/list.h
- src/libraries/enet/libenet/include/enet/protocol.h
- src/libraries/enet/libenet/include/enet/time.h
- src/libraries/enet/libenet/include/enet/types.h
- src/libraries/enet/libenet/include/enet/unix.h
- src/libraries/enet/libenet/include/enet/utility.h
- src/libraries/enet/libenet/include/enet/win32.h
- )
- love_disable_warnings(love_3p_enet)
- target_link_libraries(love_3p_enet lovedep::Lua)
- target_include_directories(love_3p_enet PUBLIC src/libraries/enet/libenet/include)
- if(MINGW)
- target_link_libraries(love_3p_enet winmm.a)
- endif()
- #
- # GLAD
- #
- add_library(love_3p_glad
- src/libraries/glad/glad.cpp
- src/libraries/glad/glad.hpp
- src/libraries/glad/gladfuncs.hpp
- )
- #
- # glslang
- #
- add_library(love_3p_glslang
- src/libraries/glslang/glslang/build_info.h
- src/libraries/glslang/glslang/GenericCodeGen/CodeGen.cpp
- src/libraries/glslang/glslang/GenericCodeGen/Link.cpp
- src/libraries/glslang/glslang/Include/arrays.h
- src/libraries/glslang/glslang/Include/BaseTypes.h
- src/libraries/glslang/glslang/Include/Common.h
- src/libraries/glslang/glslang/Include/ConstantUnion.h
- src/libraries/glslang/glslang/Include/InfoSink.h
- src/libraries/glslang/glslang/Include/InitializeGlobals.h
- src/libraries/glslang/glslang/Include/intermediate.h
- src/libraries/glslang/glslang/Include/PoolAlloc.h
- src/libraries/glslang/glslang/Include/ResourceLimits.h
- src/libraries/glslang/glslang/Include/ShHandle.h
- src/libraries/glslang/glslang/Include/SpirvIntrinsics.h
- src/libraries/glslang/glslang/Include/Types.h
- src/libraries/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp
- src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp
- src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp
- src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpContext.h
- src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp
- src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp
- src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpTokens.h
- src/libraries/glslang/glslang/MachineIndependent/attribute.cpp
- src/libraries/glslang/glslang/MachineIndependent/attribute.h
- src/libraries/glslang/glslang/MachineIndependent/Constant.cpp
- src/libraries/glslang/glslang/MachineIndependent/gl_types.h
- src/libraries/glslang/glslang/MachineIndependent/glslang_tab.cpp
- src/libraries/glslang/glslang/MachineIndependent/glslang_tab.cpp.h
- src/libraries/glslang/glslang/MachineIndependent/InfoSink.cpp
- src/libraries/glslang/glslang/MachineIndependent/Initialize.cpp
- src/libraries/glslang/glslang/MachineIndependent/Initialize.h
- src/libraries/glslang/glslang/MachineIndependent/Intermediate.cpp
- src/libraries/glslang/glslang/MachineIndependent/intermOut.cpp
- src/libraries/glslang/glslang/MachineIndependent/IntermTraverse.cpp
- src/libraries/glslang/glslang/MachineIndependent/iomapper.cpp
- src/libraries/glslang/glslang/MachineIndependent/iomapper.h
- src/libraries/glslang/glslang/MachineIndependent/limits.cpp
- src/libraries/glslang/glslang/MachineIndependent/linkValidate.cpp
- src/libraries/glslang/glslang/MachineIndependent/LiveTraverser.h
- src/libraries/glslang/glslang/MachineIndependent/localintermediate.h
- src/libraries/glslang/glslang/MachineIndependent/parseConst.cpp
- src/libraries/glslang/glslang/MachineIndependent/ParseContextBase.cpp
- src/libraries/glslang/glslang/MachineIndependent/ParseHelper.cpp
- src/libraries/glslang/glslang/MachineIndependent/ParseHelper.h
- src/libraries/glslang/glslang/MachineIndependent/parseVersions.h
- src/libraries/glslang/glslang/MachineIndependent/pch.h
- src/libraries/glslang/glslang/MachineIndependent/PoolAlloc.cpp
- src/libraries/glslang/glslang/MachineIndependent/propagateNoContraction.cpp
- src/libraries/glslang/glslang/MachineIndependent/propagateNoContraction.h
- src/libraries/glslang/glslang/MachineIndependent/reflection.cpp
- src/libraries/glslang/glslang/MachineIndependent/reflection.h
- src/libraries/glslang/glslang/MachineIndependent/RemoveTree.cpp
- src/libraries/glslang/glslang/MachineIndependent/RemoveTree.h
- src/libraries/glslang/glslang/MachineIndependent/Scan.cpp
- src/libraries/glslang/glslang/MachineIndependent/Scan.h
- src/libraries/glslang/glslang/MachineIndependent/ScanContext.h
- src/libraries/glslang/glslang/MachineIndependent/ShaderLang.cpp
- src/libraries/glslang/glslang/MachineIndependent/span.h
- src/libraries/glslang/glslang/MachineIndependent/SpirvIntrinsics.cpp
- src/libraries/glslang/glslang/MachineIndependent/SymbolTable.cpp
- src/libraries/glslang/glslang/MachineIndependent/SymbolTable.h
- src/libraries/glslang/glslang/MachineIndependent/Versions.cpp
- src/libraries/glslang/glslang/MachineIndependent/Versions.h
- src/libraries/glslang/glslang/OSDependent/osinclude.h
- src/libraries/glslang/glslang/Public/ResourceLimits.h
- src/libraries/glslang/glslang/Public/ShaderLang.h
- src/libraries/glslang/glslang/ResourceLimits/ResourceLimits.cpp
- src/libraries/glslang/SPIRV/bitutils.h
- src/libraries/glslang/SPIRV/disassemble.cpp
- src/libraries/glslang/SPIRV/disassemble.h
- src/libraries/glslang/SPIRV/doc.cpp
- src/libraries/glslang/SPIRV/doc.h
- src/libraries/glslang/SPIRV/GLSL.ext.AMD.h
- src/libraries/glslang/SPIRV/GLSL.ext.ARM.h
- src/libraries/glslang/SPIRV/GLSL.ext.EXT.h
- src/libraries/glslang/SPIRV/GLSL.ext.KHR.h
- src/libraries/glslang/SPIRV/GLSL.ext.NV.h
- src/libraries/glslang/SPIRV/GLSL.ext.QCOM.h
- src/libraries/glslang/SPIRV/GLSL.std.450.h
- src/libraries/glslang/SPIRV/GlslangToSpv.cpp
- src/libraries/glslang/SPIRV/GlslangToSpv.h
- src/libraries/glslang/SPIRV/hex_float.h
- src/libraries/glslang/SPIRV/InReadableOrder.cpp
- src/libraries/glslang/SPIRV/Logger.cpp
- src/libraries/glslang/SPIRV/Logger.h
- src/libraries/glslang/SPIRV/NonSemanticDebugPrintf.h
- src/libraries/glslang/SPIRV/NonSemanticShaderDebugInfo100.h
- src/libraries/glslang/SPIRV/spirv.hpp
- src/libraries/glslang/SPIRV/SpvBuilder.cpp
- src/libraries/glslang/SPIRV/SpvBuilder.h
- src/libraries/glslang/SPIRV/spvIR.h
- src/libraries/glslang/SPIRV/SpvPostProcess.cpp
- src/libraries/glslang/SPIRV/SPVRemapper.cpp
- src/libraries/glslang/SPIRV/SPVRemapper.h
- src/libraries/glslang/SPIRV/SpvTools.cpp
- src/libraries/glslang/SPIRV/SpvTools.h
- )
- if(MSVC OR MINGW)
- target_sources(love_3p_glslang PRIVATE
- src/libraries/glslang/glslang/OSDependent/Windows/ossource.cpp
- )
- else()
- target_sources(love_3p_glslang PRIVATE
- src/libraries/glslang/glslang/OSDependent/Unix/ossource.cpp
- )
- endif()
- #
- # LodePNG
- #
- add_library(love_3p_lodepng
- src/libraries/lodepng/lodepng.cpp
- src/libraries/lodepng/lodepng.h
- )
- #
- # luasocket
- #
- if(MINGW)
- set(WIN32_LIB_EXT .a)
- else()
- set(WIN32_LIB_EXT .lib)
- endif()
- add_library(love_3p_luasocket
- src/libraries/luasocket/luasocket.cpp
- src/libraries/luasocket/luasocket.h
- src/libraries/luasocket/libluasocket/auxiliar.c
- src/libraries/luasocket/libluasocket/auxiliar.h
- src/libraries/luasocket/libluasocket/buffer.c
- src/libraries/luasocket/libluasocket/buffer.h
- src/libraries/luasocket/libluasocket/compat.c
- src/libraries/luasocket/libluasocket/compat.h
- src/libraries/luasocket/libluasocket/except.c
- src/libraries/luasocket/libluasocket/except.h
- src/libraries/luasocket/libluasocket/ftp.lua.h
- src/libraries/luasocket/libluasocket/headers.lua.h
- src/libraries/luasocket/libluasocket/http.lua.h
- src/libraries/luasocket/libluasocket/inet.c
- src/libraries/luasocket/libluasocket/inet.h
- src/libraries/luasocket/libluasocket/io.c
- src/libraries/luasocket/libluasocket/io.h
- src/libraries/luasocket/libluasocket/ltn12.lua.h
- src/libraries/luasocket/libluasocket/luasocket.c
- src/libraries/luasocket/libluasocket/luasocket.h
- src/libraries/luasocket/libluasocket/mbox.lua.h
- src/libraries/luasocket/libluasocket/mime.c
- src/libraries/luasocket/libluasocket/mime.h
- src/libraries/luasocket/libluasocket/mime.lua.h
- src/libraries/luasocket/libluasocket/options.c
- src/libraries/luasocket/libluasocket/options.h
- src/libraries/luasocket/libluasocket/pierror.h
- src/libraries/luasocket/libluasocket/select.c
- src/libraries/luasocket/libluasocket/select.h
- src/libraries/luasocket/libluasocket/smtp.lua.h
- src/libraries/luasocket/libluasocket/socket.h
- src/libraries/luasocket/libluasocket/socket.lua.h
- src/libraries/luasocket/libluasocket/tcp.c
- src/libraries/luasocket/libluasocket/tcp.h
- src/libraries/luasocket/libluasocket/timeout.c
- src/libraries/luasocket/libluasocket/timeout.h
- src/libraries/luasocket/libluasocket/tp.lua.h
- src/libraries/luasocket/libluasocket/udp.c
- src/libraries/luasocket/libluasocket/udp.h
- src/libraries/luasocket/libluasocket/url.lua.h
- src/libraries/luasocket/libluasocket/unix.c
- src/libraries/luasocket/libluasocket/unix.h
- src/libraries/luasocket/libluasocket/unixdgram.c
- src/libraries/luasocket/libluasocket/unixdgram.h
- src/libraries/luasocket/libluasocket/unixstream.c
- src/libraries/luasocket/libluasocket/unixstream.h
- )
- target_link_libraries(love_3p_luasocket lovedep::Lua)
- love_disable_warnings(love_3p_luasocket)
- if(MSVC OR MINGW)
- target_sources(love_3p_luasocket PRIVATE
- src/libraries/luasocket/libluasocket/wsocket.c
- src/libraries/luasocket/libluasocket/wsocket.h
- )
- target_link_libraries(love_3p_luasocket
- ws2_32${WIN32_LIB_EXT}
- )
- else()
- target_sources(love_3p_luasocket PRIVATE
- src/libraries/luasocket/libluasocket/serial.c
- src/libraries/luasocket/libluasocket/usocket.c
- src/libraries/luasocket/libluasocket/usocket.h
- )
- endif()
- #
- # APIs from Lua 5.3
- #
- add_library(love_3p_lua53
- src/libraries/lua53/lprefix.h
- src/libraries/lua53/lstrlib.c
- src/libraries/lua53/lstrlib.h
- src/libraries/lua53/lutf8lib.c
- src/libraries/lua53/lutf8lib.h
- )
- target_link_libraries(love_3p_lua53 lovedep::Lua)
- #
- # Lua HTTPS
- #
- add_library(love_3p_luahttps
- # These are platform-dependent but have ifdef guards to make sure they only
- # compile on supported platforms.
- src/libraries/luahttps/src/android/AndroidClient.cpp
- src/libraries/luahttps/src/android/AndroidClient.h
- src/libraries/luahttps/src/common/config.h
- src/libraries/luahttps/src/common/Connection.h
- src/libraries/luahttps/src/common/ConnectionClient.h
- src/libraries/luahttps/src/common/HTTPRequest.cpp
- src/libraries/luahttps/src/common/HTTPRequest.h
- src/libraries/luahttps/src/common/HTTPS.cpp
- src/libraries/luahttps/src/common/HTTPS.h
- src/libraries/luahttps/src/common/HTTPSClient.cpp
- src/libraries/luahttps/src/common/HTTPSClient.h
- src/libraries/luahttps/src/common/LibraryLoader.h
- src/libraries/luahttps/src/common/PlaintextConnection.cpp
- src/libraries/luahttps/src/common/PlaintextConnection.h
- src/libraries/luahttps/src/generic/CurlClient.cpp
- src/libraries/luahttps/src/generic/CurlClient.h
- src/libraries/luahttps/src/generic/LinktimeLibraryLoader.cpp
- src/libraries/luahttps/src/generic/OpenSSLConnection.cpp
- src/libraries/luahttps/src/generic/OpenSSLConnection.h
- src/libraries/luahttps/src/generic/UnixLibraryLoader.cpp
- src/libraries/luahttps/src/lua/main.cpp
- src/libraries/luahttps/src/windows/SChannelConnection.cpp
- src/libraries/luahttps/src/windows/SChannelConnection.h
- src/libraries/luahttps/src/windows/WindowsLibraryLoader.cpp
- src/libraries/luahttps/src/windows/WinINetClient.cpp
- src/libraries/luahttps/src/windows/WinINetClient.h
- )
- target_link_libraries(love_3p_luahttps lovedep::Lua)
- if (APPLE)
- target_sources(love_3p_luahttps PRIVATE
- src/libraries/luahttps/src/apple/NSURLClient.mm
- src/libraries/luahttps/src/apple/NSURLClient.h
- )
- target_compile_options(love_3p_luahttps PRIVATE -fobjc-arc)
- endif()
- if(MSVC)
- target_link_libraries(love_3p_luahttps
- ws2_32
- secur32
- )
- if(NOT CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- target_link_libraries(love_3p_luahttps
- wininet
- )
- endif()
- endif()
- #
- # lz4
- #
- add_library(love_3p_lz4
- src/libraries/lz4/lz4.c
- src/libraries/lz4/lz4.h
- src/libraries/lz4/lz4hc.c
- src/libraries/lz4/lz4hc.h
- src/libraries/lz4/lz4opt.h
- )
- #
- # noise1234
- #
- add_library(love_3p_noise1234
- src/libraries/noise1234/noise1234.cpp
- src/libraries/noise1234/noise1234.h
- src/libraries/noise1234/simplexnoise1234.cpp
- src/libraries/noise1234/simplexnoise1234.h
- )
- #
- # physfs
- #
- add_library(love_3p_physfs
- src/libraries/physfs/physfs_archiver_7z.c
- src/libraries/physfs/physfs_archiver_dir.c
- src/libraries/physfs/physfs_archiver_grp.c
- src/libraries/physfs/physfs_archiver_hog.c
- src/libraries/physfs/physfs_archiver_iso9660.c
- src/libraries/physfs/physfs_archiver_mvl.c
- src/libraries/physfs/physfs_archiver_qpak.c
- src/libraries/physfs/physfs_archiver_slb.c
- src/libraries/physfs/physfs_archiver_unpacked.c
- src/libraries/physfs/physfs_archiver_vdf.c
- src/libraries/physfs/physfs_archiver_wad.c
- src/libraries/physfs/physfs_archiver_zip.c
- src/libraries/physfs/physfs_byteorder.c
- src/libraries/physfs/physfs_casefolding.h
- src/libraries/physfs/physfs_internal.h
- src/libraries/physfs/physfs_lzmasdk.h
- src/libraries/physfs/physfs_miniz.h
- src/libraries/physfs/physfs_platform_android.c
- src/libraries/physfs/physfs_platform_haiku.cpp
- src/libraries/physfs/physfs_platform_os2.c
- src/libraries/physfs/physfs_platform_posix.c
- src/libraries/physfs/physfs_platform_qnx.c
- src/libraries/physfs/physfs_platform_unix.c
- src/libraries/physfs/physfs_platform_windows.c
- src/libraries/physfs/physfs_platform_winrt.cpp
- src/libraries/physfs/physfs_platforms.h
- src/libraries/physfs/physfs_unicode.c
- src/libraries/physfs/physfs.c
- src/libraries/physfs/physfs.h
- )
- love_disable_warnings(love_3p_physfs)
- if(APPLE)
- target_sources(love_3p_physfs PRIVATE
- src/libraries/physfs/physfs_platform_apple.m
- )
- target_link_libraries(love_3p_physfs INTERFACE
- "-framework IOKit"
- )
- endif()
- #
- # spirv_cross
- #
- add_library(love_3p_spirv_cross
- src/libraries/spirv_cross/GLSL.std.450.h
- src/libraries/spirv_cross/spirv_cfg.cpp
- src/libraries/spirv_cross/spirv_cfg.hpp
- src/libraries/spirv_cross/spirv_common.hpp
- src/libraries/spirv_cross/spirv_cpp.cpp
- src/libraries/spirv_cross/spirv_cpp.hpp
- src/libraries/spirv_cross/spirv_cross_containers.hpp
- src/libraries/spirv_cross/spirv_cross_error_handling.hpp
- src/libraries/spirv_cross/spirv_cross_parsed_ir.cpp
- src/libraries/spirv_cross/spirv_cross_parsed_ir.hpp
- src/libraries/spirv_cross/spirv_cross_util.cpp
- src/libraries/spirv_cross/spirv_cross_util.hpp
- src/libraries/spirv_cross/spirv_cross.cpp
- src/libraries/spirv_cross/spirv_cross.hpp
- src/libraries/spirv_cross/spirv_glsl.cpp
- src/libraries/spirv_cross/spirv_glsl.hpp
- src/libraries/spirv_cross/spirv_hlsl.cpp
- src/libraries/spirv_cross/spirv_hlsl.hpp
- src/libraries/spirv_cross/spirv_msl.cpp
- src/libraries/spirv_cross/spirv_msl.hpp
- src/libraries/spirv_cross/spirv_parser.cpp
- src/libraries/spirv_cross/spirv_parser.hpp
- src/libraries/spirv_cross/spirv_reflect.cpp
- src/libraries/spirv_cross/spirv_reflect.hpp
- src/libraries/spirv_cross/spirv.hpp
- )
- #
- # stb_image
- #
- # stb_image has no implementation files of its own.
- #add_library(love_3p_stb
- # src/libraries/stb/stb_image.h
- #)
- #
- # tiny exr
- #
- # tinyexr has no implementation files of its own.
- #add_library(love_3p_tinyexr
- # src/libraries/tinyexr/tinyexr.h
- #)
- #
- # utf8
- #
- # This library is all headers ... so there is no need to
- # add_library() here.
- #add_library(love_3p_utf8
- # src/libraries/utf8/utf8.h
- # src/libraries/utf8/utf8/checked.h
- # src/libraries/utf8/utf8/core.h
- # src/libraries/utf8/utf8/unchecked.h
- #)
- #
- # vma
- #
- # vulkan memory allocatory has no implementation files of its own.
- #add_library(love_3p_vma
- # src/libraries/vma/vk_mem_alloc.h
- #)
- #
- # volk
- #
- # since we don't want to use the system vulkan header files we need to
- # compile this library in the löve source code using VOLK_IMPLEMENTATION.
- #add_library(love_3p_volk
- # src/libraries/volk/volk.h
- # src/libraries/volk/volk.c)
- #
- # vulkan headers
- #
- # vulkan headers has no implementation files of its own.
- #add_library(love_3p_vulkan_headers
- # src/libraries/vulkanheaders/vk_icd.h
- # src/libraries/vulkanheaders/vk_layer.h
- # src/libraries/vulkanheaders/vk_platform.h
- # src/libraries/vulkanheaders/vk_sdk-platform.h
- # src/libraries/vulkanheaders/vulkan_android.h
- # src/libraries/vulkanheaders/vulkan_beta.h
- # src/libraries/vulkanheaders/vulkan_core.h
- # src/libraries/vulkanheaders/vulkan_directfb.h
- # src/libraries/vulkanheaders/vulkan_enums.hpp
- # src/libraries/vulkanheaders/vulkan_format_traits.hpp
- # src/libraries/vulkanheaders/vulkan_fuchsia.h
- # src/libraries/vulkanheaders/vulkan_funcs.h
- # src/libraries/vulkanheaders/vulkan_ggp.h
- # src/libraries/vulkanheaders/vulkan_handles.h
- # src/libraries/vulkanheaders/vulkan_hash.hpp
- # src/libraries/vulkanheaders/vulkan_ios.h
- # src/libraries/vulkanheaders/vulkan_macos.h
- # src/libraries/vulkanheaders/vulkan_metal.h
- # src/libraries/vulkanheaders/vulkan_raii.hpp
- # src/libraries/vulkanheaders/vulkan_screen.h
- # src/libraries/vulkanheaders/vulkan_static_assertions.h
- # src/libraries/vulkanheaders/vulkan_structs.hpp
- # src/libraries/vulkanheaders/vulkan_to_string.h
- # src/libraries/vulkanheaders/vulkan_vi.h
- # src/libraries/vulkanheaders/vulkan_wayland.h
- # src/libraries/vulkanheaders/vulkan_win32.h
- # src/libraries/vulkanheaders/vulkan_xcb.h
- # src/libraries/vulkanheaders/vulkan_xlib_xrandr.h
- # src/libraries/vulkanheaders/vulkan_xlib.h
- # src/libraries/vulkanheaders/vulkan.h
- # src/libraries/vulkanheaders/vulkan.hpp
- #)
- #
- # Wuff
- #
- add_library(love_3p_wuff
- src/libraries/Wuff/wuff.c
- src/libraries/Wuff/wuff.h
- src/libraries/Wuff/wuff_config.h
- src/libraries/Wuff/wuff_convert.c
- src/libraries/Wuff/wuff_convert.h
- src/libraries/Wuff/wuff_internal.c
- src/libraries/Wuff/wuff_internal.h
- src/libraries/Wuff/wuff_memory.c
- )
- #
- # xxHash
- #
- add_library(love_3p_xxhash
- src/libraries/xxHash/xxhash.c
- src/libraries/xxHash/xxhash.h
- )
- #
- # liblove
- #
- include_directories(
- BEFORE
- src
- src/libraries
- src/libraries/box2D
- src/modules
- )
- link_directories(${LOVE_LINK_DIRS})
- if(MINGW)
- # UTF-16 flags passed to windres. windres invokes gcc as preprocessor
- # -> gcc outputs utf8, so windres must read-in codepage 65001 (utf8)
- set(CMAKE_RC_FLAGS ${CMAKE_RC_FLAGS} "-c 65001 --preprocessor-arg=-finput-charset=UTF-16LE")
- endif()
- add_library(liblove SHARED
- src/modules/love/love.cpp
- src/modules/love/love.h
- # These are here so they show up in Visual Studio:
- src/modules/love/arg.lua
- src/modules/love/boot.lua
- src/modules/love/callbacks.lua
- src/modules/love/jitsetup.lua
- src/scripts/nogame.lua
- )
- set_target_properties(liblove PROPERTIES
- C_VISIBILITY_PRESET hidden
- CXX_VISIBILITY_PRESET hidden
- VISIBILITY_INLINES_HIDDEN ON
- LIBRARY_OUTPUT_NAME "${LOVE_LIB_NAME}")
- set(LIBLOVE_DEPENDENCIES
- love_common
- love_audio
- love_data
- love_event
- love_filesystem
- love_font
- love_graphics
- love_image
- love_joystick
- love_keyboard
- love_math
- love_mouse
- love_physics
- love_sensor
- love_sound
- love_system
- love_thread
- love_timer
- love_touch
- love_video
- love_window
- )
- set(LIBLOVE_LIBRARIES
- love_3p_box2d
- love_3p_ddsparse
- love_3p_enet
- love_3p_glad
- love_3p_glslang
- love_3p_lodepng
- love_3p_luasocket
- love_3p_lua53
- love_3p_luahttps
- love_3p_lz4
- love_3p_noise1234
- love_3p_physfs
- love_3p_spirv_cross
- love_3p_wuff
- love_3p_xxhash
- )
- target_link_libraries(liblove ${LIBLOVE_DEPENDENCIES} ${LIBLOVE_LIBRARIES})
- if(LOVE_EXTRA_DEPENDECIES)
- add_dependencies(liblove ${LOVE_EXTRA_DEPENDECIES})
- endif()
- #
- # Group projects in Visual Studio
- #
- love_group_projects(NAME "liblove" NESTED TARGETS ${LIBLOVE_DEPENDENCIES})
- love_group_projects(NAME "liblove/libraries" NESTED TARGETS ${LIBLOVE_LIBRARIES})
- love_group_projects(NAME "liblove" TARGETS liblove ${LOVE_EXTRA_DEPENDECIES})
- love_group_projects(NAME "lovedep" TARGETS lovedep::SDL2 lovedep::Freetype lovedep::Harfbuzz lovedep::OpenAL lovedep::Modplug lovedep::Theora lovedep::Vorbis lovedep::Ogg lovedep::Zlib lovedep::Lua)
- love_group_projects(NAME "lovedep" TARGETS lua51 alcommon al-excommon harfbuzz-subset zlib)
- if(MSVC)
- set_target_properties(liblove PROPERTIES RELEASE_OUTPUT_NAME "love" PDB_NAME "liblove" IMPORT_PREFIX "lib")
- set_target_properties(liblove PROPERTIES DEBUG_OUTPUT_NAME "love" PDB_NAME "liblove" IMPORT_PREFIX "lib")
- endif()
- if(MSVC OR MINGW)
- target_link_libraries(liblove
- ws2_32${WIN32_LIB_EXT}
- winmm${WIN32_LIB_EXT}
- dwmapi${WIN32_LIB_EXT}
- )
- target_sources(liblove PUBLIC
- extra/windows/love.rc
- extra/windows/love.ico
- )
- endif()
- #
- # love (executable)
- #
- if(ANDROID)
- add_library(love SHARED) # On Android, the LOVE main entrypoint needs to be compiled as shared library
- target_link_libraries(liblove android)
- else()
- add_executable(love WIN32)
- endif()
- target_sources(love PRIVATE src/love.cpp)
- target_link_libraries(love liblove)
- set_target_properties(love PROPERTIES
- C_VISIBILITY_PRESET hidden
- CXX_VISIBILITY_PRESET hidden
- VISIBILITY_INLINES_HIDDEN ON
- OUTPUT_NAME ${LOVE_EXE_NAME})
- if(MSVC OR MINGW)
- add_executable(lovec src/love.cpp)
- target_link_libraries(lovec liblove)
- set_target_properties(lovec PROPERTIES
- OUTPUT_NAME ${LOVE_CONSOLE_EXE_NAME})
- endif()
- function(post_step_move_dll ARG_POST_TARGET ARG_TARGET_OR_FILE)
- if(TARGET ${ARG_TARGET_OR_FILE})
- add_custom_command(TARGET ${ARG_POST_TARGET} POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy
- $<TARGET_FILE:${ARG_TARGET_OR_FILE}>
- ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/$<TARGET_FILE_NAME:${ARG_TARGET_OR_FILE}>)
- else()
- get_filename_component(TEMP_FILENAME ${ARG_TARGET_OR_FILE} NAME)
- add_custom_command(TARGET ${ARG_POST_TARGET} POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy
- ${ARG_TARGET_OR_FILE}
- ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/${TEMP_FILENAME})
- endif()
- endfunction()
- # Add post build steps to move the DLLs next to the binary. Otherwise
- # running/debugging the binary will not work from inside VS.
- if(LOVE_MOVE_DLLS)
- foreach(DLL ${LOVE_MOVE_DLLS})
- post_step_move_dll(love ${DLL})
- endforeach()
- endif()
- if("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
- ###################################
- # CPack
- ###################################
- install(TARGETS love lovec liblove RUNTIME DESTINATION .)
- # Our install script (and NSIS) doesn't fully support Windows ARM64 yet.
- if(MEGA_ARM64)
- set(CPACK_GENERATOR ZIP)
- set(CPACK_SYSTEM_NAME woa64)
- else()
- set(CPACK_GENERATOR ZIP NSIS)
- endif()
- # Extra DLLs.
- if(LOVE_EXTRA_DLLS)
- foreach(DLL ${LOVE_EXTRA_DLLS})
- get_filename_component(DLL_NAME ${DLL} NAME)
- message(STATUS "Extra DLL: ${DLL_NAME}")
- endforeach()
- install(FILES ${LOVE_EXTRA_DLLS} DESTINATION .)
- endif()
- # Dynamic runtime libs.
- if(LOVE_MSVC_DLLS)
- foreach(DLL ${LOVE_MSVC_DLLS})
- get_filename_component(DLL_NAME ${DLL} NAME)
- message(STATUS "Runtime DLL: ${DLL_NAME}")
- endforeach()
- install(FILES ${LOVE_MSVC_DLLS} DESTINATION .)
- endif()
- # Copy a text file from CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_BINARY_DIR.
- # On Windows, this function will convert line endings to CR,LF.
- function(copy_text_file ARG_FILE_IN ARG_FILE_OUT)
- file(READ ${CMAKE_CURRENT_SOURCE_DIR}/${ARG_FILE_IN} TMP_TXT_CONTENTS)
- file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${ARG_FILE_OUT} ${TMP_TXT_CONTENTS})
- endfunction()
- # Text files.
- copy_text_file(readme.md readme.txt)
- copy_text_file(license.txt license.txt)
- copy_text_file(changes.txt changes.txt)
- install(FILES
- ${CMAKE_CURRENT_BINARY_DIR}/changes.txt
- ${CMAKE_CURRENT_BINARY_DIR}/license.txt
- ${CMAKE_CURRENT_BINARY_DIR}/readme.txt
- DESTINATION .)
- # Icons
- install(FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis/love.ico
- ${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis/game.ico
- DESTINATION .)
- set(CPACK_PACKAGE_NAME "love")
- set(CPACK_PACKAGE_VENDOR "love2d.org")
- set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LOVE -- It's awesome")
- set(CPACK_PACKAGE_VERSION "${LOVE_VERSION_STR}")
- set(CPACK_PACKAGE_VERSION_MAJOR "${LOVE_VERSION_MAJOR}")
- set(CPACK_PACKAGE_VERSION_MINOR "${LOVE_VERSION_MINOR}")
- set(CPACK_PACKAGE_VERSION_PATCH "${LOVE_VERSION_REV}")
- set(CPACK_PACKAGE_INSTALL_DIRECTORY "LOVE")
- set(CPACK_PACKAGE_EXECUTABLES "${LOVE_EXE_NAME};LOVE")
- set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/readme.md")
- set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/license.txt")
- set(CPACK_NSIS_EXECUTABLES_DIRECTORY .)
- set(CPACK_NSIS_PACKAGE_NAME "LOVE")
- set(CPACK_NSIS_DISPLAY_NAME "LOVE ${LOVE_VERSION_STR}")
- set(CPACK_NSIS_MODIFY_PATH ON)
- if(LOVE_X64)
- set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
- else()
- set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
- endif()
- set(CPACK_NSIS_MENU_LINKS "http://love2d.org/wiki" "Documentation")
- # Some bug somewhere in NSIS requires "\\\\" somewhere in the path,
- # according to The Internet. (And sure enough, it does not work
- # without it).
- set(NSIS_LEFT_BMP "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\left.bmp")
- set(NSIS_TOP_BMP "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\top.bmp")
- set(NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
- set(NSIS_MUI_UNICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
- set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "
- !define MUI_WELCOMEPAGE_TITLE \\\"LOVE ${LOVE_VERSION_STR} Setup\\\"
- !define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${NSIS_LEFT_BMP}\\\"
- !define MUI_HEADERIMAGE_BITMAP \\\"${NSIS_TOP_BMP}\\\"
- !define MUI_ICON \\\"${NSIS_MUI_ICON}\\\"
- !define MUI_UNICON \\\"${NSIS_MUI_UNICON}\\\"
- ")
- set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
- WriteRegStr HKCR \\\".love\\\" \\\"\\\" \\\"LOVE\\\"
- WriteRegStr HKCR \\\"LOVE\\\" \\\"\\\" \\\"LOVE Game File\\\"
- WriteRegStr HKCR \\\"LOVE\\\\DefaultIcon\\\" \\\"\\\" \\\"$INSTDIR\\\\game.ico\\\"
- WriteRegStr HKCR \\\"LOVE\\\\shell\\\" \\\"\\\" \\\"open\\\"
- WriteRegStr HKCR \\\"LOVE\\\\shell\\\\open\\\" \\\"\\\" \\\"Open in LOVE\\\"
- WriteRegStr HKCR \\\"LOVE\\\\shell\\\\open\\\\command\\\" \\\"\\\" \\\"$INSTDIR\\\\love.exe $\\\\\\\"%1$\\\\\\\"\\\"
- System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
- ")
- set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
- DeleteRegKey HKCR \\\"LOVE\\\"
- DeleteRegKey HKCR \\\".love\\\"
- System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
- ")
- include(CPack)
- elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
- include(GNUInstallDirs)
- string(TIMESTAMP LOVE_CONFIGURE_TIMESTAMP "%a, %d %b %Y %H:%M:%S +0000" UTC)
- file(COPY platform/unix/debian/ DESTINATION debian PATTERN "*.in" EXCLUDE)
- configure_file(platform/unix/debian/control.in debian/control @ONLY)
- configure_file(platform/unix/debian/changelog.in debian/changelog @ONLY)
- configure_file(platform/unix/debian/rules.in debian/rules @ONLY)
- configure_file(platform/unix/love.desktop.in love.desktop @ONLY)
- install(TARGETS love liblove)
- install(FILES platform/unix/love.6
- DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
- RENAME love.1)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/love.desktop
- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
- install(FILES platform/unix/love.xml
- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/mime/packages)
- install(FILES platform/unix/love.svg
- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps)
- install(FILES platform/unix/application-x-love-game.svg
- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/mimetypes)
- endif()
|