Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/yabause/src/android/CMakeLists.txt
2 views
1
find_program(NDK_BUILD ndk-build)
2
3
if(NOT NDK_BUILD)
4
message(FATAL_ERROR "ndk build not found, bye")
5
endif()
6
7
find_program(SDK_ANDROID android)
8
9
if(NOT SDK_ANDROID)
10
message(FATAL_ERROR "sdk android tool not found, bye")
11
endif()
12
13
if (NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
14
set(yabause_android_SHADOW
15
AndroidManifest.xml
16
project.properties
17
jni/yui.c
18
jni/miniegl.h
19
jni/sndaudiotrack.c
20
jni/sndaudiotrack.h
21
src/org/yabause/android/Yabause.java
22
src/org/yabause/android/YabauseView.java
23
res/drawable/pad.png
24
res/drawable-hdpi/icon.png
25
res/drawable-ldpi/icon.png
26
res/drawable-mdpi/icon.png
27
res/layout/main.xml
28
res/menu/emulation.xml
29
res/values/strings.xml
30
)
31
32
foreach(item IN LISTS yabause_android_SHADOW)
33
message(STATUS ${item})
34
add_custom_command(
35
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${item}"
36
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/${item}" "${CMAKE_CURRENT_BINARY_DIR}/${item}"
37
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${item}"
38
)
39
endforeach()
40
endif()
41
42
set(YABAUSE_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
43
configure_file(
44
${CMAKE_CURRENT_SOURCE_DIR}/jni/Android.mk.in
45
${CMAKE_CURRENT_BINARY_DIR}/jni/Android.mk
46
@ONLY
47
)
48
49
add_custom_command(
50
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/local.properties"
51
COMMAND ${SDK_ANDROID} update project -p "${CMAKE_CURRENT_BINARY_DIR}"
52
DEPENDS
53
"${CMAKE_CURRENT_BINARY_DIR}/AndroidManifest.xml"
54
"${CMAKE_CURRENT_BINARY_DIR}/project.properties"
55
"${CMAKE_CURRENT_BINARY_DIR}/jni/Android.mk"
56
)
57
58
add_custom_command(
59
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/jni/libyabause.a"
60
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/../libyabause.a ${CMAKE_CURRENT_BINARY_DIR}/jni/libyabause.a
61
DEPENDS yabause "${CMAKE_CURRENT_BINARY_DIR}/../config.h"
62
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/local.properties"
63
)
64
65
add_custom_command(
66
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libs/armeabi/libyabause.so"
67
COMMAND "${NDK_BUILD}"
68
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/jni/libyabause.a"
69
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/jni/yui.c"
70
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/jni/miniegl.h"
71
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/jni/sndaudiotrack.c"
72
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/jni/sndaudiotrack.h"
73
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
74
)
75
76
set(yabause_android_RES
77
"${CMAKE_CURRENT_BINARY_DIR}/res/drawable/pad.png"
78
"${CMAKE_CURRENT_BINARY_DIR}/res/drawable-hdpi/icon.png"
79
"${CMAKE_CURRENT_BINARY_DIR}/res/drawable-ldpi/icon.png"
80
"${CMAKE_CURRENT_BINARY_DIR}/res/drawable-mdpi/icon.png"
81
"${CMAKE_CURRENT_BINARY_DIR}/res/layout/main.xml"
82
"${CMAKE_CURRENT_BINARY_DIR}/res/menu/emulation.xml"
83
"${CMAKE_CURRENT_BINARY_DIR}/res/values/strings.xml"
84
)
85
set(yabause_android_SRC
86
"${CMAKE_CURRENT_BINARY_DIR}/src/org/yabause/android/Yabause.java"
87
"${CMAKE_CURRENT_BINARY_DIR}/src/org/yabause/android/YabauseView.java"
88
)
89
90
add_custom_command(
91
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/bin/Yabause-debug.apk"
92
COMMAND "ant" ARGS "debug"
93
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libs/armeabi/libyabause.so"
94
DEPENDS ${yabause_android_SRC}
95
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/AndroidManifest.xml"
96
DEPENDS ${yabause_android_RES}
97
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
98
)
99
100
add_custom_command(
101
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/bin/Yabause-release-unsigned.apk"
102
COMMAND "ant" ARGS "release"
103
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/libs/armeabi/libyabause.so"
104
DEPENDS ${yabause_android_SRC}
105
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/AndroidManifest.xml"
106
DEPENDS ${yabause_android_RES}
107
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
108
)
109
110
if(CMAKE_BUILD_TYPE STREQUAL "Release")
111
add_custom_target(yabause-android ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/bin/Yabause-release-unsigned.apk")
112
else()
113
add_custom_target(yabause-android ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/bin/Yabause-debug.apk")
114
endif()
115
116