summaryrefslogtreecommitdiffstats
path: root/project/cmake/scripts/android
diff options
context:
space:
mode:
Diffstat (limited to 'project/cmake/scripts/android')
-rw-r--r--project/cmake/scripts/android/ArchSetup.cmake (renamed from project/cmake/scripts/android/archsetup.cmake)19
-rw-r--r--project/cmake/scripts/android/Install.cmake123
l---------project/cmake/scripts/android/Macros.cmake1
-rw-r--r--project/cmake/scripts/android/PathSetup.cmake33
-rw-r--r--project/cmake/scripts/android/install.cmake0
l---------project/cmake/scripts/android/macros.cmake1
l---------project/cmake/scripts/android/pathsetup.cmake1
7 files changed, 169 insertions, 9 deletions
diff --git a/project/cmake/scripts/android/archsetup.cmake b/project/cmake/scripts/android/ArchSetup.cmake
index 86c0f6a..281f94f 100644
--- a/project/cmake/scripts/android/archsetup.cmake
+++ b/project/cmake/scripts/android/ArchSetup.cmake
@@ -1,5 +1,7 @@
1if(NOT CMAKE_TOOLCHAIN_FILE) 1if(NOT CMAKE_TOOLCHAIN_FILE)
2 message(FATAL_ERROR "CMAKE_TOOLCHAIN_FILE required for android. See ${PROJECT_SOURCE_DIR}/README.md") 2 message(FATAL_ERROR "CMAKE_TOOLCHAIN_FILE required for android. See ${PROJECT_SOURCE_DIR}/README.md")
3elseif(NOT SDK_PLATFORM)
4 message(FATAL_ERROR "Toolchain did not define SDK_PLATFORM. Possibly outdated depends.")
3endif() 5endif()
4 6
5set(ARCH_DEFINES -DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID) 7set(ARCH_DEFINES -DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID)
@@ -10,9 +12,13 @@ if(WITH_ARCH)
10 set(ARCH ${WITH_ARCH}) 12 set(ARCH ${WITH_ARCH})
11else() 13else()
12 if(CPU STREQUAL armeabi-v7a) 14 if(CPU STREQUAL armeabi-v7a)
13 set(ARCH arm-linux-androideabi) 15 set(ARCH arm)
16 set(NEON True)
17 elseif(CPU STREQUAL arm64-v8a)
18 set(ARCH aarch64)
14 elseif(CPU STREQUAL i686) 19 elseif(CPU STREQUAL i686)
15 set(ARCH i686-linux-android) 20 set(ARCH i486-linux)
21 set(NEON False)
16 else() 22 else()
17 message(SEND_ERROR "Unknown CPU: ${CPU}") 23 message(SEND_ERROR "Unknown CPU: ${CPU}")
18 endif() 24 endif()
@@ -21,10 +27,9 @@ endif()
21set(FFMPEG_OPTS --enable-cross-compile --cpu=cortex-a9 --arch=arm --target-os=linux --enable-neon 27set(FFMPEG_OPTS --enable-cross-compile --cpu=cortex-a9 --arch=arm --target-os=linux --enable-neon
22 --disable-vdpau --cc=${CMAKE_C_COMPILER} --host-cc=${CMAKE_C_COMPILER} 28 --disable-vdpau --cc=${CMAKE_C_COMPILER} --host-cc=${CMAKE_C_COMPILER}
23 --strip=${CMAKE_STRIP}) 29 --strip=${CMAKE_STRIP})
24set(ENABLE_SDL OFF) 30set(ENABLE_SDL OFF CACHE BOOL "" FORCE)
25set(ENABLE_X11 OFF) 31set(ENABLE_X11 OFF CACHE BOOL "" FORCE)
26set(ENABLE_EGL ON) 32set(ENABLE_AML OFF CACHE BOOL "" FORCE)
27set(ENABLE_AML ON) 33set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE)
28set(ENABLE_OPTICAL OFF)
29 34
30list(APPEND DEPLIBS android log jnigraphics) 35list(APPEND DEPLIBS android log jnigraphics)
diff --git a/project/cmake/scripts/android/Install.cmake b/project/cmake/scripts/android/Install.cmake
new file mode 100644
index 0000000..5c66f41
--- /dev/null
+++ b/project/cmake/scripts/android/Install.cmake
@@ -0,0 +1,123 @@
1# Android packaging
2
3find_program(AAPT_EXECUTABLE aapt PATHS ${SDK_BUILDTOOLS_PATH})
4if(NOT AAPT_EXECUTABLE)
5 message(FATAL_ERROR "Could NOT find aapt executable")
6endif()
7find_program(DX_EXECUTABLE dx PATHS ${SDK_BUILDTOOLS_PATH})
8if(NOT DX_EXECUTABLE)
9 message(FATAL_ERROR "Could NOT find dx executable")
10endif()
11find_program(ZIPALIGN_EXECUTABLE zipalign PATHS ${SDK_BUILDTOOLS_PATH})
12if(NOT ZIPALIGN_EXECUTABLE)
13 message(FATAL_ERROR "Could NOT find zipalign executable")
14endif()
15
16# Configure files into packaging environment.
17configure_file(${CORE_SOURCE_DIR}/tools/android/packaging/Makefile.in
18 ${CMAKE_BINARY_DIR}/tools/android/packaging/Makefile @ONLY)
19configure_file(${CORE_SOURCE_DIR}/tools/android/packaging/apksign
20 ${CMAKE_BINARY_DIR}/tools/android/packaging/apksign COPYONLY)
21configure_file(${CORE_SOURCE_DIR}/tools/android/packaging/make_symbols.sh
22 ${CMAKE_BINARY_DIR}/tools/android/packaging/make_symbols.sh COPYONLY)
23file(WRITE ${CMAKE_BINARY_DIR}/tools/depends/Makefile.include
24 "$(PREFIX)/lib/${APP_NAME_LC}/lib${APP_NAME_LC}.so: ;\n")
25
26set(package_files strings.xml
27 activity_main.xml
28 AndroidManifest.xml
29 src/org/xbmc/kodi/XBMCOnAudioFocusChangeListener.java
30 src/org/xbmc/kodi/XBMCInputDeviceListener.java
31 src/org/xbmc/kodi/Main.java
32 src/org/xbmc/kodi/XBMCSettingsContentObserver.java
33 src/org/xbmc/kodi/XBMCOnFrameAvailableListener.java
34 src/org/xbmc/kodi/XBMCVideoView.java
35 src/org/xbmc/kodi/Splash.java
36 src/org/xbmc/kodi/XBMCBroadcastReceiver.java)
37foreach(file IN LISTS package_files)
38 configure_file(${CORE_SOURCE_DIR}/tools/android/packaging/xbmc/${file}.in
39 ${CMAKE_BINARY_DIR}/tools/android/packaging/xbmc/${file} @ONLY)
40endforeach()
41
42# Copy files to the location expected by the Android packaging scripts.
43add_custom_target(bundle
44 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CORE_SOURCE_DIR}/tools/android/packaging/media
45 ${CMAKE_BINARY_DIR}/tools/android/packaging/media
46 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CORE_SOURCE_DIR}/tools/android/packaging/xbmc/res
47 ${CMAKE_BINARY_DIR}/tools/android/packaging/xbmc/res
48 COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPENDS_PATH}/lib/python2.7 ${libdir}/python2.7
49 COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPENDS_PATH}/share/${APP_NAME_LC} ${datadir}/${APP_NAME_LC}
50 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_NAME_LC}>
51 ${libdir}/${APP_NAME_LC}/$<TARGET_FILE_NAME:${APP_NAME_LC}>)
52add_dependencies(bundle ${APP_NAME_LC})
53
54# This function is used to prepare a prefix expected by the Android packaging
55# scripts. It creates a bundle_files command that is added to the bundle target.
56function(add_bundle_file file destination relative)
57 if(NOT TARGET bundle_files)
58 file(REMOVE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/BundleFiles.cmake)
59 add_custom_target(bundle_files COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/BundleFiles.cmake)
60 add_dependencies(bundle bundle_files)
61 endif()
62
63 string(REPLACE "${relative}/" "" outfile ${file})
64 get_filename_component(file ${file} REALPATH)
65 get_filename_component(outdir ${outfile} DIRECTORY)
66 file(APPEND ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/BundleFiles.cmake
67 "file(COPY \"${file}\" DESTINATION \"${destination}/${outdir}\")\n")
68 if(file MATCHES "\\.so\\..+$")
69 get_filename_component(srcfile "${file}" NAME)
70 string(REGEX REPLACE "\\.so\\..+$" "\.so" destfile ${srcfile})
71 file(APPEND ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/BundleFiles.cmake
72 "file(RENAME \"${destination}/${outdir}/${srcfile}\" \"${destination}/${outdir}/${destfile}\")\n")
73 endif()
74endfunction()
75
76# Copy files into prefix
77foreach(file IN LISTS XBT_FILES install_data)
78 string(REPLACE "${CMAKE_BINARY_DIR}/" "" file ${file})
79 add_bundle_file(${CMAKE_BINARY_DIR}/${file} ${datarootdir}/${APP_NAME_LC} ${CMAKE_BINARY_DIR})
80endforeach()
81
82foreach(library IN LISTS LIBRARY_FILES)
83 add_bundle_file(${library} ${libdir}/${APP_NAME_LC} ${CMAKE_BINARY_DIR})
84endforeach()
85
86foreach(lib IN LISTS required_dyload dyload_optional ITEMS Shairplay)
87 string(TOUPPER ${lib} lib_up)
88 set(lib_so ${${lib_up}_SONAME})
89 if(lib_so AND EXISTS ${DEPENDS_PATH}/lib/${lib_so})
90 add_bundle_file(${DEPENDS_PATH}/lib/${lib_so} ${libdir} "")
91 endif()
92endforeach()
93add_bundle_file(${SMBCLIENT_LIBRARY} ${libdir} "")
94add_bundle_file(${DEPENDS_PATH}/lib/librtmp.so ${libdir} "")
95
96# Main targets from Makefile.in
97if(CPU MATCHES i686)
98 set(CPU x86)
99 set(ARCH x86)
100endif()
101foreach(target apk obb apk-unsigned apk-obb apk-obb-unsigned apk-noobb apk-clean apk-sign)
102 add_custom_target(${target}
103 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} ${CMAKE_MAKE_PROGRAM}
104 -C ${CMAKE_BINARY_DIR}/tools/android/packaging
105 CORE_SOURCE_DIR=${CORE_SOURCE_DIR}
106 CC=${CMAKE_C_COMPILER}
107 CPU=${CPU}
108 ARCH=${ARCH}
109 PREFIX=${prefix}
110 NDKROOT=${NDKROOT}
111 SDKROOT=${SDKROOT}
112 SDK_PLATFORM=${SDK_PLATFORM}
113 STRIP=${CMAKE_STRIP}
114 AAPT=${AAPT_EXECUTABLE}
115 DX=${DX_EXECUTABLE}
116 ZIPALIGN=${ZIPALIGN_EXECUTABLE}
117 ${target}
118 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/android/packaging
119 )
120 if(NOT target STREQUAL apk-clean)
121 add_dependencies(${target} bundle)
122 endif()
123endforeach()
diff --git a/project/cmake/scripts/android/Macros.cmake b/project/cmake/scripts/android/Macros.cmake
new file mode 120000
index 0000000..2fdbb25
--- /dev/null
+++ b/project/cmake/scripts/android/Macros.cmake
@@ -0,0 +1 @@
../linux/Macros.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/android/PathSetup.cmake b/project/cmake/scripts/android/PathSetup.cmake
new file mode 100644
index 0000000..69de883
--- /dev/null
+++ b/project/cmake/scripts/android/PathSetup.cmake
@@ -0,0 +1,33 @@
1if(NOT prefix)
2 set(prefix ${CMAKE_BINARY_DIR}/install)
3endif()
4set(CMAKE_INSTALL_PREFIX ${prefix})
5if(NOT exec_prefix)
6 set(exec_prefix ${prefix})
7endif()
8if(NOT libdir)
9 set(libdir ${prefix}/lib)
10endif()
11if(NOT bindir)
12 set(bindir ${prefix}/bin)
13endif()
14if(NOT includedir)
15 set(includedir ${prefix}/include)
16endif()
17if(NOT datarootdir)
18 set(datarootdir ${prefix}/share)
19endif()
20if(NOT datadir)
21 set(datadir ${datarootdir})
22endif()
23
24list(APPEND final_message "-- PATH config --")
25list(APPEND final_message "Prefix: ${prefix}")
26list(APPEND final_message "Libdir: ${libdir}")
27list(APPEND final_message "Bindir: ${bindir}")
28list(APPEND final_message "Includedir: ${includedir}")
29list(APPEND final_message "Datarootdir: ${datarootdir}")
30list(APPEND final_message "Datadir: ${datadir}")
31
32set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/kodi\"
33 -DINSTALL_PATH=\"${datarootdir}/kodi\")
diff --git a/project/cmake/scripts/android/install.cmake b/project/cmake/scripts/android/install.cmake
deleted file mode 100644
index e69de29..0000000
--- a/project/cmake/scripts/android/install.cmake
+++ /dev/null
diff --git a/project/cmake/scripts/android/macros.cmake b/project/cmake/scripts/android/macros.cmake
deleted file mode 120000
index 28c77ca..0000000
--- a/project/cmake/scripts/android/macros.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/macros.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/android/pathsetup.cmake b/project/cmake/scripts/android/pathsetup.cmake
deleted file mode 120000
index 26d7f17..0000000
--- a/project/cmake/scripts/android/pathsetup.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/pathsetup.cmake \ No newline at end of file