author | nemo |
Sat, 20 Oct 2012 22:43:25 -0400 | |
changeset 7771 | ce6d4dd0c780 |
parent 6812 | 929b467c7277 |
child 7693 | 0bdb1dd83b63 |
permissions | -rw-r--r-- |
5621 | 1 |
################################################################################### |
2 |
# Hedgewars, a free turn based strategy game |
|
3 |
# Copyright (c) 2011 Richard Deurwaarder <xeli@xelification.com> |
|
4 |
# |
|
5 |
# This program is free software; you can redistribute it and/or modify |
|
6 |
# it under the terms of the GNU General Public License as published by |
|
7 |
# the Free Software Foundation; version 2 of the License |
|
8 |
# |
|
9 |
# This program is distributed in the hope that it will be useful, |
|
10 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
# GNU General Public License for more details. |
|
13 |
# |
|
14 |
# You should have received a copy of the GNU General Public License |
|
15 |
# along with this program; if not, write to the Free Software |
|
16 |
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
|
17 |
################################################################################### |
|
18 |
||
6812
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
19 |
find_program(ANT ant DOC "Path to the java package creator: ant") |
6807
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
20 |
if(NOT EXISTS ${ANT}) |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
21 |
MESSAGE(FATAL_ERROR "Couldn't detect the Ant build tool") |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
22 |
endif() |
5621 | 23 |
|
6230
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
24 |
if(NOT ANDROID_NDK) |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
25 |
find_path(ANDROID_NDK ndk-build) |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
26 |
endif() |
5621 | 27 |
|
6340 | 28 |
if(IS_DIRECTORY "${ANDROID_NDK}") |
6230
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
29 |
MESSAGE(STATUS "Detected the android NDK directory at: " ${ANDROID_NDK}) |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
30 |
else () |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
31 |
MESSAGE(FATAL_ERROR "Couldn't detect the Android NDK directory") |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
32 |
endif() |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
33 |
|
6807
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
34 |
if(NOT ANDROID_NDK_TOOLCHAINDIR) |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
35 |
set(toolchainbase "${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.4.3/prebuilt") |
6812
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
36 |
find_path(ANDROID_NDK_TOOLCHAINDIR arm-linux-androideabi |
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
37 |
"${toolchainbase}/linux-x86" |
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
38 |
"${toolchainbase}/windows") |
6807
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
39 |
endif() |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
40 |
|
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
41 |
if(IS_DIRECTORY "${ANDROID_NDK_TOOLCHAINDIR}") |
6812
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
42 |
MESSAGE(STATUS "Detected the Android NDK toolchain at: ${ANDROID_NDK_TOOLCHAINDIR}") |
6807
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
43 |
else () |
6812
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
44 |
MESSAGE(FATAL_ERROR "Couldn't detect the Android NDK toolchain directory: ${ANDROID_NDK_TOOLCHAINDIR}") |
6807
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
45 |
endif() |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
46 |
|
6230
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
47 |
if(NOT ANDROID_SDK)#Check if its defined at the cmdline |
6807
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
48 |
find_program(ANDROID_SDK adb) #assume they've added platform-tools to their path |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
49 |
get_filename_component(ANDROID_SDK "${ANDROID_SDK}" PATH) |
6340 | 50 |
get_filename_component(ANDROID_SDK "${ANDROID_SDK}" PATH) |
51 |
set(ANDROID_SDK "${ANDROID_SDK}" CACHE PATH "Path to the android sdk" FORCE) |
|
6230
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
52 |
endif() |
5621 | 53 |
|
6340 | 54 |
if( IS_DIRECTORY "${ANDROID_SDK}") |
6230
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
55 |
MESSAGE(STATUS "Detected the android SDK directory at: " ${ANDROID_SDK}) |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
56 |
else () |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
57 |
MESSAGE(FATAL_ERROR "Couldn't detect the Android SDK directory") |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
58 |
endif() |
5442
7c1e5a5f7f34
Greatly simplifies the buildenvironment plus makes cmake a bit more vocal
Xeli
parents:
5408
diff
changeset
|
59 |
|
6230
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
60 |
if( NOT FPC_DIR) |
6807
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
61 |
find_program(FPC_DIR ppcrossarm) |
6340 | 62 |
get_filename_component(FPC_DIR "${FPC_DIR}" PATH) |
6812
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
63 |
if(IS_DIRECTORY "${FPC_DIR}") |
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
64 |
set(FPC_DIR "${FPC_DIR}" CACHE PATH "Path to fpc dir used in the android port" FORCE) |
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
65 |
endif() |
6230
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
66 |
endif() |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
67 |
|
6340 | 68 |
if( IS_DIRECTORY "${FPC_DIR}") |
69 |
MESSAGE(STATUS "Detected the FreePascal directory at: " "${FPC_DIR}") |
|
6230
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
70 |
else () |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
71 |
MESSAGE(FATAL_ERROR "Couldn't detect the FreePascal directory") |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
72 |
endif() |
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
73 |
|
5442
7c1e5a5f7f34
Greatly simplifies the buildenvironment plus makes cmake a bit more vocal
Xeli
parents:
5408
diff
changeset
|
74 |
set(SDL_DIR /home/richard/Downloads/android-project) |
7c1e5a5f7f34
Greatly simplifies the buildenvironment plus makes cmake a bit more vocal
Xeli
parents:
5408
diff
changeset
|
75 |
|
7c1e5a5f7f34
Greatly simplifies the buildenvironment plus makes cmake a bit more vocal
Xeli
parents:
5408
diff
changeset
|
76 |
|
6589
2fa0a274a1e3
some tweaks to the build process, cmake now generates some vital files, fpc only compiles those files which have been changed since the last time, SDL still does not work
Xeli
parents:
6340
diff
changeset
|
77 |
set(ANDROID_SDK_API_LVL 14) |
6230
de1e43054017
automated the build process some more, users must add the android ndk, sdk and fpc dir to their $PATH and cmake will do the rest, I still need a solution for the sdl dir. Subrepo's perhaps?
Xeli
parents:
6039
diff
changeset
|
78 |
set(ANDROID_NDK_API_LVL 5) |
5381
8f95038f3f75
Removed protocol check, using CMake now to setup the building scripts using Templates/* removed old scripts
Xeli
parents:
diff
changeset
|
79 |
|
6589
2fa0a274a1e3
some tweaks to the build process, cmake now generates some vital files, fpc only compiles those files which have been changed since the last time, SDL still does not work
Xeli
parents:
6340
diff
changeset
|
80 |
MESSAGE(STATUS "Creating Makefile.android...") |
2fa0a274a1e3
some tweaks to the build process, cmake now generates some vital files, fpc only compiles those files which have been changed since the last time, SDL still does not work
Xeli
parents:
6340
diff
changeset
|
81 |
|
2fa0a274a1e3
some tweaks to the build process, cmake now generates some vital files, fpc only compiles those files which have been changed since the last time, SDL still does not work
Xeli
parents:
6340
diff
changeset
|
82 |
configure_file(Templates/Makefile.android .) |
5442
7c1e5a5f7f34
Greatly simplifies the buildenvironment plus makes cmake a bit more vocal
Xeli
parents:
5408
diff
changeset
|
83 |
|
6812
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
84 |
find_program(ANDROID_EXEC NAMES android android.bat PATHS "${ANDROID_SDK}/platform-tools" "${ANDROID_SDK}/tools") |
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
85 |
if(ANDROID_EXEC) |
929b467c7277
fixed some typo's. LUA_LIBRARY now points to the right name, regardless of the host machine. Running cmake after a bad attempt (ie forgot to add paths to PATH) now works rather than having to clean the cache
Xeli
parents:
6807
diff
changeset
|
86 |
exec_program(${ANDROID_EXEC} |
6589
2fa0a274a1e3
some tweaks to the build process, cmake now generates some vital files, fpc only compiles those files which have been changed since the last time, SDL still does not work
Xeli
parents:
6340
diff
changeset
|
87 |
ARGS "update project" |
2fa0a274a1e3
some tweaks to the build process, cmake now generates some vital files, fpc only compiles those files which have been changed since the last time, SDL still does not work
Xeli
parents:
6340
diff
changeset
|
88 |
"--path ${CMAKE_CURRENT_SOURCE_DIR}/SDL-android-project" |
2fa0a274a1e3
some tweaks to the build process, cmake now generates some vital files, fpc only compiles those files which have been changed since the last time, SDL still does not work
Xeli
parents:
6340
diff
changeset
|
89 |
"--target android-${ANDROID_SDK_API_LVL}" |
6807
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
90 |
OUTPUT_VARIABLE androidoutput |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
91 |
) |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
92 |
MESSAGE(STATUS "Updating android project config...\n" ${androidoutput}) |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
93 |
else() |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
94 |
MESSAGE(FATAL_ERROR "Couldn't find the android executable in ${ANDROID_SDK}/platform-tools or ${ANDROID_SDK}/tools.") |
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
95 |
endif() |
5381
8f95038f3f75
Removed protocol check, using CMake now to setup the building scripts using Templates/* removed old scripts
Xeli
parents:
diff
changeset
|
96 |
|
6590 | 97 |
exec_program(${HGCOMMAND} |
98 |
ARGS revert ${CMAKE_CURRENT_SOURCE_DIR}/SDL-android-project/jni/SDL/src/core/android/SDL_android.cpp |
|
99 |
OUTPUT_VARIABLE dontcare |
|
100 |
) |
|
6593
6f978fca3711
revert Android.mk back after copying SDL_mixer and SDL_ttf
Xeli
parents:
6591
diff
changeset
|
101 |
exec_program(${HGCOMMAND} |
6590 | 102 |
ARGS revert ${CMAKE_CURRENT_SOURCE_DIR}/SDL-android-project/jni/SDL/src/main/android/SDL_android_main.cpp |
103 |
OUTPUT_VARIABLE dontcare |
|
104 |
) |
|
6593
6f978fca3711
revert Android.mk back after copying SDL_mixer and SDL_ttf
Xeli
parents:
6591
diff
changeset
|
105 |
exec_program(${HGCOMMAND} |
6619
229b99faf580
disable using files from the assets dir, and use fopen()
Xeli
parents:
6594
diff
changeset
|
106 |
ARGS revert ${CMAKE_CURRENT_SOURCE_DIR}/SDL-android-project/jni/SDL/src/file/SDL_rwops.c |
229b99faf580
disable using files from the assets dir, and use fopen()
Xeli
parents:
6594
diff
changeset
|
107 |
OUTPUT_VARIABLE dontcare |
229b99faf580
disable using files from the assets dir, and use fopen()
Xeli
parents:
6594
diff
changeset
|
108 |
) |
229b99faf580
disable using files from the assets dir, and use fopen()
Xeli
parents:
6594
diff
changeset
|
109 |
exec_program(${HGCOMMAND} |
6593
6f978fca3711
revert Android.mk back after copying SDL_mixer and SDL_ttf
Xeli
parents:
6591
diff
changeset
|
110 |
ARGS revert ${CMAKE_CURRENT_SOURCE_DIR}/SDL-android-project/jni/SDL_mixer/Android.mk |
6f978fca3711
revert Android.mk back after copying SDL_mixer and SDL_ttf
Xeli
parents:
6591
diff
changeset
|
111 |
OUTPUT_VARIABLE dontcare |
6f978fca3711
revert Android.mk back after copying SDL_mixer and SDL_ttf
Xeli
parents:
6591
diff
changeset
|
112 |
) |
6f978fca3711
revert Android.mk back after copying SDL_mixer and SDL_ttf
Xeli
parents:
6591
diff
changeset
|
113 |
exec_program(${HGCOMMAND} |
6f978fca3711
revert Android.mk back after copying SDL_mixer and SDL_ttf
Xeli
parents:
6591
diff
changeset
|
114 |
ARGS revert ${CMAKE_CURRENT_SOURCE_DIR}/SDL-android-project/jni/SDL_ttf/Android.mk |
6f978fca3711
revert Android.mk back after copying SDL_mixer and SDL_ttf
Xeli
parents:
6591
diff
changeset
|
115 |
OUTPUT_VARIABLE dontcare |
6f978fca3711
revert Android.mk back after copying SDL_mixer and SDL_ttf
Xeli
parents:
6591
diff
changeset
|
116 |
) |
6f978fca3711
revert Android.mk back after copying SDL_mixer and SDL_ttf
Xeli
parents:
6591
diff
changeset
|
117 |