diff options
-rw-r--r-- | toolchain/Android.cmake | 1 | ||||
-rw-r--r-- | toolchain/hasMainSymbol.cmake | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/toolchain/Android.cmake b/toolchain/Android.cmake index afe9b917..9eddcb22 100644 --- a/toolchain/Android.cmake +++ b/toolchain/Android.cmake @@ -235,6 +235,7 @@ if(DEFINED QTANDROID_EXPORTED_TARGET AND NOT TARGET ${CREATEAPK_TARGET_NAME}) COMMAND cmake -E remove_directory "${EXPORT_DIR}" COMMAND cmake -E copy_directory "${ANDROID_APK_DIR}" "${EXPORT_DIR}" COMMAND cmake -E copy "$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>" "${EXECUTABLE_DESTINATION_PATH}" + COMMAND LANG=C cmake "-DTARGET=$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>" -P ${_CMAKE_ANDROID_DIR}/hasMainSymbol.cmake COMMAND LANG=C cmake -DINPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json.in" -DOUTPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json" "-DTARGET=$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>" "-DOUTPUT_DIR=$<TARGET_FILE_DIR:${QTANDROID_EXPORTED_TARGET}>" "-DEXPORT_DIR=${CMAKE_INSTALL_PREFIX}" "-DECM_ADDITIONAL_FIND_ROOT_PATH=\"${ECM_ADDITIONAL_FIND_ROOT_PATH}\"" -P ${_CMAKE_ANDROID_DIR}/specifydependencies.cmake COMMAND $<TARGET_FILE_DIR:Qt5::qmake>/androiddeployqt --gradle --input "${QTANDROID_EXPORTED_TARGET}-deployment.json" --output "${EXPORT_DIR}" --deployment bundled ${arguments} ) diff --git a/toolchain/hasMainSymbol.cmake b/toolchain/hasMainSymbol.cmake new file mode 100644 index 00000000..9a041e73 --- /dev/null +++ b/toolchain/hasMainSymbol.cmake @@ -0,0 +1,10 @@ +execute_process(COMMAND nm --dynamic ${TARGET} ERROR_VARIABLE nm_errors OUTPUT_VARIABLE out RESULT_VARIABLE result) + +if (NOT result EQUAL 0) + message(FATAL_ERROR "nm failed on ${TARGET} exit(${result}): ${nm_errors}") +endif() + +string(FIND ${out} " T main\n" found) +if(found LESS 0) + message(FATAL_ERROR "Could not find a main() symbol on ${TARGET}") +endif() |