Qt/Android/CMake: Custom AndroidManifest.xml not taken into account

Viewed 897

I am building a Qt project with Qt for Android.

I need to add a uses-feature tag in the AndroidManifest.xml file. For this, I made a template with Qt Creator then added android/AndroidManifest.xml file to the app sources.

Whatever I put in the android/AndroidManifest.xml file, it is ignored and a default/internal file is used.

Here is my CMakeLists.txt file :

    set(CMAKE_AUTOMOC ON)
    set(CMAKE_AUTORCC ON)
    set(CMAKE_AUTOUIC ON)
    
    set(CMAKE_CXX_STANDARD 11)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    set(CMAKE_INCLUDE_CURRENT_DIR ON)
    
    find_package(QT NAMES Qt5 COMPONENTS Widgets REQUIRED)
    find_package(Qt5 COMPONENTS Widgets REQUIRED)
    
    file(GLOB_RECURSE SOURCES
      ${PROJECT_SOURCE_DIR}/*.cpp
      ${PROJECT_SOURCE_DIR}/*.ui
      ${PROJECT_SOURCE_DIR}/*.h
      ${PROJECT_SOURCE_DIR}/*.qrc
      ${PROJECT_SOURCE_DIR}/android/AndroidManifest.xml
    )
    if(ANDROID)
      set(ANDROID_MIN_SDK_VERSION 21)
      set(ANDROID_PACKAGE_SOURCE_DIR ${PROJECT_SOURCE_DIR}/android/)
    
      add_library(myapp SHARED ${SOURCES})
    else()
      add_executable(evotest ${SOURCES})
    endif()
    
    target_link_libraries(myapp Qt5::Widgets)
    
    install(TARGETS myapp DESTINATION bin)
1 Answers

The solution was to set ANDROID_PACKAGE_SOURCE_DIR this way :

set(ANDROID_PACKAGE_SOURCE_DIR ${PROJECT_SOURCE_DIR}/android CACHE INTERNAL "")

Now, the file android/AndroidManifest.xml is taken into account to build the android package.

Related