From 039c2f7a4b326b79e078fca81eed6dedb421c854 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Wed, 24 Jun 2020 14:40:45 +0200 Subject: [PATCH] CMake: Support add_executable for Android With the ANDROID_GUI target property set on add_executable targets, CMake will generate a lib.so file, which is what Qt requires from a target. By setting CMAKE_RUNTIME_OUTPUT_DIRECTORY with the same value as CMAKE_LIBRARY_OUTPUT_DIRECTORY the ANDROID_GUI case will work as expected in Android multi-abi case. Instead of the following CMake code: if (ANDROID) add_library(test-android SHARED main.cpp qml.qrc ) else() add_executable(test-android main.cpp qml.qrc ) endif() you can have: set(CMAKE_ANDROID_GUI ON) add_executable(test-android main.cpp qml.qrc ) Change-Id: I3995d6ff731d0525ca86f7260fe61d9ecb7b01ac Reviewed-by: Assam Boudjelthia Reviewed-by: BogDan Vatra --- src/corelib/Qt5AndroidSupport.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/Qt5AndroidSupport.cmake b/src/corelib/Qt5AndroidSupport.cmake index cb908a29c6..e1e99f1c62 100644 --- a/src/corelib/Qt5AndroidSupport.cmake +++ b/src/corelib/Qt5AndroidSupport.cmake @@ -196,6 +196,7 @@ if (NOT ${PROJECT_NAME}-MultiAbiBuild) set(CMAKE_SHARED_MODULE_SUFFIX_C "_${ANDROID_ABI}.so") set(CMAKE_SHARED_LIBRARY_SUFFIX_C "_${ANDROID_ABI}.so") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/android-build/libs/${ANDROID_ABI}) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/android-build/libs/${ANDROID_ABI}) endif() endforeach() else()