Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. QGCS error for Android
Forum Updated to NodeBB v4.3 + New Features

QGCS error for Android

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
21 Posts 2 Posters 1.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I InsideFPV

    @jsulm No sir
    I am adding full cmakelist.txt please check

    cmake_minimum_required(VERSION 3.25)

    list(APPEND CMAKE_MODULE_PATH
    ${CMAKE_SOURCE_DIR}/cmake
    ${CMAKE_SOURCE_DIR}/cmake/modules
    ${CMAKE_SOURCE_DIR}/cmake/find-modules
    )

    if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
    set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug;Release")
    endif()

    set(CMAKE_REQUIRED_QUIET ON)

    #######################################################

    Custom Build Configuration

    #######################################################

    include(CustomOptions)

    if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/custom)
    message(STATUS "Enabling custom build")
    set(QGC_CUSTOM_BUILD ON)
    list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/custom/cmake)
    include(CustomOverrides)
    endif()

    #######################################################

    Project Info

    #######################################################

    set(CMAKE_OSX_ARCHITECTURES "arm64")

    set(CMAKE_OSX_SYSROOT "iphoneos")

    if(APPLE)
    set(CMAKE_OSX_DEPLOYMENT_TARGET "12.0")
    endif()

    include(Git)

    project(${QGC_APP_NAME}
    VERSION ${QGC_APP_VERSION}
    DESCRIPTION ${QGC_APP_DESCRIPTION}
    HOMEPAGE_URL "https://qgroundcontrol.com/"
    LANGUAGES C CXX
    )

    if(APPLE AND NOT IOS)
    set(MACOS TRUE)
    endif()

    #######################################################

    CMake Configuration Options

    #######################################################

    include(GNUInstallDirs)
    include(FetchContent)
    include(CMakePrintHelpers)

    set(CMAKE_CXX_STANDARD 20)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)

    set(CMAKE_AUTOMOC ON)
    set(CMAKE_AUTOUIC ON)
    set(CMAKE_AUTORCC ON)

    set(CMAKE_INCLUDE_CURRENT_DIR ON)
    set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
    set(CMAKE_POSITION_INDEPENDENT_CODE ON)

    if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
    if(LINUX)
    set_property(CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE "${CMAKE_BINARY_DIR}/AppDir/usr")
    else()
    set_property(CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE "${CMAKE_BINARY_DIR}/staging")
    endif()
    endif()

    if(QGC_USE_CACHE)
    if(CMAKE_HOST_UNIX)
    find_program(CCACHE_PROGRAM ccache)
    if(CCACHE_PROGRAM)
    message(STATUS "Using CCache")
    set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
    set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
    if(APPLE)
    set(CMAKE_OBJC_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
    endif()
    endif()
    elseif(CMAKE_HOST_WIN32)
    find_program(SCCACHE_PROGRAM sccache)
    if(SCCACHE_PROGRAM)
    message(STATUS "Using SCCache")
    set(CMAKE_C_COMPILER_LAUNCHER ${SCCACHE_PROGRAM})
    set(CMAKE_CXX_COMPILER_LAUNCHER ${SCCACHE_PROGRAM})
    endif()
    endif()
    endif()

    if(MSVC)
    set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded)
    endif()

    if(CMAKE_CROSSCOMPILING AND ANDROID)
    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
    set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)
    endif()

    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/$<CONFIGURATION>/lib)
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/$<CONFIGURATION>)
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/$<CONFIGURATION>)

    https://cmake.org/cmake/help/latest/policy/CMP0168.html#policy:CMP0168

    if(POLICY CMP0168)
    cmake_policy(SET CMP0168 NEW)
    set(CMAKE_POLICY_DEFAULT_CMP0168 NEW)
    endif()

    https://cmake.org/cmake/help/latest/policy/CMP0075.html#policy:CMP0075

    if(POLICY CMP0075)
    cmake_policy(SET CMP0075 NEW)
    set(CMAKE_POLICY_DEFAULT_CMP0075 NEW)
    endif()

    if(QGC_USE_IWYU)
    include(IWYU)
    endif()

    #######################################################

    Qt6 Configuration

    #######################################################

    if(CMAKE_CROSSCOMPILING AND NOT IS_DIRECTORY ${QT_HOST_PATH})
    message(FATAL_ERROR "You need to set QT_HOST_PATH to cross compile Qt.")
    endif()

    find_program(QMAKE_EXECUTABLE NAMES qmake HINTS ${QT_ROOT_DIR} ${QTDIR} ENV QTDIR PATH_SUFFIXES bin)
    execute_process(COMMAND ${QMAKE_EXECUTABLE} -query QT_VERSION OUTPUT_VARIABLE QT_VERSION)
    if(QT_VERSION LESS QT_MINIMUM_VERSION)
    MESSAGE(FATAL_ERROR "Minimum supported Qt version: ${QT_MINIMUM_VERSION}.
    Installed version: ${QT_VERSION}")
    endif()

    add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x060800)

    if(CMAKE_BUILD_TYPE STREQUAL "Release")
    add_compile_definitions(
    NDEBUG
    QT_NO_DEBUG
    QT_NO_DEBUG_OUTPUT
    )
    elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
    include(CTest)
    endif()

    if(ANDROID)
    list(APPEND QT_ANDROID_MULTI_ABI_FORWARD_VARS QGC_STABLE_BUILD QT_HOST_PATH)
    endif()

    find_package(Qt6
    ${QT_MINIMUM_VERSION}
    REQUIRED
    COMPONENTS
    Concurrent
    Core
    Core5Compat
    Location
    Multimedia
    Network
    OpenGL
    Positioning
    Qml
    QmlIntegration
    Quick
    QuickControls2
    QuickWidgets
    Sensors
    Sql
    Svg
    TextToSpeech
    Widgets
    Xml
    OPTIONAL_COMPONENTS
    Bluetooth
    Charts
    LinguistTools
    MultimediaQuickPrivate
    Quick3D
    Quick3DTools
    SerialPort
    Test
    HINTS
    ${QT_LIBRARY_HINTS}
    )

    if(LINUX)
    find_package(Qt6 ${QT_MINIMUM_VERSION} COMPONENTS WaylandClient)
    endif()

    Set extra standard project setup options for Qt 6.7.0 and above

    set(EXTRA_STANDARD_PROJECT_SETUP_OPTIONS)
    if(QT_VERSION VERSION_GREATER_EQUAL 6.8.2)
    list(APPEND EXTRA_STANDARD_PROJECT_SETUP_OPTIONS I18N_SOURCE_LANGUAGE en)
    endif()

    qt_standard_project_setup(
    REQUIRES ${QGC_QT_MINIMUM_VERSION}
    SUPPORTS_UP_TO ${QGC_QT_MAXIMUM_VERSION}
    ${EXTRA_STANDARD_PROJECT_SETUP_OPTIONS}
    )

    qt_policy(
    SET QTP0001 NEW
    SET QTP0002 NEW
    SET QTP0003 NEW
    SET QTP0004 NEW
    SET QTP0005 NEW
    )

    #######################################################

    QGroundControl Options

    #######################################################

    add_compile_definitions(
    $<$<NOT:$BOOL:${QGC_STABLE_BUILD}>:QGC_DAILY_BUILD>
    $<$BOOL:${QGC_BUILD_TESTING}:QGC_UNITTEST_BUILD>
    $<$BOOL:${QGC_DEBUG_QML}:QT_QML_DEBUG>
    $<$BOOL:${QGC_DISABLE_APM_MAVLINK}:QGC_NO_ARDUPILOT_DIALECT>
    $<$BOOL:${QGC_VIEWER3D}:QGC_VIEWER3D>
    )

    if(NOT QGC_BUILD_TESTING)
    set(BUILD_TESTING OFF CACHE INTERNAL "" FORCE)
    endif()

    if("${CMAKE_OSX_ARCHITECTURES}" MATCHES "arm64;x86_64" OR "${CMAKE_OSX_ARCHITECTURES}" MATCHES "x86_64;arm64")
    set(MACOS_UNIVERSAL_BUILD ON)
    endif()

    TODO: Force building dependencies if(NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL CMAKE_SYSTEM_PROCESSOR)?

    if(CMAKE_OSX_ARCHITECTURES AND NOT "${CMAKE_HOST_SYSTEM_PROCESSOR}" IN_LIST CMAKE_OSX_ARCHITECTURES)

    include(CPM)
    if(CMAKE_CROSSCOMPILING OR ANDROID OR MACOS_UNIVERSAL_BUILD)
    set(CPM_DOWNLOAD_ALL ON)
    endif()

    #######################################################

    Custom Build Configuration

    #######################################################

    if(QGC_CUSTOM_BUILD)
    add_subdirectory(custom)
    endif()

    #######################################################

    QGroundControl Resources

    #######################################################

    Note: Adding Resources to Library instead requires using Q_INIT_RESOURCE(qgcresources)

    if(NOT QGC_CUSTOM_BUILD)
    # Custom builds can override the resources
    list(APPEND QGC_RESOURCES
    ${CMAKE_SOURCE_DIR}/qgcimages.qrc
    ${CMAKE_SOURCE_DIR}/qgcresources.qrc
    ${CMAKE_SOURCE_DIR}/qgroundcontrol.qrc
    )
    endif()

    list(APPEND QGC_RESOURCES
    ${CMAKE_SOURCE_DIR}/resources/InstrumentValueIcons/InstrumentValueIcons.qrc
    ${CMAKE_SOURCE_DIR}/src/FirmwarePlugin/APM/APMResources.qrc
    ${CMAKE_SOURCE_DIR}/src/FirmwarePlugin/PX4/PX4Resources.qrc
    )

    if(QGC_UTM_ADAPTER)
    list(APPEND QGC_RESOURCES ${CMAKE_SOURCE_DIR}/src/UTMSP/utmsp.qrc)
    else()
    list(APPEND QGC_RESOURCES ${CMAKE_SOURCE_DIR}/src/UTMSP/dummy/utmsp_dummy.qrc)
    endif()

    if(QGC_BUILD_TESTING)
    list(APPEND QGC_RESOURCES ${CMAKE_SOURCE_DIR}/test/UnitTest.qrc)
    endif()

    #######################################################

    QGroundControl Target

    #######################################################

    qt_add_executable(${CMAKE_PROJECT_NAME}
    WIN32
    MACOSX_BUNDLE
    src/main.cc
    ${QGC_RESOURCES}
    )

    if(NOT ANDROID AND NOT IOS)
    target_sources(${CMAKE_PROJECT_NAME}
    PRIVATE
    src/RunGuard.cc
    src/RunGuard.h
    )
    endif()

    target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/src)

    if(Qt6LinguistTools_FOUND)
    file(GLOB TS_SOURCES ${CMAKE_SOURCE_DIR}/translations/qgc_*.ts)
    set_source_files_properties(${TS_SOURCES} PROPERTIES OUTPUT_LOCATION "${CMAKE_BINARY_DIR}/i18n")
    qt_add_translations(${CMAKE_PROJECT_NAME}
    # TS_FILE_BASE ${CMAKE_PROJECT_NAME}
    # TS_FILE_DIR ${CMAKE_SOURCE_DIR}/translations/
    TS_FILES ${TS_SOURCES}
    RESOURCE_PREFIX "/"
    LUPDATE_OPTIONS -no-obsolete
    )
    endif()

    set_target_properties(${CMAKE_PROJECT_NAME}
    PROPERTIES
    QT_RESOURCE_PREFIX "/qgc"
    OUTPUT_NAME ${CMAKE_PROJECT_NAME}
    )

    if(WIN32)
    # windows installer files shared with core and custom
    set(DEPLOY_WIN_FILES
    "${CMAKE_SOURCE_DIR}/deploy/windows/driver.msi"
    "${CMAKE_SOURCE_DIR}/deploy/windows/nullsoft_installer.nsi"
    "${CMAKE_SOURCE_DIR}/deploy/windows/QGroundControl.rc"
    "${QGC_WINDOWS_INSTALL_HEADER_PATH}"
    "${QGC_WINDOWS_ICON_PATH}"
    )

    # Destination directory where files will be copied
    set(QGC_INSTALLER_SOURCE_WIN "${CMAKE_BINARY_DIR}/deploy/windows")
    file(MAKE_DIRECTORY ${QGC_INSTALLER_SOURCE_WIN})
    foreach(FILE ${DEPLOY_WIN_FILES})
        # filename without the path
        get_filename_component(FILE_NAME ${FILE} NAME)
        # re-copy the file if it changes
        add_custom_command(
            OUTPUT "${QGC_INSTALLER_SOURCE_WIN}/${FILE_NAME}"
            COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FILE}" "${QGC_INSTALLER_SOURCE_WIN}/${FILE_NAME}"
            DEPENDS "${FILE}"  # Depend on the source file so that it re-copies when it changes
        )
        list(APPEND QGC_INSTALLER_SOURCE_WIN_FILES "${QGC_INSTALLER_SOURCE_WIN}/${FILE_NAME}")
    endforeach()
    
    target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${QGC_INSTALLER_SOURCE_WIN_FILES})
    set_target_properties(${CMAKE_PROJECT_NAME}
        PROPERTIES
            WIN32_EXECUTABLE TRUE
            QT_TARGET_RC_ICONS "${QGC_WINDOWS_ICON_PATH}"
    )
    add_compile_definitions(_USE_MATH_DEFINES)
    

    elseif(MACOS)
    set(MACOSX_BUNDLE_ICON_FILE "macx.icns")
    set(app_icon_macos "${QGC_MACOS_ICON_PATH}/macx.icns")
    set_source_files_properties(${app_icon_macos} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
    target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${app_icon_macos})
    set_target_properties(${CMAKE_PROJECT_NAME}
    PROPERTIES
    MACOSX_BUNDLE TRUE
    MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/deploy/macos/MacOSXBundleInfo.plist.in"
    MACOSX_BUNDLE_BUNDLE_NAME "${CMAKE_PROJECT_NAME}"
    MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}"
    MACOSX_BUNDLE_COPYRIGHT "${QGC_APP_COPYRIGHT}"
    MACOSX_BUNDLE_GUI_IDENTIFIER "${QGC_BUNDLE_ID}"
    MACOSX_BUNDLE_ICON_FILE "macx.icns"
    MACOSX_BUNDLE_INFO_STRING "${QGC_APP_DESCRIPTION}"
    MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
    MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}"
    )
    elseif(IOS)
    enable_language(OBJC)

    set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "14.0")
    set(CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2") # iPhone,iPad
    set(CMAKE_XCODE_ATTRIBUTE_INFOPLIST_FILE "${CMAKE_CURRENT_SOURCE_DIR}/deploy/ios/iOS-Info.plist")
    
    set_target_properties(${CMAKE_PROJECT_NAME}
        PROPERTIES
            QT_IOS_LAUNCH_SCREEN ${CMAKE_SOURCE_DIR}/deploy/ios/QGCLaunchScreen.xib
            XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.mavlink.qgroundcontrol"
            XCODE_ATTRIBUTE_PRODUCT_NAME ${CMAKE_PROJECT_NAME}
            XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION ${CMAKE_PROJECT_VERSION}
            XCODE_ATTRIBUTE_MARKETING_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
            XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon"
            XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "14.0"
            XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2" # iPhone,iPad
            XCODE_ATTRIBUTE_INFOPLIST_KEY_CFBundleDisplayName ${CMAKE_PROJECT_NAME}
            XCODE_ATTRIBUTE_INFOPLIST_KEY_LSApplicationCategoryType "public.app-category.mycategory"
            XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS "YES"
    )
    
    # set(QT_NO_FFMPEG_XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY ON)
    qt_add_ios_ffmpeg_libraries(${CMAKE_PROJECT_NAME})
    

    elseif(ANDROID)
    include(CPM)
    CPMAddPackage(
    NAME android_openssl
    URL https://github.com/KDAB/android_openssl/archive/refs/heads/master.zip
    )
    include(${android_openssl_SOURCE_DIR}/android_openssl.cmake)
    add_android_openssl_libraries(${CMAKE_PROJECT_NAME})

    set(ANDROID_PLATFORM_ARCHITECTURE_CODE)
    if(${ANDROID_ABI} STREQUAL "armeabi-v7a")
        set(ANDROID_PLATFORM_ARCHITECTURE_CODE "032")
    elseif(${ANDROID_ABI} STREQUAL "arm64-v8a")
        set(ANDROID_PLATFORM_ARCHITECTURE_CODE "064")
    elseif(${ANDROID_ABI} STREQUAL "x86")
        set(ANDROID_PLATFORM_ARCHITECTURE_CODE "132")
    elseif(${ANDROID_ABI} STREQUAL "x86_64")
        set(ANDROID_PLATFORM_ARCHITECTURE_CODE "164")
    endif()
    set(ANDROID_VERSION_CODE "${ANDROID_PLATFORM_ARCHITECTURE_CODE}${PROJECT_VERSION_MAJOR}${PROJECT_VERSION_MINOR}")
    
    set_target_properties(${CMAKE_PROJECT_NAME}
        PROPERTIES
            # QT_ANDROID_ABIS ${ANDROID_ABI}
            QT_ANDROID_MIN_SDK_VERSION ${QGC_QT_ANDROID_MIN_SDK_VERSION}
            QT_ANDROID_TARGET_SDK_VERSION ${QGC_QT_ANDROID_TARGET_SDK_VERSION}
            QT_ANDROID_PACKAGE_NAME "${QGC_ANDROID_PACKAGE_NAME}"
            QT_ANDROID_PACKAGE_SOURCE_DIR "${QGC_ANDROID_PACKAGE_SOURCE_DIR}"
            QT_ANDROID_VERSION_NAME ${CMAKE_PROJECT_VERSION}
            QT_ANDROID_VERSION_CODE ${ANDROID_VERSION_CODE}
            QT_QML_ROOT_PATH ${CMAKE_SOURCE_DIR}
            # QT_ANDROID_SDK_BUILD_TOOLS_REVISION
            # QT_ANDROID_SYSTEM_LIBS_PREFIX
    )
    

    endif()

    add_compile_definitions(
    QGC_APP_NAME="${QGC_APP_NAME}"
    QGC_ORG_NAME="${QGC_ORG_NAME}"
    QGC_ORG_DOMAIN="${QGC_ORG_DOMAIN}"
    QGC_APP_VERSION_STR="${QGC_APP_VERSION_STR}"
    QGC_SETTINGS_VERSION=${QGC_SETTINGS_VERSION}
    )

    add_subdirectory(src)

    target_link_libraries(${CMAKE_PROJECT_NAME}
    PRIVATE
    Qt6::Core
    Qt6::Core5Compat
    Qt6::Quick
    Qt6::Svg
    Qt6::Widgets
    QGC
    QmlControls

    )

    target_link_libraries(QGroundControl
    PUBLIC
    -ljpeg
    -lpng
    )

    if(ANDROID)
    # Find JPEG library in NDK sysroot, Qt paths, or project paths
    find_library(JPEG_LIBRARY jpeg
    PATHS
    ${ANDROID_NDK}/sysroot/usr/lib/${ANDROID_ABI} # NDK sysroot for the ABI
    ${ANDROID_NDK}/platforms/android-${QGC_QT_ANDROID_MIN_SDK_VERSION}/arch-arm64/usr/lib # Alternative NDK path
    ${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI} # Project-specific libraries
    ${QT_LIBRARY_DIR} # Qt library directory (if applicable)
    NO_DEFAULT_PATH # Restrict to these paths only
    )

    # Find PNG library (you’ll need to do the same for PNG if it’s missing)
    find_library(PNG_LIBRARY png
        PATHS
            ${ANDROID_NDK}/sysroot/usr/lib/${ANDROID_ABI}
            ${ANDROID_NDK}/platforms/android-${QGC_QT_ANDROID_MIN_SDK_VERSION}/arch-arm64/usr/lib
            ${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}
            ${QT_LIBRARY_DIR}
        NO_DEFAULT_PATH
    )
    
    # Check if libraries are found
    if(NOT JPEG_LIBRARY)
        message(WARNING "JPEG library not found. Ensure libjpeg is available for ${ANDROID_ABI}. Attempting to proceed without it.")
        # Optionally, you can specify a fallback path or disable linking if not critical
        # set(JPEG_LIBRARY "")  # Comment out or handle gracefully
    endif()
    if(NOT PNG_LIBRARY)
        message(WARNING "PNG library not found. Ensure libpng is available for ${ANDROID_ABI}. Attempting to proceed without it.")
        # set(PNG_LIBRARY "")  # Comment out or handle gracefully
    endif()
    
    # Link the libraries (only if found)
    if(JPEG_LIBRARY)
        target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${JPEG_LIBRARY})
    endif()
    if(PNG_LIBRARY)
        target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${PNG_LIBRARY})
    endif()
    
    # Continue with other Android-specific configurations
    target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/android/src/AndroidInit.cc)
    target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/android/src)
    
    target_link_libraries(${CMAKE_PROJECT_NAME}
        PRIVATE
            Qt6::Core
            Joystick
            Utilities
    )
    
    if(NOT QGC_NO_SERIAL_LINK)
        target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Comms)
    endif()
    

    endif()
    #target_link_libraries(QGroundControl PRIVATE C:/libpng/build/libpng.a)

    if(QGC_BUILD_TESTING)
    add_subdirectory(test)
    target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE qgctest)
    endif()

    if(ANDROID)
    target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/android/src/AndroidInit.cc)

    target_link_libraries(${CMAKE_PROJECT_NAME}
        PRIVATE
            Qt6::Core
            Joystick
            Utilities
    )
    
    target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/android/src)
    
    if(NOT QGC_NO_SERIAL_LINK)
        target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Comms)
    endif()
    

    endif()

    qt_import_plugins(${CMAKE_PROJECT_NAME}
    INCLUDE Qt6::QSvgPlugin
    EXCLUDE_BY_TYPE geoservices
    INCLUDE_BY_TYPE sqldrivers Qt6::QSQLiteDriverPlugin
    )

    include(Install)

    include(PrintSummary)

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #6

    @InsideFPV said in QGCS error for Android:

    target_link_libraries(QGroundControl
    PUBLIC
    -ljpeg
    -lpng
    )

    Yes, you're linking libpng.
    Was libpng found when running cmake?
    Where is libpng for Android located?

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    I 1 Reply Last reply
    0
    • jsulmJ jsulm

      @InsideFPV said in QGCS error for Android:

      target_link_libraries(QGroundControl
      PUBLIC
      -ljpeg
      -lpng
      )

      Yes, you're linking libpng.
      Was libpng found when running cmake?
      Where is libpng for Android located?

      I Offline
      I Offline
      InsideFPV
      wrote on last edited by
      #7

      @jsulm i am adding only this code porting inside my cmake file.
      target_link_libraries(QGroundControl
      PUBLIC
      -ljpeg
      -lpng
      )

      I am getting gstreamer error and i ask chatgpt and it provide me this solution.
      As form your questing i understand i have to add libpng in my project but i didnt added that till now.(Am i right...?)
      please guide me how can i resolve it...?

      jsulmJ 1 Reply Last reply
      0
      • I InsideFPV

        @jsulm i am adding only this code porting inside my cmake file.
        target_link_libraries(QGroundControl
        PUBLIC
        -ljpeg
        -lpng
        )

        I am getting gstreamer error and i ask chatgpt and it provide me this solution.
        As form your questing i understand i have to add libpng in my project but i didnt added that till now.(Am i right...?)
        please guide me how can i resolve it...?

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #8

        @InsideFPV said in QGCS error for Android:

        i have to add libpng in my project but i didnt added that till now

        You DID add it already! Just look at your CMakeLists.txt file.
        I repeat the questions you did not answer:
        Was libpng found when running cmake?
        Where is libpng for Android located?

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        I 1 Reply Last reply
        0
        • jsulmJ jsulm

          @InsideFPV said in QGCS error for Android:

          i have to add libpng in my project but i didnt added that till now

          You DID add it already! Just look at your CMakeLists.txt file.
          I repeat the questions you did not answer:
          Was libpng found when running cmake?
          Where is libpng for Android located?

          I Offline
          I Offline
          InsideFPV
          wrote on last edited by InsideFPV
          #9

          @jsulm No libpng was not found while running cmake.
          and it is not presend in this location:
          "C:/Users/Software/AppData/Local/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/aarch64-linux-android"

          where will i get libpng ?

          jsulmJ 1 Reply Last reply
          0
          • I InsideFPV

            @jsulm No libpng was not found while running cmake.
            and it is not presend in this location:
            "C:/Users/Software/AppData/Local/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/aarch64-linux-android"

            where will i get libpng ?

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #10

            @InsideFPV If Android NDK does not provide it you will have to build it by yourself from source.

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            I 2 Replies Last reply
            0
            • jsulmJ jsulm

              @InsideFPV If Android NDK does not provide it you will have to build it by yourself from source.

              I Offline
              I Offline
              InsideFPV
              wrote on last edited by
              #11

              @jsulm As i am using master clone.
              As this is my first time doing I am struggling with steps. Can you guide me how to build it..?

              1 Reply Last reply
              0
              • jsulmJ jsulm

                @InsideFPV If Android NDK does not provide it you will have to build it by yourself from source.

                I Offline
                I Offline
                InsideFPV
                wrote on last edited by
                #12

                @jsulm hello sir please guide me how to build lpng file ?

                jsulmJ 1 Reply Last reply
                0
                • I InsideFPV

                  @jsulm hello sir please guide me how to build lpng file ?

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #13

                  @InsideFPV Take a look at https://github.com/julienr/libpng-android
                  Official description how to build: https://github.com/pnggroup/libpng/blob/libpng16/INSTALL

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  I 1 Reply Last reply
                  0
                  • jsulmJ jsulm

                    @InsideFPV Take a look at https://github.com/julienr/libpng-android
                    Official description how to build: https://github.com/pnggroup/libpng/blob/libpng16/INSTALL

                    I Offline
                    I Offline
                    InsideFPV
                    wrote on last edited by
                    #14

                    @jsulm sir i am adding libpng.so and libpng.a on my ndk path that is below
                    C:\Users\Software\AppData\Local\Android\Sdk\ndk\26.1.10909125\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\aarch64-linux-android

                    but still getting error
                    Capture21.PNG Capture22.PNG Capture23.PNG

                    1 Reply Last reply
                    0
                    • jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #15

                      You're missing libjpeg library now. Install it.

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      I 1 Reply Last reply
                      0
                      • jsulmJ jsulm

                        You're missing libjpeg library now. Install it.

                        I Offline
                        I Offline
                        InsideFPV
                        wrote on last edited by
                        #16

                        @jsulm where to find or build this library ?

                        jsulmJ 1 Reply Last reply
                        0
                        • I InsideFPV

                          @jsulm where to find or build this library ?

                          jsulmJ Offline
                          jsulmJ Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on last edited by
                          #17

                          @InsideFPV https://www.ijg.org/files/

                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                          I 2 Replies Last reply
                          0
                          • jsulmJ jsulm

                            @InsideFPV https://www.ijg.org/files/

                            I Offline
                            I Offline
                            InsideFPV
                            wrote on last edited by
                            #18

                            @jsulm yes sir I am build this library but getting another error ..

                            Capture24.PNG Capture25.PNG

                            1 Reply Last reply
                            0
                            • jsulmJ jsulm

                              @InsideFPV https://www.ijg.org/files/

                              I Offline
                              I Offline
                              InsideFPV
                              wrote on last edited by
                              #19

                              @jsulm hello sir
                              please guide me for above error

                              jsulmJ 1 Reply Last reply
                              0
                              • I InsideFPV

                                @jsulm hello sir
                                please guide me for above error

                                jsulmJ Offline
                                jsulmJ Offline
                                jsulm
                                Lifetime Qt Champion
                                wrote on last edited by
                                #20

                                @InsideFPV Maybe you should ask QGCS project? It is not part of Qt...

                                https://forum.qt.io/topic/113070/qt-code-of-conduct

                                I 1 Reply Last reply
                                0
                                • jsulmJ jsulm

                                  @InsideFPV Maybe you should ask QGCS project? It is not part of Qt...

                                  I Offline
                                  I Offline
                                  InsideFPV
                                  wrote on last edited by
                                  #21

                                  @jsulm yes sir I am asking about QGCS project
                                  please help me for this

                                  1 Reply Last reply
                                  0

                                  • Login

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • Users
                                  • Groups
                                  • Search
                                  • Get Qt Extensions
                                  • Unsolved