author | koda |
Wed, 06 Mar 2013 01:24:59 +0100 | |
changeset 8657 | 3a957233f459 |
parent 8146 | 1fba650c2aa4 |
child 8330 | aaefa587e277 |
child 9374 | 60063430445b |
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}) |
8146 | 21 |
message(FATAL_ERROR "Couldn't detect the Ant build tool") |
6807
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}") |
8146 | 29 |
message(STATUS "Detected the android NDK directory at: " ${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
|
30 |
else () |
8146 | 31 |
message(FATAL_ERROR "Couldn't detect the Android NDK directory") |
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
|
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) |
7693
0bdb1dd83b63
Hedgeroid: Update to new NDK toolchain (requires NDK r8b)
Medo <smaxein@googlemail.com>
parents:
6812
diff
changeset
|
35 |
set(toolchainbase "${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.6/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}") |
8146 | 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 () |
8146 | 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}") |
8146 | 55 |
message(STATUS "Detected the android SDK directory at: " ${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
|
56 |
else () |
8146 | 57 |
message(FATAL_ERROR "Couldn't detect the Android SDK directory") |
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
|
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}") |
8146 | 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 () |
8146 | 71 |
message(FATAL_ERROR "Couldn't detect the FreePascal directory") |
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
|
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 |
|
8042
644231dded72
up android target api (but this commit is actually just to test buildbot: desync
Xeli
parents:
7693
diff
changeset
|
77 |
set(ANDROID_SDK_API_LVL 16) |
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 |
|
8146 | 80 |
message(STATUS "Creating Makefile.android...") |
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
|
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 |
) |
8146 | 92 |
message(STATUS "Updating android project config...\n" ${androidoutput}) |
6807
f4816282ba01
Improved cmake build script for Android:
simmax@googlemail.com
parents:
6619
diff
changeset
|
93 |
else() |
8146 | 94 |
message(FATAL_ERROR "Couldn't find the android executable in ${ANDROID_SDK}/platform-tools or ${ANDROID_SDK}/tools.") |
6807
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 |