diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b78ea7c..07eb8fda 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -201,7 +201,7 @@ endif() set(MEGA_ZLIB_VER "1.2.11") set(MEGA_LUA51_VER "5.1.5") -set(MEGA_LUAJIT_VER "2.1.0-1d8b747") +set(MEGA_LUAJIT_VER "2.1.0-ec6edc5") set(MEGA_LIBOGG_VER "1.3.2") set(MEGA_LIBVORBIS_VER "1.3.5") set(MEGA_LIBTHEORA_VER "1.1.1") @@ -316,7 +316,21 @@ if(MSVC AND NOT MEGA_ARM64) set(MEGA_LUAJIT_LIB ${CMAKE_BINARY_DIR}/bin/lua51.lib) set(MEGA_LUAJIT_DLL ${CMAKE_BINARY_DIR}/bin/lua51.dll) set(MEGA_LUAJIT_INCLUDE ${MEGA_LUAJIT_SOURCE_DIR}/src) +elseif(ANDROID) + # LuaJIT is prebuilt in Android + message(STATUS "-----------------------------------------------------") + message(STATUS "Configuring: LuaJIT ${MEGA_LUAJIT_VER}") + message(STATUS "-----------------------------------------------------") + set(MEGA_LUAJIT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libs/LuaJIT") + add_library(luajit IMPORTED STATIC) + set_target_properties(luajit PROPERTIES + IMPORTED_LOCATION ${MEGA_LUAJIT_DIR}/android/${ANDROID_ABI}/libluajit.a + INCLUDE_DIRECTORIES ${MEGA_LUAJIT_DIR}/src + ) + set(MEGA_LUAJIT_LIB ${MEGA_LUAJIT_DIR}/android/${ANDROID_ABI}/libluajit.a) + set(MEGA_LUAJIT_DLL) + set(MEGA_LUAJIT_INCLUDE ${MEGA_LUAJIT_DIR}/src) endif() set(MEGA_3P diff --git a/libs/LuaJIT/COPYRIGHT b/libs/LuaJIT/COPYRIGHT index e2f2cef8..9c2bca55 100644 --- a/libs/LuaJIT/COPYRIGHT +++ b/libs/LuaJIT/COPYRIGHT @@ -1,7 +1,7 @@ =============================================================================== LuaJIT -- a Just-In-Time Compiler for Lua. https://luajit.org/ -Copyright (C) 2005-2020 Mike Pall. All rights reserved. +Copyright (C) 2005-2021 Mike Pall. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/libs/LuaJIT/Makefile b/libs/LuaJIT/Makefile index 45d9f968..aa1b84bd 100644 --- a/libs/LuaJIT/Makefile +++ b/libs/LuaJIT/Makefile @@ -10,7 +10,7 @@ # For MSVC, please follow the instructions given in src/msvcbuild.bat. # For MinGW and Cygwin, cd to src and run make with the Makefile there. # -# Copyright (C) 2005-2020 Mike Pall. See Copyright Notice in luajit.h +# Copyright (C) 2005-2021 Mike Pall. See Copyright Notice in luajit.h ############################################################################## MAJVER= 2 diff --git a/libs/LuaJIT/README b/libs/LuaJIT/README index 5bf36b6d..c9f7d9ad 100644 --- a/libs/LuaJIT/README +++ b/libs/LuaJIT/README @@ -5,7 +5,7 @@ LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language. Project Homepage: https://luajit.org/ -LuaJIT is Copyright (C) 2005-2020 Mike Pall. +LuaJIT is Copyright (C) 2005-2021 Mike Pall. LuaJIT is free software, released under the MIT license. See full Copyright Notice in the COPYRIGHT file or in luajit.h. diff --git a/libs/LuaJIT/android/arm64-v8a/libluajit.a b/libs/LuaJIT/android/arm64-v8a/libluajit.a new file mode 100644 index 00000000..9428fc31 Binary files /dev/null and b/libs/LuaJIT/android/arm64-v8a/libluajit.a differ diff --git a/libs/LuaJIT/android/armeabi-v7a/libluajit.a b/libs/LuaJIT/android/armeabi-v7a/libluajit.a new file mode 100644 index 00000000..0114cff9 Binary files /dev/null and b/libs/LuaJIT/android/armeabi-v7a/libluajit.a differ diff --git a/libs/LuaJIT/android/x86/libluajit.a b/libs/LuaJIT/android/x86/libluajit.a new file mode 100644 index 00000000..d41b7e45 Binary files /dev/null and b/libs/LuaJIT/android/x86/libluajit.a differ diff --git a/libs/LuaJIT/android/x86_64/libluajit.a b/libs/LuaJIT/android/x86_64/libluajit.a new file mode 100644 index 00000000..2b687026 Binary files /dev/null and b/libs/LuaJIT/android/x86_64/libluajit.a differ diff --git a/libs/LuaJIT/android_build_readme.bat b/libs/LuaJIT/android_build_readme.bat new file mode 100644 index 00000000..c2a6385e --- /dev/null +++ b/libs/LuaJIT/android_build_readme.bat @@ -0,0 +1,110 @@ +rem Build script assume using WSL + Clang for Windows (with MSVC x86+x64 toolset for -m32 switch) +rem This assume NDK r19 or later. See https://github.com/LuaJIT/LuaJIT/issues/477 for more information. +rem Setting this up for MSYS/MinGW-w64 should be possible but WSL is easier to setup. + +rem Make sure LuaJIT and the prebuilt is already in your PATH environment variable. +rem If you're confused which one should be added your path: +rem \toolchains\llvm\prebuilt\windows-x86_64\bin + +rem Once all environment variable is set, simply run this script with Command Prompt. + +mkdir android\arm64-v8a +mkdir android\armeabi-v7a +mkdir android\x86 +mkdir android\x86_64 + +rem Reset error level +type nul + +rem ARMv8 +echo Where aarch64-linux-android21-clang? +where aarch64-linux-android21-clang +if errorlevel 1 goto :error +if not exist android\arm64-v8a\libluajit.a ( + wsl make clean + if errorlevel 1 goto :error + wsl make HOST_LUA=luajit.exe HOST_CC=clang.exe HOST_CFLAGS=-D_CRT_SECURE_NO_WARNINGS CC=clang ^ + CROSS=aarch64-linux-android- ^ + "STATIC_CC=aarch64-linux-android21-clang -fPIC" ^ + "DYNAMIC_CC=aarch64-linux-android21-clang -fuse-ld=lld -fPIC" ^ + "TARGET_AR=aarch64-linux-android-ar.exe rcus" ^ + TARGET_LD=aarch64-linux-android21-clang ^ + TARGET_STRIP=aarch64-linux-android-strip.exe amalg -j4 + if errorlevel 1 goto :error + copy src\libluajit.a android\arm64-v8a\libluajit.a + if errorlevel 1 goto :error + copy src\libluajit.so android\arm64-v8a\libluajit.so + if errorlevel 1 goto :error +) + +rem ARMv7 +echo Where armv7a-linux-androideabi16-clang? +where armv7a-linux-androideabi16-clang +if errorlevel 1 goto :error +if not exist android\armeabi-v7a\libluajit.a ( + wsl make clean + if errorlevel 1 goto :error + wsl make HOST_LUA=luajit.exe "HOST_CC=clang.exe -m32" HOST_CFLAGS=-D_CRT_SECURE_NO_WARNINGS CC=clang ^ + CROSS=arm-linux-android- ^ + "STATIC_CC=armv7a-linux-androideabi16-clang -fPIC" ^ + "DYNAMIC_CC=armv7a-linux-androideabi16-clang -fuse-ld=lld -fPIC" ^ + "TARGET_AR=arm-linux-androideabi-ar.exe rcus" ^ + TARGET_LD=armv7a-linux-androideabi16-clang ^ + TARGET_STRIP=arm-linux-androideabi-strip.exe amalg -j4 + if errorlevel 1 goto :error + copy src\libluajit.a android\armeabi-v7a\libluajit.a + if errorlevel 1 goto :error + copy src\libluajit.so android\armeabi-v7a\libluajit.so + if errorlevel 1 goto :error +) + +rem x86 +echo Where i686-linux-android16-clang? +where i686-linux-android16-clang +if errorlevel 1 goto :error +if not exist android\x86\libluajit.a ( + wsl make clean + if errorlevel 1 goto :error + wsl make HOST_LUA=luajit.exe "HOST_CC=clang.exe -m32" HOST_CFLAGS=-D_CRT_SECURE_NO_WARNINGS CC=clang ^ + CROSS=i686-linux-android- ^ + "STATIC_CC=i686-linux-android16-clang -fPIC" ^ + "DYNAMIC_CC=i686-linux-android16-clang -fuse-ld=lld -fPIC" ^ + "TARGET_AR=i686-linux-android-ar.exe rcus" ^ + TARGET_LD=i686-linux-android16-clang ^ + TARGET_STRIP=i686-linux-android-strip.exe amalg -j4 + if errorlevel 1 goto :error + copy src\libluajit.a android\x86\libluajit.a + if errorlevel 1 goto :error + copy src\libluajit.so android\x86\libluajit.so + if errorlevel 1 goto :error +) + +rem x86_64 +echo Where x86_64-linux-android21-clang? +where x86_64-linux-android21-clang +if errorlevel 1 goto :error +if not exist android\x86_64\libluajit.a ( + wsl make clean + if errorlevel 1 goto :error + wsl make HOST_LUA=luajit.exe HOST_CC=clang.exe HOST_CFLAGS=-D_CRT_SECURE_NO_WARNINGS CC=clang ^ + CROSS=x86_64-linux-android- ^ + "STATIC_CC=x86_64-linux-android21-clang -fPIC" ^ + "DYNAMIC_CC=x86_64-linux-android21-clang -fuse-ld=lld -fPIC" ^ + "TARGET_AR=x86_64-linux-android-ar.exe rcus" ^ + TARGET_LD=x86_64-linux-android21-clang ^ + TARGET_STRIP=x86_64-linux-android-strip.exe amalg -j4 + if errorlevel 1 goto :error + copy src\libluajit.a android\x86_64\libluajit.a + if errorlevel 1 goto :error + copy src\libluajit.so android\x86_64\libluajit.so + if errorlevel 1 goto :error +) + +goto :done + +:error +exit /b 1 + +:done +wsl make clean +exit /b 0 diff --git a/libs/LuaJIT/doc/bluequad-print.css b/libs/LuaJIT/doc/bluequad-print.css index 13ee876f..0b385cee 100644 --- a/libs/LuaJIT/doc/bluequad-print.css +++ b/libs/LuaJIT/doc/bluequad-print.css @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2020 Mike Pall. +/* Copyright (C) 2004-2021 Mike Pall. * * You are welcome to use the general ideas of this design for your own sites. * But please do not steal the stylesheet, the layout or the color scheme. diff --git a/libs/LuaJIT/doc/bluequad.css b/libs/LuaJIT/doc/bluequad.css index 978719e8..86cd9ac0 100644 --- a/libs/LuaJIT/doc/bluequad.css +++ b/libs/LuaJIT/doc/bluequad.css @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2020 Mike Pall. +/* Copyright (C) 2004-2021 Mike Pall. * * You are welcome to use the general ideas of this design for your own sites. * But please do not steal the stylesheet, the layout or the color scheme. diff --git a/libs/LuaJIT/doc/contact.html b/libs/LuaJIT/doc/contact.html index c2f34283..0c775f98 100644 --- a/libs/LuaJIT/doc/contact.html +++ b/libs/LuaJIT/doc/contact.html @@ -3,7 +3,7 @@ Contact - + @@ -87,7 +87,7 @@ xD("fyZKB8xv\"FJytmz8.KAB0u52D")

Copyright

All documentation is -Copyright © 2005-2020 Mike Pall. +Copyright © 2005-2021 Mike Pall.

@@ -95,7 +95,7 @@ Copyright © 2005-2020 Mike Pall.