mirror of
https://github.com/love2d/love.git
synced 2026-08-20 04:30:09 +02:00
CMake: Support LuaJIT.
This commit is contained in:
+62
-4
@@ -45,10 +45,29 @@ else()
|
|||||||
set(LOVE_TARGET_PLATFORM x86)
|
set(LOVE_TARGET_PLATFORM x86)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
option(LOVE_JIT "Use LuaJIT" TRUE)
|
||||||
|
|
||||||
|
if(LOVE_JIT)
|
||||||
|
message(STATUS "LuaJIT: Enabled")
|
||||||
|
else()
|
||||||
|
message(STATUS "LuaJIT: Disabled")
|
||||||
|
endif()
|
||||||
|
|
||||||
message(STATUS "Target platform: ${LOVE_TARGET_PLATFORM}")
|
message(STATUS "Target platform: ${LOVE_TARGET_PLATFORM}")
|
||||||
|
|
||||||
find_package(OpenGL)
|
find_package(OpenGL)
|
||||||
|
|
||||||
|
if(${LOVE_JIT})
|
||||||
|
set(MEGA_LUA ${MEGA_LUAJIT_LIB})
|
||||||
|
set(MEGA_EXTRA_INCLUDE ${MEGA_LUAJIT_INCLUDE})
|
||||||
|
set(MEGA_EXTRA_DLLS ${MEGA_LUAJIT_DLL})
|
||||||
|
set(MEGA_EXTRA_DEPENDECIES luajit)
|
||||||
|
else()
|
||||||
|
set(MEGA_LUA ${MEGA_LUA51})
|
||||||
|
# MEGA_LUA51 is a CMake target, so includes are handled
|
||||||
|
# automatically.
|
||||||
|
endif()
|
||||||
|
|
||||||
#
|
#
|
||||||
# common
|
# common
|
||||||
#
|
#
|
||||||
@@ -904,7 +923,7 @@ set(LOVE_SRC_3P_ENET
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_library(love_3p_enet ${LOVE_SRC_3P_ENET})
|
add_library(love_3p_enet ${LOVE_SRC_3P_ENET})
|
||||||
target_link_libraries(love_3p_enet ${MEGA_LUA51})
|
target_link_libraries(love_3p_enet ${MEGA_LUA})
|
||||||
target_include_directories(love_3p_enet PUBLIC src/libraries/enet/libenet/include)
|
target_include_directories(love_3p_enet PUBLIC src/libraries/enet/libenet/include)
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -967,7 +986,7 @@ set(LOVE_SRC_3P_LUASOCKET
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_library(love_3p_luasocket ${LOVE_SRC_3P_LUASOCKET})
|
add_library(love_3p_luasocket ${LOVE_SRC_3P_LUASOCKET})
|
||||||
target_link_libraries(love_3p_luasocket ${MEGA_LUA51})
|
target_link_libraries(love_3p_luasocket ${MEGA_LUA})
|
||||||
|
|
||||||
#
|
#
|
||||||
# noise1234
|
# noise1234
|
||||||
@@ -1057,15 +1076,36 @@ include_directories(
|
|||||||
src
|
src
|
||||||
src/libraries
|
src/libraries
|
||||||
src/modules
|
src/modules
|
||||||
|
${MEGA_EXTRA_INCLUDE}
|
||||||
)
|
)
|
||||||
|
|
||||||
# SDL2 links with some DirectX libraries, and we apparently also
|
# SDL2 links with some DirectX libraries, and we apparently also
|
||||||
# pull those libraries in for linkage because we link with SDL2.
|
# pull those libraries in for linkage because we link with SDL2.
|
||||||
link_directories(${SDL_LINK_DIR})
|
link_directories(${SDL_LINK_DIR})
|
||||||
|
|
||||||
|
set(LOVE_MEGA_3P
|
||||||
|
${MEGA_DEVIL}
|
||||||
|
${MEGA_FREETYPE}
|
||||||
|
${MEGA_JASPER}
|
||||||
|
${MEGA_JPEG}
|
||||||
|
${MEGA_LIBOGG}
|
||||||
|
${MEGA_LIBPNG}
|
||||||
|
${MEGA_LIBVORBISFILE}
|
||||||
|
${MEGA_LIBVORBIS}
|
||||||
|
${MEGA_LUA}
|
||||||
|
${MEGA_MODPLUG}
|
||||||
|
${MEGA_MPEG123}
|
||||||
|
${MEGA_OPENAL}
|
||||||
|
${MEGA_PHYSFS}
|
||||||
|
${MEGA_SDL2MAIN}
|
||||||
|
${MEGA_SDL2}
|
||||||
|
${MEGA_TIFF}
|
||||||
|
${MEGA_ZLIB}
|
||||||
|
)
|
||||||
|
|
||||||
set(LOVE_LINK_LIBRARIES
|
set(LOVE_LINK_LIBRARIES
|
||||||
${OPENGL_gl_LIBRARY}
|
${OPENGL_gl_LIBRARY}
|
||||||
${MEGA_3P}
|
${LOVE_MEGA_3P}
|
||||||
)
|
)
|
||||||
|
|
||||||
set(LOVE_RC)
|
set(LOVE_RC)
|
||||||
@@ -1085,6 +1125,10 @@ endif()
|
|||||||
add_library(${LOVE_LIB_NAME} SHARED ${LOVE_LIB_SRC} ${LOVE_RC})
|
add_library(${LOVE_LIB_NAME} SHARED ${LOVE_LIB_SRC} ${LOVE_RC})
|
||||||
target_link_libraries(liblove ${LOVE_LINK_LIBRARIES} ${LOVE_3P})
|
target_link_libraries(liblove ${LOVE_LINK_LIBRARIES} ${LOVE_3P})
|
||||||
|
|
||||||
|
if(MEGA_EXTRA_DEPENDECIES)
|
||||||
|
add_dependencies(${LOVE_LIB_NAME} ${MEGA_EXTRA_DEPENDECIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set_target_properties(${LOVE_LIB_NAME} PROPERTIES RELEASE_OUTPUT_NAME "love")
|
set_target_properties(${LOVE_LIB_NAME} PROPERTIES RELEASE_OUTPUT_NAME "love")
|
||||||
set_target_properties(${LOVE_LIB_NAME} PROPERTIES DEBUG_OUTPUT_NAME "love")
|
set_target_properties(${LOVE_LIB_NAME} PROPERTIES DEBUG_OUTPUT_NAME "love")
|
||||||
@@ -1102,7 +1146,12 @@ add_move_dll(love ${MEGA_MPEG123})
|
|||||||
add_move_dll(love ${MEGA_SDL2})
|
add_move_dll(love ${MEGA_SDL2})
|
||||||
add_move_dll(love ${MEGA_OPENAL})
|
add_move_dll(love ${MEGA_OPENAL})
|
||||||
add_move_dll(love ${MEGA_DEVIL})
|
add_move_dll(love ${MEGA_DEVIL})
|
||||||
add_move_dll(love ${MEGA_LUA51})
|
|
||||||
|
if(LOVE_JIT)
|
||||||
|
add_move_file(love ${MEGA_LUAJIT_DLL})
|
||||||
|
else()
|
||||||
|
add_move_dll(love ${MEGA_LUA51})
|
||||||
|
endif()
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
# Version
|
# Version
|
||||||
@@ -1131,6 +1180,15 @@ message(STATUS "Version: ${LOVE_VERSION_STR}")
|
|||||||
###################################
|
###################################
|
||||||
install(TARGETS love ${LOVE_LIB_NAME} RUNTIME DESTINATION .)
|
install(TARGETS love ${LOVE_LIB_NAME} RUNTIME DESTINATION .)
|
||||||
|
|
||||||
|
# Extra DLLs.
|
||||||
|
if(MEGA_EXTRA_DLLS)
|
||||||
|
foreach(DLL ${MEGA_EXTRA_DLLS})
|
||||||
|
get_filename_component(DLL_NAME ${DLL} NAME)
|
||||||
|
message(STATUS "Extra DLL: ${DLL_NAME}")
|
||||||
|
endforeach()
|
||||||
|
install(FILES ${MEGA_EXTRA_DLLS} DESTINATION .)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Dynamic runtime libs.
|
# Dynamic runtime libs.
|
||||||
if(MEGA_MSVC_DLLS)
|
if(MEGA_MSVC_DLLS)
|
||||||
foreach(DLL ${MEGA_MSVC_DLLS})
|
foreach(DLL ${MEGA_MSVC_DLLS})
|
||||||
|
|||||||
Reference in New Issue
Block a user