diff --git a/toolchain/ECMAndroidDeployQt.cmake b/toolchain/ECMAndroidDeployQt.cmake --- a/toolchain/ECMAndroidDeployQt.cmake +++ b/toolchain/ECMAndroidDeployQt.cmake @@ -38,10 +38,8 @@ function(havestl var access VALUE) if (NOT VALUE STREQUAL "") - string(FIND "${VALUE}" ".so\"" OUT) - math(EXPR OUT "${OUT}+4") - string(SUBSTRING "${VALUE}" 0 ${OUT} OUTSTR) - file(WRITE ${CMAKE_BINARY_DIR}/stl "${OUTSTR}") + string (REGEX MATCH "\".+shared\.so\"" OUT ${VALUE}) + file(WRITE ${CMAKE_BINARY_DIR}/stl "${OUT}") endif() endfunction() function(haveranlib var access VALUE) diff --git a/toolchain/specifydependencies.cmake b/toolchain/specifydependencies.cmake --- a/toolchain/specifydependencies.cmake +++ b/toolchain/specifydependencies.cmake @@ -21,10 +21,27 @@ endif() endforeach() +function(duplicate libpath) + get_filename_component (name ${libpath} NAME) + foreach (extralib ${extralibs}) + get_filename_component (extralibname ${extralib} NAME) + if (${extralibname} STREQUAL ${name}) + set (IS_EQUAL TRUE PARENT_SCOPE) + break() + endif() + endforeach() +endfunction() + if (ANDROID_EXTRA_LIBS) foreach (extralib ${ANDROID_EXTRA_LIBS}) - message(STATUS "manually specified extra library: " ${extralib}) - list(APPEND extralibs ${extralib}) + duplicate(${extralib}) + if (IS_EQUAL) + message (STATUS "found duplicate, skipping: " ${extralib}) + set (IS_EQUAL FALSE) + else() + message(STATUS "manually specified extra library: " ${extralib}) + list(APPEND extralibs ${extralib}) + endif() endforeach() endif()