Fix Android build with CMake 2.6.3-2.8.3
authorAndrey Kamaev <andrey.kamaev@itseez.com>
Tue, 4 Sep 2012 09:26:08 +0000 (13:26 +0400)
committerAndrey Kamaev <andrey.kamaev@itseez.com>
Tue, 4 Sep 2012 12:21:44 +0000 (16:21 +0400)
cmake/OpenCVDetectAndroidSDK.cmake
modules/java/CMakeLists.txt
modules/java/android_test/CMakeLists.txt

index 7d69cc2..5c2761f 100644 (file)
@@ -290,7 +290,7 @@ macro(add_android_project target path)
          COMMAND ${CMAKE_COMMAND} -E touch "${android_proj_bin_dir}/bin/${target}-debug.apk" # needed because ant does not update the timestamp of updated apk
          WORKING_DIRECTORY "${android_proj_bin_dir}"
          MAIN_DEPENDENCY "${android_proj_bin_dir}/${ANDROID_MANIFEST_FILE}"
-         DEPENDS ${android_proj_file_deps} ${JNI_LIB_NAME} ${__android_project_chain})
+         DEPENDS ${android_proj_file_deps} ${JNI_LIB_NAME})
     else()
       add_custom_command(
          OUTPUT "${android_proj_bin_dir}/bin/${target}-debug.apk"
@@ -299,9 +299,8 @@ macro(add_android_project target path)
          WORKING_DIRECTORY "${android_proj_bin_dir}"
          MAIN_DEPENDENCY "${android_proj_bin_dir}/${ANDROID_MANIFEST_FILE}"
          DEPENDS "${OpenCV_BINARY_DIR}/bin/.classes.jar.dephelper" opencv_java # as we are part of OpenCV we can just force this dependency
-         DEPENDS ${android_proj_file_deps} ${JNI_LIB_NAME} ${__android_project_chain})
+         DEPENDS ${android_proj_file_deps} ${JNI_LIB_NAME})
     endif()
-    set(__android_project_chain ${target} CACHE INTERNAL "auxiliary variable used for Android progects chaining")
 
     unset(JNI_LIB_NAME)
 
@@ -313,6 +312,11 @@ macro(add_android_project target path)
       add_dependencies(${target} ${android_proj_native_deps})
     endif()
 
+    if(__android_project_chain)
+      add_dependencies(${target} ${__android_project_chain})
+    endif()
+    set(__android_project_chain ${target} CACHE INTERNAL "auxiliary variable used for Android progects chaining")
+
     # put the final .apk to the OpenCV's bin folder
     add_custom_command(TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${android_proj_bin_dir}/bin/${target}-debug.apk" "${OpenCV_BINARY_DIR}/bin/${target}.apk")
     if(INSTALL_ANDROID_EXAMPLES AND "${target}" MATCHES "^example-")
index 39c90d3..50592ea 100644 (file)
@@ -182,7 +182,7 @@ if(ANDROID)
   # because samples and tests will make a copy of the library before install
   get_target_property(__opencv_java_location ${the_module} LOCATION)
   # Turn off stripping in debug build
-  if ( NOT (CMAKE_BUILD_TYPE MATCHES "debug"))
+  if ( NOT (CMAKE_BUILD_TYPE MATCHES "Debug"))
     add_custom_command(TARGET ${the_module} POST_BUILD COMMAND ${CMAKE_STRIP} --strip-unneeded "${__opencv_java_location}")
   endif()
 
index fcbb3b3..f6e5a7b 100644 (file)
@@ -48,11 +48,11 @@ add_custom_command(
     WORKING_DIRECTORY "${opencv_test_java_bin_dir}"
     MAIN_DEPENDENCY "${opencv_test_java_bin_dir}/${ANDROID_MANIFEST_FILE}"
     DEPENDS "${OpenCV_BINARY_DIR}/bin/.classes.jar.dephelper" opencv_java
-    DEPENDS ${opencv_test_java_file_deps} ${__android_project_chain})
-set(__android_project_chain ${PROJECT_NAME} CACHE INTERNAL "auxiliary variable used for Android progects chaining")
+    DEPENDS ${opencv_test_java_file_deps})
 
 add_custom_target(${PROJECT_NAME} ALL SOURCES "${opencv_test_java_bin_dir}/bin/OpenCVTest-debug.apk" )
-add_dependencies(${PROJECT_NAME} opencv_java)
+add_dependencies(${PROJECT_NAME} opencv_java ${__android_project_chain})
+set(__android_project_chain ${PROJECT_NAME} CACHE INTERNAL "auxiliary variable used for Android progects chaining" FORCE)
 
 # put the final .apk to the OpenCV's bin folder
 add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${opencv_test_java_bin_dir}/bin/OpenCVTest-debug.apk" "${OpenCV_BINARY_DIR}/bin/${PROJECT_NAME}.apk")