Browse Source

Fix Android "in-the-source" build on Windows platform.

Reinstate back the logic to read CMake cache value for USE_MKLINK the proper way as the previous shortcut approach does not work as expected when user invokes cmake_clean.bat but leaving build dir as it is.
Yao Wei Tjong 姚伟忠 12 years ago
parent
commit
c0633b7c35
2 changed files with 8 additions and 3 deletions
  1. 7 2
      Source/CMake/Modules/FindUrho3D.cmake
  2. 1 1
      cmake_android.bat

+ 7 - 2
Source/CMake/Modules/FindUrho3D.cmake

@@ -68,8 +68,13 @@ if (URHO3D_HOME)
         endforeach ()
 
         if (ANDROID)
-            list (APPEND URHO3D_INCLUDE_DIR ${URHO3D_HOME}/android-Build/Engine)
-            set (URHO3D_LIB_SEARCH_PATH ${URHO3D_HOME}/android-Build/libs/${ANDROID_NDK_ABI_NAME})
+            if (NOT CMAKE_HOST_WIN32 OR USE_MKLINK)
+                set (BUILD_DIR android-Build)
+            else ()
+                set (BUILD_DIR Source/Android)
+            endif ()
+            list (APPEND URHO3D_INCLUDE_DIR ${URHO3D_HOME}/${BUILD_DIR}/Engine)
+            set (URHO3D_LIB_SEARCH_PATH ${URHO3D_HOME}/${BUILD_DIR}/libs/${ANDROID_NDK_ABI_NAME})
         elseif (RASPI AND CMAKE_CROSSCOMPILING)
             list (APPEND URHO3D_INCLUDE_DIR ${URHO3D_HOME}/raspi-Build/Engine)
             set (URHO3D_LIB_SEARCH_PATH ${URHO3D_HOME}/Lib-CC)

+ 1 - 1
cmake_android.bat

@@ -25,7 +25,7 @@
 set "build=Source\Android"
 set "source=.."
 set "use_mklink="
-if exist android-Build\CMakeCache.txt. set "use_mklink=1"
+if exist android-Build\CMakeCache.txt. for /F "eol=/ delims=:= tokens=1-3" %%i in (android-Build\CMakeCache.txt) do if "%%i" == "USE_MKLINK" set "use_mklink=%%k"
 :loop
 if not "%1" == "" (
     if "%1" == "-DUSE_MKLINK" set "use_mklink=%~2"