aboutsummaryrefslogtreecommitdiff
path: root/third-party/cmake/BuildLuajit.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'third-party/cmake/BuildLuajit.cmake')
-rw-r--r--third-party/cmake/BuildLuajit.cmake51
1 files changed, 51 insertions, 0 deletions
diff --git a/third-party/cmake/BuildLuajit.cmake b/third-party/cmake/BuildLuajit.cmake
index 9c0a6cfba2..e02d7fe609 100644
--- a/third-party/cmake/BuildLuajit.cmake
+++ b/third-party/cmake/BuildLuajit.cmake
@@ -76,6 +76,57 @@ if(UNIX)
CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR}
${DEPLOYMENT_TARGET})
+elseif(MINGW AND CMAKE_CROSSCOMPILING)
+
+ # Build luajit for the host
+ BuildLuaJit(TARGET luajit_host
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ${INSTALLCMD_UNIX}
+ CC=${HOST_C_COMPILER} PREFIX=${HOSTDEPS_INSTALL_DIR})
+
+ # Build luajit for the target
+ BuildLuaJit(
+ # Similar to Unix + cross - fPIC
+ INSTALL_COMMAND
+ ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR}
+ BUILDMODE=static install
+ TARGET_SYS=${CMAKE_SYSTEM_NAME}
+ CROSS=${CROSS_TARGET}-
+ HOST_CC=${HOST_C_COMPILER} HOST_CFLAGS=${HOST_C_FLAGS}
+ HOST_LDFLAGS=${HOST_EXE_LINKER_FLAGS}
+ FILE_T=luajit.exe
+ Q=
+ INSTALL_TSYMNAME=luajit.exe)
+
+elseif(MINGW)
+
+ if(CMAKE_GENERATOR MATCHES "Ninja")
+ set(LUAJIT_MAKE_PRG ${MAKE_PRG})
+ else()
+ set(LUAJIT_MAKE_PRG ${CMAKE_MAKE_PROGRAM})
+ endif()
+ BuildLuaJit(BUILD_COMMAND ${LUAJIT_MAKE_PRG} CC=${DEPS_C_COMPILER}
+ PREFIX=${DEPS_INSTALL_DIR}
+ CFLAGS+=-DLUA_USE_APICHECK
+ CFLAGS+=-funwind-tables
+ CCDEBUG+=-g
+ BUILDMODE=static
+ # Build a DLL too
+ COMMAND ${LUAJIT_MAKE_PRG} CC=${DEPS_C_COMPILER} BUILDMODE=dynamic
+
+ INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin
+ COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/luajit.exe ${DEPS_INSTALL_DIR}/bin
+ COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_INSTALL_DIR}/bin
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/lib
+ # Luarocks searches for lua51.dll in lib
+ COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_INSTALL_DIR}/lib
+ COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/libluajit.a ${DEPS_INSTALL_DIR}/lib
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/include/luajit-2.1
+ COMMAND ${CMAKE_COMMAND} -DFROM_GLOB=${DEPS_BUILD_DIR}/src/luajit/src/*.h -DTO=${DEPS_INSTALL_DIR}/include/luajit-2.1 -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/CopyFilesGlob.cmake
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin/lua/jit
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPS_BUILD_DIR}/src/luajit/src/jit ${DEPS_INSTALL_DIR}/bin/lua/jit
+ )
elseif(MSVC)
BuildLuaJit(