diff options
-rwxr-xr-x | Toolchain/arm-eabi.cmake | 1 | ||||
-rwxr-xr-x | Toolchain/i686-android.cmake | 31 | ||||
-rw-r--r-- | navit/android/CMakeLists.txt | 6 |
3 files changed, 35 insertions, 3 deletions
diff --git a/Toolchain/arm-eabi.cmake b/Toolchain/arm-eabi.cmake index 3c708f3e0..12b39bdf1 100755 --- a/Toolchain/arm-eabi.cmake +++ b/Toolchain/arm-eabi.cmake @@ -3,6 +3,7 @@ set(CMAKE_SYSTEM_NAME GNU) set(ANDROID TRUE) set(ANDROID_API_VERSION 8 CACHE STRING "Andriod API Version") set(ANDROID_NDK_API_VERSION ${ANDROID_API_VERSION} CACHE STRING "Andriod NDK API Version") +set(ANDROID_ARCH "armeabi" CACHE STRING "Android architecture") find_program(CMAKE_C_COMPILER NAMES arm-eabi-gcc arm-eabi-gcc.exe arm-linux-androideabi-gcc arm-linux-androideabi-gcc.exe) find_program(CMAKE_CXX_COMPILER NAMES arm-eabi-gcc arm-eabi-g++.exe arm-linux-androideabi-g++ arm-linux-androideabi-g++.exe) diff --git a/Toolchain/i686-android.cmake b/Toolchain/i686-android.cmake new file mode 100755 index 000000000..977a4e9bb --- /dev/null +++ b/Toolchain/i686-android.cmake @@ -0,0 +1,31 @@ +set(CMAKE_SYSTEM_NAME GNU) + +set(ANDROID TRUE) +set(ANDROID_API_VERSION 8 CACHE STRING "Andriod API Version") +set(ANDROID_NDK_API_VERSION ${ANDROID_API_VERSION} CACHE STRING "Andriod NDK API Version") +set(ANDROID_ARCH "x86" CACHE STRING "Android architecture") + +find_program(CMAKE_C_COMPILER NAMES i686-android-linux-gcc i686-android-linux-gcc.exe) +find_program(CMAKE_CXX_COMPILER NAMES i686-android-linux-g++ i686-android-linux-g++.exe) +set(PKG_CONFIG_EXECUTABLE "i686-android-pkg-config") + +get_filename_component(COMPILER_PATH ${CMAKE_C_COMPILER} PATH) + +set(ANDROID_NDK "${COMPILER_PATH}/../../../../.." CACHE STRING "PATH to Andriod NDK") + +set(NDK_ARCH_DIR "${ANDROID_NDK}/platforms/android-${ANDROID_NDK_API_VERSION}/arch-x86") +set(CMAKE_FIND_ROOT_PATH ${NDK_ARCH_DIR}) + +set(CMAKE_REQUIRED_FLAGS "-nostdlib -lc -ldl -lgcc -L${NDK_ARCH_DIR}/usr/lib") +set(CMAKE_REQUIRED_INCLUDES "${NDK_ARCH_DIR}/usr/include") + +set(NAVIT_COMPILE_FLAGS "-I${NDK_ARCH_DIR}/usr/include -g -D_GNU_SOURCE -DANDROID -fno-short-enums ${CMAKE_REQUIRED_FLAGS}") + +set(CMAKE_SHARED_LINKER_FLAGS_INIT "${CMAKE_REQUIRED_FLAGS} -Wl,--no-undefined -Wl,-rpath,/system/lib") +set(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_REQUIRED_FLAGS} -Wl,--no-undefined") +set(CMAKE_MODULE_LINKER_FLAGS_INIT "${CMAKE_REQUIRED_FLAGS} -Wl,-rpath,/data/data/org.navitproject.navit/lib") + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) diff --git a/navit/android/CMakeLists.txt b/navit/android/CMakeLists.txt index a197fab6f..2f897558a 100644 --- a/navit/android/CMakeLists.txt +++ b/navit/android/CMakeLists.txt @@ -30,8 +30,8 @@ if (ANDROID) add_custom_target( android_resources DEPENDS build.xml ${MODULES_NAME} ${NAVIT_SUPPORT_LIBS} COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/res/raw/ - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/libs/armeabi - COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/navit/libnavit.so ${CMAKE_CURRENT_BINARY_DIR}/libs/armeabi/ + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/libs/${ANDROID_ARCH} + COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/navit/libnavit.so ${CMAKE_CURRENT_BINARY_DIR}/libs/${ANDROID_ARCH}/ COMMAND ${CMAKE_COMMAND} -D GLOB_EXP="${PROJECT_BINARY_DIR}/navit/navit*.xml" -D DST=${CMAKE_CURRENT_BINARY_DIR}/res/raw @@ -43,7 +43,7 @@ if (ANDROID) -P ${PROJECT_SOURCE_DIR}/cmake/copy_files.cmake COMMAND ${CMAKE_COMMAND} -D GLOB_EXP="${PROJECT_BINARY_DIR}/navit/*/*/.libs/*.so" - -D DST=${CMAKE_CURRENT_BINARY_DIR}/libs/armeabi + -D DST=${CMAKE_CURRENT_BINARY_DIR}/libs/${ANDROID_ARCH} -P ${PROJECT_SOURCE_DIR}/cmake/copy_files.cmake COMMAND ${CMAKE_COMMAND} -D GLOB_EXP="${PROJECT_BINARY_DIR}/po/*.mo" |