Greatly simplifies the buildenvironment plus makes cmake a bit more vocal hedgeroid
authorXeli
Thu, 14 Jul 2011 16:03:29 +0200
branchhedgeroid
changeset 5442 7c1e5a5f7f34
parent 5440 0f52c68efc70
child 5444 2b5eebaa31ff
Greatly simplifies the buildenvironment plus makes cmake a bit more vocal
project_files/Android-build/CMakeLists.txt
--- a/project_files/Android-build/CMakeLists.txt	Thu Jul 14 16:01:33 2011 +0200
+++ b/project_files/Android-build/CMakeLists.txt	Thu Jul 14 16:03:29 2011 +0200
@@ -1,58 +1,67 @@
+###################################################################################
+# Uncomment (remove the leading '#') and change the paths accordingly to your own 
+# build environment, please do specify an absolute path (/home/richard/SoftDev    
+# rather than ~/SoftDev).
+# You only need to change the three lines below, after that you can run 'cmake .'
+# from the hedgewars root directory
+# 
+# optionally you can specify SDL_DIR this will move the required SDL libraries to
+# the correct place
+##################################################################################
+
 set(ANDROID_NDK /home/richard/SoftDev/android/android-ndk-r5b)
 set(ANDROID_SDK /home/richard/SoftDev/android/android-sdk-linux_86)
 set(FPC_DIR /home/richard/SoftDev/fpc-2.4.4)
+set(SDL_DIR /home/richard/Downloads/android-project)
+
+if(ANDROID_NDK AND ANDROID_SDK AND FPC_DIR)
+
 set(ANDROID_SDK_API_LVL 8)
 set(ANDROID_NDK_API_LVL 5)
 
+MESSAGE("Creating android scripts and configuration files")
+
 configure_file(Templates/complete_build.sh .)
 configure_file(Templates/default.properties SDL-android-project/)
 configure_file(Templates/local.properties SDL-android-project/)
 configure_file(Templates/Makefile.android .)
 configure_file(Templates/pushToDevice.sh .)
 
-set(PREFERED_DIRS 
-    Sounds
-    Music
-)
-set(DIRS
-    Fonts
-    Forts
-    Graphics
-    Locale
-    Maps
-    misc
-    Missions
-    Names
-    Scripts
-    Themes
-)
-set(PREFERED_DIRS_PREFIX ../../../../Data)
-set(DIRS_PREFIX ../../../../../share/hedgewars/Data)
+if(SDL_DIR)
+
+    MESSAGE("Moving Android port of SDL to the proper directories")
 
-if(CMAKE_HOST_WIN32) #Copy the asset files to the proper folder when using windows
-    set(OPERATION copy_directory)
-else(CMAKE_HOST_WIN32)#If it isn't windows we can assume it's unix/darwin which supports symlinks
-    set(OPERATION create_symlink)
-endif(CMAKE_HOST_WIN32)#We can make the above assumption because the android ndk/sdk only support Linux/Windows/Mac
+    set(DirsToCopy
+        SDL
+	SDL_image
+	SDL_mixer
+	SDL_ttf
+	jpeg
+	png
+	mikmod
+	tremor
+	freetype
+    )
+    foreach(DIR ${DirsToCopy})
+        EXECUTE_PROCESS( 
+	    COMMAND ${CMAKE_COMMAND} 
+	    -E copy_directory 
+	    ${SDL_DIR}/jni/${DIR}
+	    ${CMAKE_CURRENT_SOURCE_DIR}/SDL-android-project/jni/${DIR}
+	)
+    endforeach(DIR)
+    exec_program(${HGCOMMAND}
+		ARGS revert ${CMAKE_CURRENT_SOURCE_DIR}/SDL-android-project/jni/SDL/src/core/android/SDL_android.cpp
+		)
+    exec_program(${HGCOMMAND}
+		ARGS revert ${CMAKE_CURRENT_SOURCE_DIR}/SDL-android-project/jni/SDL/src/main/android/SDL_android_main.cpp
+		)
+else(SDL_DIR)
+   MESSAGE("Android port of SDL not moved..")
+endif(SDL_DIR)
 
-#Copy or symlink the smaller sized resources first
-foreach(DIR ${PREFERED_DIRS})
-        EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}"
-            -E 
-            ${OPERATION}
-            ${PREFERED_DIRS_PREFIX}/${DIR}
-            DataPackage/assets/Data/${DIR} 
-            WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-        )
-endforeach(DIR)
+else(ANDROID_AND AND ANDROID_SDK AND FPC_DIR)
+    MESSAGE("Android port files not created, edit top of ${CMAKE_CURRENT_SOURCE_DIR}/CMakeList.txt to created android specific files")
+endif(ANDROID_NDK AND ANDROID_SDK AND FPC_DIR)
 
-#Use the global resources second
-foreach(DIR ${DIRS})
-         EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}"
-            -E 
-            ${OPERATION} 
-            ${DIRS_PREFIX}/${DIR}
-            DataPackage/assets/Data/${DIR} 
-            WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-         )
-endforeach(DIR)
+