Преглед на файлове

Fix 32-bit LuaJIT build for Linux&OSX. Fix host tool building for iOS.

Yao Wei Tjong 姚伟忠 преди 11 години
родител
ревизия
0af8a30650

+ 1 - 1
.bash_helpers.sh

@@ -106,7 +106,7 @@ post_cmake() {
             sed -i '' 's/\/Contents\/MacOS//g' $BUILD/CMakeScripts/XCODE_DEPEND_HELPER.make
         fi
 
-        # Temporary fix: known CMake bug (still exists in 2.8.12)
+        # Temporary fix: known CMake bug (still exists in 3.0.2)
         if [ -e $BUILD/CMakeScripts/install_postBuildPhase.makeDebug ]; then
             # Due to a bug in the CMake/Xcode generator that prevents iOS targets (library and bundle) to be installed correctly
             # (see http://public.kitware.com/Bug/bug_relationship_graph.php?bug_id=12506&graph=dependency),

+ 5 - 1
Source/Engine/LuaScript/CMakeLists.txt

@@ -32,9 +32,13 @@ endif ()
 if (CMAKE_CROSSCOMPILING OR IOS)
     # When cross-compiling, build the host tool as external project
     include (ExternalProject)
+    if (IOS)
+        # For iOS target, its host is MacOSX; Workaround a known CMake/Xcode generator bug which prevents it from installing binaries correctly
+        set (OSX_HOST -DCMAKE_OSX_SYSROOT=macosx -DIPHONEOS_DEPLOYMENT_TARGET= BUILD_COMMAND bash -c "sed -i '' 's/EFFECTIVE_PLATFORM_NAME//g' CMakeScripts/install_postBuildPhase.make*")            
+    endif ()
     ExternalProject_Add(tolua++
         SOURCE_DIR ${CMAKE_SOURCE_DIR}/Source/ThirdParty/toluapp/src/bin
-        CMAKE_ARGS -DJIT=${JIT} -DDEST_RUNTIME_DIR=${CMAKE_BINARY_DIR}/Bin/tool -DBAKED_CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}
+        CMAKE_ARGS -DJIT=${JIT} -DDEST_RUNTIME_DIR=${CMAKE_BINARY_DIR}/Bin/tool -DURHO3D_64BIT=${URHO3D_64BIT} -DBAKED_CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR} ${OSX_HOST}
     )
 else ()
     # Otherwise, build it internally as per normal

+ 1 - 1
Source/ThirdParty/LuaJIT/CMakeLists.txt

@@ -169,7 +169,7 @@ if (CMAKE_CROSSCOMPILING OR IOS)
     include (ExternalProject)
     ExternalProject_Add(buildvm
         SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated/buildvm
-        CMAKE_ARGS -DTARGET_SYS=${TARGET_SYS} -DDEST_RUNTIME_DIR=${CMAKE_BINARY_DIR}/Bin/tool
+        CMAKE_ARGS -DTARGET_SYS=${TARGET_SYS} -DDEST_RUNTIME_DIR=${CMAKE_BINARY_DIR}/Bin/tool -DURHO3D_64BIT=${URHO3D_64BIT}
     )
 else ()
     # Otherwise, build it internally as per normal

+ 1 - 0
Source/ThirdParty/LuaJIT/DetectTargetArchitecture.cmake

@@ -42,6 +42,7 @@ endmacro ()
 find_string ("LJ_TARGET_(X64|X86|ARM|PPC|PPCSPE|MIPS) 1" "${TARGET_TESTARCH}" TARGET_LJARCH)
 if (TARGET_LJARCH)
     string (TOLOWER ${TARGET_LJARCH} TARGET_LJARCH)
+    set (TARGET_LJARCH ${TARGET_LJARCH} CACHE INTERNAL "LUAJIT INTERNAL - TARGET_LJARCH")
     if (TARGET_LJARCH STREQUAL x64 AND NOT URHO3D_64BIT)
         set (TARGET_LJARCH x86)
     endif ()

+ 1 - 1
Source/ThirdParty/toluapp/src/bin/CMakeLists.txt

@@ -42,7 +42,7 @@ if (NOT CMAKE_PROJECT_NAME STREQUAL Urho3D)
     endif ()
 
     # Set CMake modules search path
-    set (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../../../../../CMake/Modules)
+    set (CMAKE_MODULE_PATH ${BAKED_CMAKE_SOURCE_DIR}/CMake/Modules)
 
     # Include Urho3D Cmake common module
     include (Urho3D-CMake-common)

+ 5 - 3
Source/Tools/Urho3DPlayer/CMakeLists.txt

@@ -40,6 +40,8 @@ if (URHO3D_LUA)
 endif ()
 
 # Symlink/copy helper shell scripts or batch files to invoke Urho3DPlayer
-foreach (FILE Editor NinjaSnowWar)
-    create_symlink (${CMAKE_SOURCE_DIR}/Bin/${FILE}${SCRIPT_EXT} ${CMAKE_BINARY_DIR}/Bin/${FILE}${SCRIPT_EXT} FALLBACK_TO_COPY)
-endforeach ()
+if (NOT IOS AND NOT ANDROID)
+    foreach (FILE Editor NinjaSnowWar)
+        create_symlink (${CMAKE_SOURCE_DIR}/Bin/${FILE}${SCRIPT_EXT} ${CMAKE_BINARY_DIR}/Bin/${FILE}${SCRIPT_EXT} FALLBACK_TO_COPY)
+    endforeach ()
+endif ()