# FreeRDP: A Remote Desktop Protocol Implementation # Android Client # # Copyright 2013 Bernhard Miklautz # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. if (NOT ANDROID_NDK) message(FATAL_ERROR "ANDROID_NDK not set but required for building android native library.") endif() set(CMAKE_PROGRAM_PATH ${ANDROID_NDK}) find_program(NDK_COMMAND ndk-build CMAKE_FIND_ROOT_PATH_BOTH) if(NDK_COMMAND STREQUAL "NDK_COMMAND-NOTFOUND") message(FATAL_ERROR "ndk-build not found but required to build native lib") endif() set(NDK_LIB_CFG "${CMAKE_CURRENT_BINARY_DIR}/FreeRDPCore/jni/Android.mk") if(ANDROID_BUILD_JAVA) if (NOT ANDROID_SDK) message(FATAL_ERROR "ANDROID_SDK not set but required for building the java gui (ANDROID_BUILD_JAVA)") endif() # And isn't shiped with the android ndk/sdk so # we need to find it on the local machine SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH) find_program(ANT_COMMAND ant) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY) if(ANT_COMMAND STREQUAL "ANT_COMMAND-NOTFOUND") message(FATAL_ERROR "ant not found but required to build android java") endif() endif(ANDROID_BUILD_JAVA) set(ANDROID_COMMAND "${ANDROID_SDK}/tools/android") if(NOT EXISTS ${ANDROID_COMMAND}) message(FATAL_ERROR "android not found but required to build android java") endif() if(ANDROID_BUILD_JAVA_DEBUG) set(ANDROID_BUILD_TYPE "debug") else() set(ANDROID_BUILD_TYPE "release") endif() if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(ANDROID_DEBUG_ENABLE "true") set(NDK_DEBUG "1") else() set(ANDROID_DEBUG_ENABLE "false") set(NDK_DEBUG "0") endif() set(APPCOMPAT_DIR "${CMAKE_CURRENT_BINARY_DIR}/appcompat_v7") set(supportdir "${ANDROID_SDK}/extras/android/support/v7/appcompat") set(compatibilitydir "${ANDROID_SDK}/extras/android/compatibility/v7/appcompat") if(EXISTS "${supportdir}" AND IS_DIRECTORY "${supportdir}") add_custom_target(copy_appcompat ALL COMMAND ${CMAKE_COMMAND} -E copy_directory "${supportdir}" ${APPCOMPAT_DIR} COMMAND ${ANDROID_COMMAND} update lib-project -p ${APPCOMPAT_DIR} ) elseif(EXISTS "${compatibilitydir}" AND IS_DIRECTORY "${compatibilitydir}") add_custom_target(copy_appcompat ALL COMMAND ${CMAKE_COMMAND} -E copy_directory "${compatibilitydir}" ${APPCOMPAT_DIR} COMMAND ${ANDROID_COMMAND} update lib-project -p ${APPCOMPAT_DIR} ) else() message( FATAL_ERROR "${ANDROID_SDK}/extras/android/{support|compatibility}/v7/appcompat directory not found. Please install a recent version of Android Support Library, CMake will now exit." ) endif() add_subdirectory(FreeRDPCore) add_subdirectory(aFreeRDP)