|
@@ -22,30 +22,26 @@
|
|
|
|
|
|
|
|
# Macro for finding a substring
|
|
# Macro for finding a substring
|
|
|
macro (find_string find_regex input_string output_string)
|
|
macro (find_string find_regex input_string output_string)
|
|
|
- if (NOT DEFINED ${output_string}${ARGN})
|
|
|
|
|
- message (STATUS "Finding value for LuaJIT:${output_string}${ARGN}")
|
|
|
|
|
|
|
+ if (NOT DEFINED ${output_string})
|
|
|
|
|
+ message (STATUS "Finding value for LuaJIT:${output_string}")
|
|
|
string (REGEX MATCH ${find_regex} matched ${input_string})
|
|
string (REGEX MATCH ${find_regex} matched ${input_string})
|
|
|
if (matched)
|
|
if (matched)
|
|
|
string (REGEX MATCH "\\(.*\\)" captured ${find_regex})
|
|
string (REGEX MATCH "\\(.*\\)" captured ${find_regex})
|
|
|
if (captured)
|
|
if (captured)
|
|
|
string (REGEX REPLACE ${find_regex} \\1 matched ${matched})
|
|
string (REGEX REPLACE ${find_regex} \\1 matched ${matched})
|
|
|
endif ()
|
|
endif ()
|
|
|
- set (${output_string}${ARGN} ${matched} CACHE INTERNAL "LUAJIT INTERNAL - ${output_string}${ARGN}")
|
|
|
|
|
- message (STATUS "Finding value for LuaJIT:${output_string}${ARGN} - found (${matched})")
|
|
|
|
|
|
|
+ set (${output_string} ${matched} CACHE INTERNAL "LUAJIT INTERNAL - ${output_string}")
|
|
|
|
|
+ message (STATUS "Finding value for LuaJIT:${output_string} - found (${matched})")
|
|
|
else ()
|
|
else ()
|
|
|
- set (${output_string}${ARGN} 0 CACHE INTERNAL "LUAJIT INTERNAL - ${output_string}${ARGN}")
|
|
|
|
|
|
|
+ set (${output_string} 0 CACHE INTERNAL "LUAJIT INTERNAL - ${output_string}")
|
|
|
endif ()
|
|
endif ()
|
|
|
endif ()
|
|
endif ()
|
|
|
- if (${ARGC} EQUAL 4)
|
|
|
|
|
- list (GET ${output_string}${ARGN} 0 ${output_string})
|
|
|
|
|
- endif ()
|
|
|
|
|
endmacro ()
|
|
endmacro ()
|
|
|
|
|
|
|
|
# Makefile: Architecture detection
|
|
# Makefile: Architecture detection
|
|
|
-find_string ("LJ_TARGET_(X64|X86|ARM|PPC|PPCSPE|MIPS) 1" "${TARGET_TESTARCH}" TARGET_LJARCH ${VARIANT})
|
|
|
|
|
|
|
+find_string ("LJ_TARGET_(X64|X86|ARM|PPC|PPCSPE|MIPS) 1" "${TARGET_TESTARCH}" TARGET_LJARCH)
|
|
|
if (TARGET_LJARCH)
|
|
if (TARGET_LJARCH)
|
|
|
string (TOLOWER ${TARGET_LJARCH} TARGET_LJARCH)
|
|
string (TOLOWER ${TARGET_LJARCH} TARGET_LJARCH)
|
|
|
- set (TARGET_LJARCH${VARIANT} ${TARGET_LJARCH} CACHE INTERNAL "LUAJIT INTERNAL - TARGET_LJARCH${VARIANT}")
|
|
|
|
|
if (TARGET_LJARCH STREQUAL x64 AND NOT URHO3D_64BIT)
|
|
if (TARGET_LJARCH STREQUAL x64 AND NOT URHO3D_64BIT)
|
|
|
set (TARGET_LJARCH x86)
|
|
set (TARGET_LJARCH x86)
|
|
|
endif ()
|
|
endif ()
|
|
@@ -53,20 +49,20 @@ else ()
|
|
|
message (FATAL_ERROR "Unsupported target architecture")
|
|
message (FATAL_ERROR "Unsupported target architecture")
|
|
|
endif ()
|
|
endif ()
|
|
|
if (TARGET_LJARCH STREQUAL mips)
|
|
if (TARGET_LJARCH STREQUAL mips)
|
|
|
- find_string ("MIPSEL (1)" "${TARGET_TESTARCH}" MIPSEL ${VARIANT})
|
|
|
|
|
|
|
+ find_string ("MIPSEL (1)" "${TARGET_TESTARCH}" MIPSEL)
|
|
|
if (MIPSEL)
|
|
if (MIPSEL)
|
|
|
set (TARGET_ARCH ${TARGET_ARCH} -D__MIPSEL__=1)
|
|
set (TARGET_ARCH ${TARGET_ARCH} -D__MIPSEL__=1)
|
|
|
endif ()
|
|
endif ()
|
|
|
endif ()
|
|
endif ()
|
|
|
|
|
|
|
|
-find_string ("LJ_TARGET_PS3 (1)" "${TARGET_TESTARCH}" PS3 ${VARIANT})
|
|
|
|
|
|
|
+find_string ("LJ_TARGET_PS3 (1)" "${TARGET_TESTARCH}" PS3)
|
|
|
if (PS3)
|
|
if (PS3)
|
|
|
set (TARGET_SYS PS3)
|
|
set (TARGET_SYS PS3)
|
|
|
set (TARGET_ARCH ${TARGET_ARCH} -D__CELLOS_LV2__)
|
|
set (TARGET_ARCH ${TARGET_ARCH} -D__CELLOS_LV2__)
|
|
|
add_definitions (-DLUAJIT_USE_SYSMALLOC)
|
|
add_definitions (-DLUAJIT_USE_SYSMALLOC)
|
|
|
endif ()
|
|
endif ()
|
|
|
|
|
|
|
|
-find_string ("LJ_NO_UNWIND (1)" "${TARGET_TESTARCH}" NO_UNWIND ${VARIANT})
|
|
|
|
|
|
|
+find_string ("LJ_NO_UNWIND (1)" "${TARGET_TESTARCH}" NO_UNWIND)
|
|
|
if (NO_UNWIND)
|
|
if (NO_UNWIND)
|
|
|
set (TARGET_ARCH ${TARGET_ARCH} -DLUAJIT_NO_UNWIND)
|
|
set (TARGET_ARCH ${TARGET_ARCH} -DLUAJIT_NO_UNWIND)
|
|
|
endif ()
|
|
endif ()
|
|
@@ -79,16 +75,7 @@ if (WIN32)
|
|
|
else ()
|
|
else ()
|
|
|
execute_process (COMMAND uname -s OUTPUT_VARIABLE HOST_SYS ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
execute_process (COMMAND uname -s OUTPUT_VARIABLE HOST_SYS ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
endif ()
|
|
endif ()
|
|
|
-if (VARIANT)
|
|
|
|
|
- if (VARIANT MATCHES ios)
|
|
|
|
|
- set (TARGET_SYS iOS)
|
|
|
|
|
- elseif (VARIANT MATCHES android|raspi)
|
|
|
|
|
- set (TARGET_SYS Linux)
|
|
|
|
|
- elseif (VARIANT MATCHES mingw)
|
|
|
|
|
- set (TARGET_SYS Windows)
|
|
|
|
|
- else ()
|
|
|
|
|
- message (FATAL_ERROR "Unsupported buildvm variant: ${VARIANT}")
|
|
|
|
|
- endif ()
|
|
|
|
|
|
|
+if (TARGET_SYS)
|
|
|
# Makefile: ifneq ($(HOST_SYS),$(TARGET_SYS))
|
|
# Makefile: ifneq ($(HOST_SYS),$(TARGET_SYS))
|
|
|
if (TARGET_SYS STREQUAL Windows)
|
|
if (TARGET_SYS STREQUAL Windows)
|
|
|
set (HOST_XCFLAGS ${HOST_XCFLAGS} -malign-double -DLUAJIT_OS=LUAJIT_OS_WINDOWS)
|
|
set (HOST_XCFLAGS ${HOST_XCFLAGS} -malign-double -DLUAJIT_OS=LUAJIT_OS_WINDOWS)
|
|
@@ -104,11 +91,11 @@ else ()
|
|
|
endif ()
|
|
endif ()
|
|
|
|
|
|
|
|
# Makefile: Files and pathnames
|
|
# Makefile: Files and pathnames
|
|
|
-set (DASM_DIR ${PROJECT_SOURCE_DIR}/ThirdParty/LuaJIT/dynasm)
|
|
|
|
|
|
|
+set (DASM_DIR ${BAKED_CMAKE_SOURCE_DIR}/Source/ThirdParty/LuaJIT/dynasm)
|
|
|
set (DASM_ARCH ${TARGET_LJARCH})
|
|
set (DASM_ARCH ${TARGET_LJARCH})
|
|
|
|
|
|
|
|
# Below regex is a workaround for "LJ_ARCH_BITS (.*?)\\n" as CMake does not understand non-greedy quantifier
|
|
# Below regex is a workaround for "LJ_ARCH_BITS (.*?)\\n" as CMake does not understand non-greedy quantifier
|
|
|
-find_string ("LJ_ARCH_BITS ([^\\n]*)" "${TARGET_TESTARCH}" ARCH_BITS ${VARIANT})
|
|
|
|
|
|
|
+find_string ("LJ_ARCH_BITS ([^\\n]*)" "${TARGET_TESTARCH}" ARCH_BITS)
|
|
|
if (ARCH_BITS EQUAL 64)
|
|
if (ARCH_BITS EQUAL 64)
|
|
|
if (URHO3D_64BIT)
|
|
if (URHO3D_64BIT)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D P64)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D P64)
|
|
@@ -116,45 +103,44 @@ if (ARCH_BITS EQUAL 64)
|
|
|
set (ARCH_BITS 32)
|
|
set (ARCH_BITS 32)
|
|
|
endif ()
|
|
endif ()
|
|
|
endif ()
|
|
endif ()
|
|
|
-if (VARIANT)
|
|
|
|
|
|
|
+if (TARGET_SYS)
|
|
|
if (MSVC)
|
|
if (MSVC)
|
|
|
- message (FATAL_ERROR "MSVC is not able to build 'buildvm${VARIANT}' target at this moment, please use GCC or LLVM/Clang instead. "
|
|
|
|
|
- "To recover from this error, remove this file (generated by Android build script when LuaJIT is enabled) in ${CMAKE_BINARY_DIR}/Bin/tool/buildvm${VARIANT}-arch.txt.")
|
|
|
|
|
|
|
+ message (FATAL_ERROR "MSVC is not able to cross-compile 'buildvm' target at this moment, please use GCC or LLVM/Clang instead.")
|
|
|
else ()
|
|
else ()
|
|
|
string (REGEX REPLACE "-m(32|64) *" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
|
|
string (REGEX REPLACE "-m(32|64) *" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
|
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m${ARCH_BITS}")
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m${ARCH_BITS}")
|
|
|
endif ()
|
|
endif ()
|
|
|
endif ()
|
|
endif ()
|
|
|
|
|
|
|
|
-find_string ("LJ_HASJIT (1)" "${TARGET_TESTARCH}" HASJIT ${VARIANT})
|
|
|
|
|
|
|
+find_string ("LJ_HASJIT (1)" "${TARGET_TESTARCH}" HASJIT)
|
|
|
if (HASJIT)
|
|
if (HASJIT)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D JIT)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D JIT)
|
|
|
endif ()
|
|
endif ()
|
|
|
|
|
|
|
|
-find_string ("LJ_HASFFI (1)" "${TARGET_TESTARCH}" HASFFI ${VARIANT})
|
|
|
|
|
|
|
+find_string ("LJ_HASFFI (1)" "${TARGET_TESTARCH}" HASFFI)
|
|
|
if (HASFFI)
|
|
if (HASFFI)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D FFI)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D FFI)
|
|
|
endif ()
|
|
endif ()
|
|
|
|
|
|
|
|
-find_string ("LJ_DUALNUM (1)" "${TARGET_TESTARCH}" DUALNUM ${VARIANT})
|
|
|
|
|
|
|
+find_string ("LJ_DUALNUM (1)" "${TARGET_TESTARCH}" DUALNUM)
|
|
|
if (DUALNUM)
|
|
if (DUALNUM)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D DUALNUM)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D DUALNUM)
|
|
|
endif ()
|
|
endif ()
|
|
|
|
|
|
|
|
-find_string ("LJ_ARCH_HASFPU (1)" "${TARGET_TESTARCH}" ARCH_HASFPU ${VARIANT})
|
|
|
|
|
|
|
+find_string ("LJ_ARCH_HASFPU (1)" "${TARGET_TESTARCH}" ARCH_HASFPU)
|
|
|
if (ARCH_HASFPU)
|
|
if (ARCH_HASFPU)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D FPU)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D FPU)
|
|
|
endif ()
|
|
endif ()
|
|
|
set (TARGET_ARCH ${TARGET_ARCH} -DLJ_ARCH_HASFPU=${ARCH_HASFPU})
|
|
set (TARGET_ARCH ${TARGET_ARCH} -DLJ_ARCH_HASFPU=${ARCH_HASFPU})
|
|
|
|
|
|
|
|
-find_string ("LJ_ABI_SOFTFP (1)" "${TARGET_TESTARCH}" ABI_SOFTFP ${VARIANT})
|
|
|
|
|
|
|
+find_string ("LJ_ABI_SOFTFP (1)" "${TARGET_TESTARCH}" ABI_SOFTFP)
|
|
|
if (NOT ABI_SOFTFP)
|
|
if (NOT ABI_SOFTFP)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D HFABI)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D HFABI)
|
|
|
endif ()
|
|
endif ()
|
|
|
set (TARGET_ARCH ${TARGET_ARCH} -DLJ_ABI_SOFTFP=${ABI_SOFTFP})
|
|
set (TARGET_ARCH ${TARGET_ARCH} -DLJ_ABI_SOFTFP=${ABI_SOFTFP})
|
|
|
|
|
|
|
|
# Below regex is a workaround for "LJ_ARCH_VERSION (.*?)\\n" as CMake does not understand non-greedy quantifier
|
|
# Below regex is a workaround for "LJ_ARCH_VERSION (.*?)\\n" as CMake does not understand non-greedy quantifier
|
|
|
-find_string ("LJ_ARCH_VERSION ([^\\n]*)" "${TARGET_TESTARCH}" ARCH_VERSION ${VARIANT})
|
|
|
|
|
|
|
+find_string ("LJ_ARCH_VERSION ([^\\n]*)" "${TARGET_TESTARCH}" ARCH_VERSION)
|
|
|
if (ARCH_VERSION)
|
|
if (ARCH_VERSION)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D VER=${ARCH_VERSION})
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D VER=${ARCH_VERSION})
|
|
|
else ()
|
|
else ()
|
|
@@ -166,7 +152,7 @@ if (TARGET_SYS STREQUAL Windows)
|
|
|
endif ()
|
|
endif ()
|
|
|
|
|
|
|
|
if (TARGET_LJARCH STREQUAL x86)
|
|
if (TARGET_LJARCH STREQUAL x86)
|
|
|
- find_string ("__SSE2__ (1)" "${TARGET_TESTARCH}" SSE2 ${VARIANT})
|
|
|
|
|
|
|
+ find_string ("__SSE2__ (1)" "${TARGET_TESTARCH}" SSE2)
|
|
|
if (SSE2)
|
|
if (SSE2)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D SSE)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D SSE)
|
|
|
endif ()
|
|
endif ()
|
|
@@ -177,15 +163,15 @@ elseif (TARGET_LJARCH STREQUAL arm)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D IOS)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D IOS)
|
|
|
endif ()
|
|
endif ()
|
|
|
elseif (TARGET_LJARCH STREQUAL ppc)
|
|
elseif (TARGET_LJARCH STREQUAL ppc)
|
|
|
- find_string ("LJ_ARCH_SQRT (1)" "${TARGET_TESTARCH}" ARCH_SQRT ${VARIANT})
|
|
|
|
|
|
|
+ find_string ("LJ_ARCH_SQRT (1)" "${TARGET_TESTARCH}" ARCH_SQRT)
|
|
|
if (ARCH_SQRT)
|
|
if (ARCH_SQRT)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D SQRT)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D SQRT)
|
|
|
endif ()
|
|
endif ()
|
|
|
- find_string ("LJ_ARCH_ROUND (1)" "${TARGET_TESTARCH}" ARCH_ROUND ${VARIANT})
|
|
|
|
|
|
|
+ find_string ("LJ_ARCH_ROUND (1)" "${TARGET_TESTARCH}" ARCH_ROUND)
|
|
|
if (ARCH_ROUND)
|
|
if (ARCH_ROUND)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D ROUND)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D ROUND)
|
|
|
endif ()
|
|
endif ()
|
|
|
- find_string ("LJ_ARCH_PPC64 (1)" "${TARGET_TESTARCH}" ARCH_PPC64 ${VARIANT})
|
|
|
|
|
|
|
+ find_string ("LJ_ARCH_PPC64 (1)" "${TARGET_TESTARCH}" ARCH_PPC64)
|
|
|
if (ARCH_PPC64)
|
|
if (ARCH_PPC64)
|
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D GPR64)
|
|
set (DASM_AFLAGS ${DASM_AFLAGS} -D GPR64)
|
|
|
endif ()
|
|
endif ()
|
|
@@ -195,4 +181,4 @@ elseif (TARGET_LJARCH STREQUAL ppc)
|
|
|
endif ()
|
|
endif ()
|
|
|
|
|
|
|
|
set (DASM_FLAGS ${DASM_XFLAGS} ${DASM_AFLAGS})
|
|
set (DASM_FLAGS ${DASM_XFLAGS} ${DASM_AFLAGS})
|
|
|
-set (DASM_DASC ${PROJECT_SOURCE_DIR}/ThirdParty/LuaJIT/src/vm_${DASM_ARCH}.dasc)
|
|
|
|
|
|
|
+set (DASM_DASC ${BAKED_CMAKE_SOURCE_DIR}/Source/ThirdParty/LuaJIT/src/vm_${DASM_ARCH}.dasc)
|