Warning, /frameworks/extra-cmake-modules/toolchain/specifydependencies.cmake is written in an unsupported language. File is not indexed.
0001 0002 function(list_dependencies target libs) 0003 execute_process(COMMAND readelf --wide --dynamic ${target} ERROR_VARIABLE readelf_errors OUTPUT_VARIABLE out RESULT_VARIABLE result) 0004 0005 if (NOT result EQUAL 0) 0006 message(FATAL_ERROR "readelf failed on ${target} exit(${result}): ${readelf_errors}") 0007 endif() 0008 0009 string(REPLACE "\n" ";" lines "${out}") 0010 set(extralibs ${${libs}}) 0011 foreach(line ${lines}) 0012 string(REGEX MATCH ".*\\(NEEDED\\) +Shared library: +\\[(.+)\\]$" matched ${line}) 0013 set(currentLib ${CMAKE_MATCH_1}) 0014 0015 if(NOT ${currentLib} MATCHES "libQt5.*" AND matched) 0016 find_file(ourlib-${currentLib} ${currentLib} HINTS ${OUTPUT_DIR} ${EXPORT_DIR} ${ECM_ADDITIONAL_FIND_ROOT_PATH} NO_DEFAULT_PATH PATH_SUFFIXES lib) 0017 0018 if(ourlib-${currentLib}) 0019 list(APPEND extralibs "${ourlib-${currentLib}}") 0020 else() 0021 message(STATUS "could not find ${currentLib} in ${OUTPUT_DIR} ${EXPORT_DIR} ${ECM_ADDITIONAL_FIND_ROOT_PATH}") 0022 endif() 0023 endif() 0024 endforeach() 0025 set(${libs} ${extralibs} PARENT_SCOPE) 0026 endfunction() 0027 0028 list_dependencies(${TARGET} extralibs) 0029 0030 function(contains_library libpath IS_EQUAL) 0031 get_filename_component (name ${libpath} NAME) 0032 unset (IS_EQUAL PARENT_SCOPE) 0033 0034 foreach (extralib ${extralibs}) 0035 get_filename_component (extralibname ${extralib} NAME) 0036 if (${extralibname} STREQUAL ${name}) 0037 set (IS_EQUAL TRUE PARENT_SCOPE) 0038 break() 0039 endif() 0040 endforeach() 0041 endfunction() 0042 0043 if (ANDROID_EXTRA_LIBS) 0044 foreach (extralib ${ANDROID_EXTRA_LIBS}) 0045 contains_library(${extralib} IS_EQUAL) 0046 0047 if (IS_EQUAL) 0048 message (STATUS "found duplicate, skipping: " ${extralib}) 0049 else() 0050 message(STATUS "manually specified extra library: " ${extralib}) 0051 list(APPEND extralibs ${extralib}) 0052 endif() 0053 endforeach() 0054 endif() 0055 0056 set(extraplugins) 0057 foreach(folder "plugins" "share" "lib/qml") #now we check for folders with extra stuff 0058 set(plugin "${EXPORT_DIR}/${folder}") 0059 if(EXISTS "${plugin}") 0060 list(APPEND extraplugins "${plugin}") 0061 endif() 0062 endforeach() 0063 0064 if(EXISTS "module-plugins") 0065 file(READ "module-plugins" moduleplugins) 0066 foreach(module ${moduleplugins}) 0067 list_dependencies(${module} extralibs) 0068 endforeach() 0069 list(REMOVE_DUPLICATES extralibs) 0070 endif() 0071 0072 if(extralibs) 0073 string(REPLACE ";" "," extralibs "${extralibs}") 0074 set(extralibs "\"android-extra-libs\": \"${extralibs}\",") 0075 endif() 0076 0077 if(extraplugins) 0078 string(REPLACE ";" "," extraplugins "${extraplugins}") 0079 set(extraplugins "\"android-extra-plugins\": \"${extraplugins}\",") 0080 endif() 0081 0082 file(READ "${INPUT_FILE}" CONTENTS) 0083 file(READ "stl" stl_contents) 0084 0085 file(READ "ranlib" ranlib_contents) 0086 string(REGEX MATCH ".+/toolchains/llvm/prebuilt/.+/bin/(.+)-ranlib" USE_LLVM ${ranlib_contents}) 0087 if (USE_LLVM) 0088 string(REPLACE "##ANDROID_TOOL_PREFIX##" "llvm" NEWCONTENTS "${CONTENTS}") 0089 string(REPLACE "##ANDROID_COMPILER_PREFIX##" "${CMAKE_MATCH_1}" NEWCONTENTS "${NEWCONTENTS}") 0090 string(REPLACE "##USE_LLVM##" true NEWCONTENTS "${NEWCONTENTS}") 0091 else() 0092 string(REGEX MATCH ".+/toolchains/(.+)-([^\\-]+)/prebuilt/.+/bin/(.+)-ranlib" RANLIB_PATH_MATCH ${ranlib_contents}) 0093 if (NOT RANLIB_PATH_MATCH) 0094 message(FATAL_ERROR "Couldn't parse the components of the path to ${ranlib_contents}") 0095 endif() 0096 string(REPLACE "##ANDROID_TOOL_PREFIX##" "${CMAKE_MATCH_1}" NEWCONTENTS "${CONTENTS}") 0097 string(REPLACE "##ANDROID_COMPILER_PREFIX##" "${CMAKE_MATCH_3}" NEWCONTENTS "${NEWCONTENTS}") 0098 string(REPLACE "##USE_LLVM##" false NEWCONTENTS "${NEWCONTENTS}") 0099 endif() 0100 0101 string(REPLACE "##ANDROID_TOOLCHAIN_VERSION##" "${CMAKE_MATCH_2}" NEWCONTENTS "${NEWCONTENTS}") # not used when USE_LLVM is set 0102 0103 string(REPLACE "##EXTRALIBS##" "${extralibs}" NEWCONTENTS "${NEWCONTENTS}") 0104 string(REPLACE "##EXTRAPLUGINS##" "${extraplugins}" NEWCONTENTS "${NEWCONTENTS}") 0105 string(REPLACE "##CMAKE_CXX_STANDARD_LIBRARIES##" "${stl_contents}" NEWCONTENTS "${NEWCONTENTS}") 0106 file(WRITE "${OUTPUT_FILE}" ${NEWCONTENTS})