diff options
| -rw-r--r-- | find-modules/FindGradle.cmake | 2 | ||||
| -rw-r--r-- | kde-modules/KDECMakeSettings.cmake | 7 | ||||
| -rw-r--r-- | toolchain/ECMAndroidDeployQt.cmake | 12 | 
3 files changed, 15 insertions, 6 deletions
| diff --git a/find-modules/FindGradle.cmake b/find-modules/FindGradle.cmake index 08221d43..414ea661 100644 --- a/find-modules/FindGradle.cmake +++ b/find-modules/FindGradle.cmake @@ -71,6 +71,8 @@ function(gradle_add_aar target)      add_custom_command(          OUTPUT ${_build_root}/build/outputs/aar/${ARG_NAME}${_aar_suffix}.aar          COMMAND ${Gradle_EXECUTABLE} ${_aar_gradleCmd} +        # this allows make create-apk to work without installations for apps with AAR libs in the same repository +        COMMAND ${CMAKE_COMMAND} -E copy ${_build_root}/build/outputs/aar/${ARG_NAME}${_aar_suffix}.aar ${CMAKE_BINARY_DIR}/jar/${ARG_NAME}.aar          DEPENDS ${Gradle_EXECUTABLE} ${_src_files}          DEPENDS gradle          WORKING_DIRECTORY ${_build_root} diff --git a/kde-modules/KDECMakeSettings.cmake b/kde-modules/KDECMakeSettings.cmake index 126b0a04..03d10d16 100644 --- a/kde-modules/KDECMakeSettings.cmake +++ b/kde-modules/KDECMakeSettings.cmake @@ -254,6 +254,13 @@ if(NOT KDE_SKIP_BUILD_SETTINGS)         set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")     endif() +   # For Android we need to put shared libraries into "lib" for androiddeployqt to work without prior installation. +   # That fact that this conflicts with the above isn't really an issue, as we can't run things while cross-compiling +   # for Android anyway. +   if (ANDROID) +      set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") +   endif() +     if (APPLE)         # Disable detection of X11 and related package on OS X because when using         # brew or macports, X11 can be installed and thus is detected. diff --git a/toolchain/ECMAndroidDeployQt.cmake b/toolchain/ECMAndroidDeployQt.cmake index 06943390..74f4c550 100644 --- a/toolchain/ECMAndroidDeployQt.cmake +++ b/toolchain/ECMAndroidDeployQt.cmake @@ -9,6 +9,10 @@ function(ecm_androiddeployqt QTANDROID_EXPORTED_TARGET ECM_ADDITIONAL_FIND_ROOT_          set(EXECUTABLE_DESTINATION_PATH "${EXPORT_DIR}/libs/${CMAKE_ANDROID_ARCH_ABI}/lib${QTANDROID_EXPORTED_TARGET}_${CMAKE_ANDROID_ARCH_ABI}.so")      endif()      set(QML_IMPORT_PATHS "") +    # add build directory to the search path as well, so this works without installation +    if (EXISTS ${CMAKE_BINARY_DIR}/lib) +        set(QML_IMPORT_PATHS ${CMAKE_BINARY_DIR}/lib) +    endif()      foreach(prefix ${ECM_ADDITIONAL_FIND_ROOT_PATH})          # qmlimportscanner chokes on symlinks, so we need to resolve those first          get_filename_component(qml_path "${prefix}/lib/qml" REALPATH) @@ -24,13 +28,9 @@ function(ecm_androiddeployqt QTANDROID_EXPORTED_TARGET ECM_ADDITIONAL_FIND_ROOT_          set(DEFINE_QML_IMPORT_PATHS "\"qml-import-paths\": \"${QML_IMPORT_PATHS}\",")      endif() -    set(EXTRA_PREFIX_DIRS "") +    set(EXTRA_PREFIX_DIRS "\"${CMAKE_BINARY_DIR}\"")      foreach(prefix ${ECM_ADDITIONAL_FIND_ROOT_PATH}) -        if (EXTRA_PREFIX_DIRS) -            set(EXTRA_PREFIX_DIRS "${EXTRA_PREFIX_DIRS}, \"${prefix}\"") -        else() -            set(EXTRA_PREFIX_DIRS "\"${prefix}\"") -        endif() +        set(EXTRA_PREFIX_DIRS "${EXTRA_PREFIX_DIRS}, \"${prefix}\"")      endforeach()      if (Qt5Core_VERSION VERSION_LESS 5.14.0) | 
