2014-03-03 10:01:41 +08:00
|
|
|
#!/usr/bin/python
|
|
|
|
#coding=utf-8
|
|
|
|
"""****************************************************************************
|
|
|
|
Copyright (c) 2014 cocos2d-x.org
|
|
|
|
|
|
|
|
http://www.cocos2d-x.org
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
|
|
in the Software without restriction, including without limitation the rights
|
|
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
|
|
all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
|
THE SOFTWARE.
|
|
|
|
****************************************************************************"""
|
|
|
|
|
2014-03-05 17:00:07 +08:00
|
|
|
'''
|
2014-03-10 19:38:56 +08:00
|
|
|
This script will install environment variables needed to by cocos2d-x. It will set these envrironment variables:
|
|
|
|
* COCOS_CONSOLE_ROOT: used to run cocos console tools, more information about cocos console tools please refer to
|
|
|
|
https://github.com/cocos2d/cocos2d-console
|
|
|
|
* NDK_ROOT: used to build android native codes
|
|
|
|
* ANDROID_SDK_ROOT: used to generate applicatoin on Android through commands
|
|
|
|
* ANT_ROOT: used to generate applicatoin on Android through commands
|
|
|
|
|
2014-03-05 17:00:07 +08:00
|
|
|
On Max OS X, when start a shell, it will read these files and execute commands in sequence:
|
|
|
|
|
|
|
|
~/.bash_profile
|
|
|
|
~/.bash_login
|
|
|
|
~/.profile
|
|
|
|
|
|
|
|
And it will read only one of them. So we will add environment variable in the same sequence.
|
|
|
|
Which means that
|
2014-03-06 06:09:45 +08:00
|
|
|
* add environment variables into ~/.bash_profile if it exists
|
|
|
|
* otherwise it will the add environment variables into ~/.bash_login if it exists
|
2014-03-06 11:51:50 +08:00
|
|
|
* otherwise it will the add environment variables into ~/.profile if it exists
|
2014-03-05 17:00:07 +08:00
|
|
|
|
2014-03-06 11:51:50 +08:00
|
|
|
Will create ~/.bash_profile when none of them exist, and add environment variables into it.
|
2014-03-05 17:00:07 +08:00
|
|
|
|
|
|
|
'''
|
|
|
|
|
2014-03-03 10:01:41 +08:00
|
|
|
import os
|
|
|
|
import sys
|
2014-03-05 17:00:07 +08:00
|
|
|
import fileinput
|
2014-03-10 19:38:56 +08:00
|
|
|
import subprocess
|
2014-03-03 10:01:41 +08:00
|
|
|
from optparse import OptionParser
|
|
|
|
|
|
|
|
COCOS_CONSOLE_ROOT = 'COCOS_CONSOLE_ROOT'
|
2014-03-04 12:04:29 +08:00
|
|
|
NDK_ROOT = 'NDK_ROOT'
|
2014-03-07 10:19:24 +08:00
|
|
|
ANDROID_SDK_ROOT = 'ANDROID_SDK_ROOT'
|
2014-03-10 19:38:56 +08:00
|
|
|
ANT_ROOT = 'ANT_ROOT'
|
2014-03-03 10:01:41 +08:00
|
|
|
|
|
|
|
|
2014-03-06 06:09:45 +08:00
|
|
|
class SetEnvVar(object):
|
2014-03-10 19:38:56 +08:00
|
|
|
def __init__(self):
|
2014-03-06 06:09:45 +08:00
|
|
|
self.current_absolute_path = os.path.dirname(os.path.realpath(__file__))
|
|
|
|
self.file_used_for_setup = ''
|
|
|
|
|
|
|
|
def _isWindows(self):
|
|
|
|
return sys.platform == 'win32'
|
|
|
|
|
|
|
|
def _isLinux(self):
|
|
|
|
return sys.platform.startswith('linux')
|
|
|
|
|
2014-03-07 10:19:24 +08:00
|
|
|
def _get_filepath_for_setup(self):
|
2014-03-06 06:09:45 +08:00
|
|
|
|
|
|
|
home = os.path.expanduser('~')
|
|
|
|
if os.path.exists(os.path.join(home, '.bash_profile')):
|
|
|
|
file_to_write = os.path.join(home, '.bash_profile')
|
|
|
|
elif os.path.exists(os.path.join(home, '.bash_login')):
|
|
|
|
file_to_write = os.path.join(home, '.bash_login')
|
|
|
|
elif os.path.exists(os.path.join(home, '.profile')):
|
|
|
|
file_to_write = os.path.join(home, '.profile')
|
|
|
|
else:
|
|
|
|
file_to_write = os.path.join(home, '.bash_profile')
|
2014-03-07 10:19:24 +08:00
|
|
|
file = open(file_to_write, 'w')
|
|
|
|
file.close()
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 10:19:24 +08:00
|
|
|
return file_to_write
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 10:19:24 +08:00
|
|
|
def _update_system_variable(self, origin_content, target_content):
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 10:19:24 +08:00
|
|
|
is_updated = False
|
|
|
|
file = open(self.file_used_for_setup, 'a')
|
|
|
|
for line in fileinput.input(file_to_write, inplace=1):
|
|
|
|
if line.startswith(origin_content):
|
|
|
|
line = target_content
|
|
|
|
if_undated = True
|
|
|
|
sys.stdout.write(line)
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 10:19:24 +08:00
|
|
|
file.close()
|
|
|
|
return is_updated
|
2014-03-06 06:09:45 +08:00
|
|
|
|
|
|
|
def _find_string_in_file(self, string, file_path):
|
|
|
|
with open(file_path) as f:
|
|
|
|
for line in f:
|
|
|
|
if line.startswith(string):
|
|
|
|
return True
|
|
|
|
return False
|
|
|
|
|
2014-03-08 04:12:25 +08:00
|
|
|
# modify registry table to add an environment variable on windows
|
2014-03-07 10:19:24 +08:00
|
|
|
def _set_environment_variable_win32(self, key, value):
|
|
|
|
|
|
|
|
import _winreg
|
2014-03-07 19:37:33 +08:00
|
|
|
try:
|
|
|
|
env = None
|
|
|
|
env = _winreg.OpenKeyEx(_winreg.HKEY_CURRENT_USER,
|
|
|
|
'Environment',
|
2014-03-07 10:19:24 +08:00
|
|
|
0,
|
|
|
|
_winreg.KEY_SET_VALUE | _winreg.KEY_READ)
|
2014-03-07 19:37:33 +08:00
|
|
|
_winreg.SetValueEx(env, key, 0, _winreg.REG_SZ, value)
|
|
|
|
_winreg.CloseKey(env)
|
|
|
|
except Exception:
|
|
|
|
if env:
|
|
|
|
_winreg.CloseKey(env)
|
2014-03-08 04:12:25 +08:00
|
|
|
print 'Warning: Could not add "%s" into registry' % key
|
2014-03-07 19:37:33 +08:00
|
|
|
return False
|
2014-03-08 04:12:25 +08:00
|
|
|
return True
|
2014-03-07 10:19:24 +08:00
|
|
|
|
|
|
|
def _set_environment_variable_unix(self, key, value):
|
|
|
|
|
|
|
|
file = open(self.file_used_for_setup, 'a')
|
|
|
|
file.write('export %s=%s\n' % (key, value))
|
|
|
|
file.write('export PATH=$%s:$PATH\n' % key)
|
|
|
|
if key == ANDROID_SDK_ROOT:
|
|
|
|
file.write('export PATH=$%s/sdk/tools:$%s/sdk/platform-tools:$PATH\n' % (key, key))
|
|
|
|
file.close()
|
2014-03-08 04:12:25 +08:00
|
|
|
return True
|
2014-03-07 10:19:24 +08:00
|
|
|
|
|
|
|
def _set_environment_variable(self, key, value):
|
|
|
|
|
2014-03-08 04:12:25 +08:00
|
|
|
ret = False
|
2014-03-07 10:19:24 +08:00
|
|
|
if self._isWindows():
|
2014-03-08 04:12:25 +08:00
|
|
|
ret = self._set_environment_variable_win32(key, value)
|
2014-03-07 10:19:24 +08:00
|
|
|
else:
|
2014-03-08 04:12:25 +08:00
|
|
|
ret = self._set_environment_variable_unix(key, value)
|
|
|
|
return ret
|
2014-03-07 10:19:24 +08:00
|
|
|
|
2014-03-06 06:09:45 +08:00
|
|
|
def _find_environment_variable(self, var):
|
|
|
|
try:
|
2014-03-07 10:19:24 +08:00
|
|
|
os.environ[var]
|
2014-03-06 11:51:50 +08:00
|
|
|
return True
|
2014-03-06 06:09:45 +08:00
|
|
|
except Exception:
|
2014-03-07 19:37:33 +08:00
|
|
|
if not self._isWindows():
|
|
|
|
string_to_search = 'export %s' % var
|
|
|
|
home = os.path.expanduser('~')
|
|
|
|
|
|
|
|
# search it in ~/.bash_profile
|
|
|
|
path = os.path.join(home, '.bash_profile')
|
|
|
|
if os.path.exists(path):
|
|
|
|
if self._find_string_in_file(string_to_search, path):
|
|
|
|
self.file_used_for_setup = path
|
|
|
|
return True
|
|
|
|
|
|
|
|
# search it in ~/.bash_login
|
|
|
|
path = os.path.join(home, '.bash_login')
|
|
|
|
if os.path.exists(path):
|
|
|
|
if self._find_string_in_file(string_to_search, path):
|
|
|
|
self.file_used_for_setup = path
|
|
|
|
return True
|
|
|
|
|
|
|
|
# search it in ~/.profile
|
|
|
|
path = os.path.join(home, '.profile')
|
|
|
|
if os.path.exists(path):
|
|
|
|
if self._find_string_in_file(string_to_search, path):
|
|
|
|
self.file_used_for_setup = path
|
|
|
|
return True
|
|
|
|
else:
|
|
|
|
import _winreg
|
|
|
|
try:
|
|
|
|
env = None
|
|
|
|
env = _winreg.OpenKeyEx(_winreg.HKEY_CURRENT_USER,
|
|
|
|
'Environment',
|
|
|
|
0,
|
|
|
|
_winreg.KEY_READ)
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 19:37:33 +08:00
|
|
|
_winreg.QueryValueEx(env, var)
|
|
|
|
_winreg.CloseKey(env)
|
2014-03-06 06:09:45 +08:00
|
|
|
return True
|
2014-03-07 19:37:33 +08:00
|
|
|
except Exception:
|
|
|
|
if env:
|
|
|
|
_winreg.CloseKey(env)
|
|
|
|
return False
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-10 19:38:56 +08:00
|
|
|
def _get_input_value(self):
|
2014-03-07 10:19:24 +08:00
|
|
|
|
2014-03-08 04:12:25 +08:00
|
|
|
return raw_input('\tPlease enter its path (or press Enter to skip): ')
|
2014-03-06 17:18:12 +08:00
|
|
|
|
2014-03-07 16:15:18 +08:00
|
|
|
# # python on linux doesn't include Tkinter model, so let user input in terminal
|
|
|
|
# if self._isLinux():
|
|
|
|
# input_value = raw_input('Couldn\'t find the "%s" envrironment variable. Please enter it: ' % sys_var)
|
|
|
|
# else:
|
2014-03-07 10:19:24 +08:00
|
|
|
|
2014-03-07 16:15:18 +08:00
|
|
|
# # pop up a window to let user select path for ndk root
|
|
|
|
# import Tkinter
|
|
|
|
# import tkFileDialog
|
2014-03-07 10:19:24 +08:00
|
|
|
|
2014-03-07 16:15:18 +08:00
|
|
|
# self.tmp_input_value = None
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 16:15:18 +08:00
|
|
|
# root = Tkinter.Tk()
|
|
|
|
|
|
|
|
# if sys_var == NDK_ROOT:
|
|
|
|
# root.wm_title('Set NDK_ROOT')
|
|
|
|
# else:
|
|
|
|
# root.wm_title('Set ANDROID_SDK_ROOT')
|
|
|
|
|
|
|
|
# def callback():
|
|
|
|
# self.tmp_input_value = tkFileDialog.askdirectory()
|
|
|
|
# root.destroy()
|
|
|
|
|
|
|
|
# if sys_var == NDK_ROOT:
|
|
|
|
# label_content = 'Select path for Android NDK:'
|
|
|
|
# label_help = """
|
|
|
|
# The Android NDK is needed to develop games for Android.
|
|
|
|
# For further information, go to:
|
|
|
|
# http://developer.android.com/tools/sdk/ndk/index.html.
|
|
|
|
|
|
|
|
# You can safely skip this step now. You can set the NDK_ROOT later.
|
|
|
|
# """
|
|
|
|
|
|
|
|
# if sys_var == ANDROID_SDK_ROOT:
|
|
|
|
# label_content = 'Select path for Android SDK'
|
|
|
|
# label_help = """
|
|
|
|
# The Android SDK is needed to develop games for Android.
|
|
|
|
# For further information, go to:
|
|
|
|
# https://developer.android.com/tools/sdk/ndk/index.html.
|
|
|
|
|
|
|
|
# You can safely skip this step now. You can set the ANDROID_SDK_ROOT later.
|
|
|
|
# """
|
|
|
|
|
|
|
|
# Tkinter.Label(root, text=label_help).pack()
|
|
|
|
# Tkinter.Button(root, text=label_content, command=callback).pack()
|
|
|
|
# self._center(root)
|
|
|
|
# root.mainloop()
|
|
|
|
|
|
|
|
# input_value = self.tmp_input_value
|
|
|
|
# self.tmp_input_value = None
|
2014-03-07 10:19:24 +08:00
|
|
|
|
2014-03-07 16:15:18 +08:00
|
|
|
# return input_value
|
|
|
|
|
|
|
|
# # display a window in center and put it on top
|
|
|
|
# def _center(self, win):
|
|
|
|
# win.update_idletasks()
|
|
|
|
# width = win.winfo_width()
|
|
|
|
# height = win.winfo_height()
|
|
|
|
# x = (win.winfo_screenwidth() / 2) - (width / 2)
|
|
|
|
# y = (win.winfo_screenheight() / 2) - (height / 2)
|
|
|
|
# win.geometry('{}x{}+{}+{}'.format(width, height, x, y))
|
|
|
|
# win.wm_attributes('-topmost', 1)
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 10:19:24 +08:00
|
|
|
def _is_ndk_root_valid(self, ndk_root):
|
|
|
|
if not ndk_root:
|
|
|
|
return False
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 10:19:24 +08:00
|
|
|
ndk_build_path = os.path.join(ndk_root, 'ndk-build')
|
|
|
|
if os.path.isfile(ndk_build_path):
|
|
|
|
return True
|
2014-03-06 06:09:45 +08:00
|
|
|
else:
|
2014-03-07 10:19:24 +08:00
|
|
|
return False
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 10:19:24 +08:00
|
|
|
def _is_android_sdk_root_valid(self, android_sdk_root):
|
|
|
|
if not android_sdk_root:
|
|
|
|
return False
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 10:19:24 +08:00
|
|
|
android_path = os.path.join(android_sdk_root, 'sdk/tools/android')
|
|
|
|
if os.path.isfile(android_path):
|
|
|
|
return True
|
|
|
|
else:
|
|
|
|
return False
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-10 19:38:56 +08:00
|
|
|
def _is_ant_exists(self):
|
|
|
|
|
|
|
|
try:
|
|
|
|
os.environ[ANT_ROOT]
|
|
|
|
return True
|
|
|
|
except Exception:
|
|
|
|
pass
|
|
|
|
|
|
|
|
ant_found = False
|
|
|
|
commands = ['ant', '-version']
|
|
|
|
child = subprocess.Popen(commands, stdout=subprocess.PIPE)
|
|
|
|
for line in child.stdout:
|
|
|
|
if 'Ant' in line:
|
|
|
|
ant_found = True
|
|
|
|
break
|
|
|
|
|
|
|
|
child.wait()
|
|
|
|
|
|
|
|
return ant_found
|
|
|
|
|
|
|
|
def _is_ant_root_valid(self, ant_root):
|
|
|
|
|
|
|
|
ant_path = ''
|
|
|
|
if self._isWindows():
|
|
|
|
ant_path = os.path.join(ant_root, 'ant.exe')
|
|
|
|
else:
|
|
|
|
ant_path = os.path.join(ant_root, 'ant')
|
|
|
|
|
|
|
|
if os.path.isfile(ant_path):
|
|
|
|
return True
|
|
|
|
else:
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
2014-03-06 06:09:45 +08:00
|
|
|
def set_console_root(self):
|
|
|
|
|
2014-03-08 04:12:25 +08:00
|
|
|
print ""
|
2014-03-06 06:09:45 +08:00
|
|
|
print '-> Adding COCOS2D_CONSOLE_ROOT environment variable...',
|
|
|
|
if not self._find_environment_variable(COCOS_CONSOLE_ROOT):
|
|
|
|
cocos_consle_root = os.path.join(self.current_absolute_path, 'tools/cocos2d-console/bin')
|
2014-03-07 19:37:33 +08:00
|
|
|
if self._set_environment_variable(COCOS_CONSOLE_ROOT, cocos_consle_root):
|
|
|
|
print 'OK'
|
2014-03-08 04:12:25 +08:00
|
|
|
print ' -> Added: %s = %s' % (COCOS_CONSOLE_ROOT, cocos_consle_root)
|
2014-03-07 19:37:33 +08:00
|
|
|
return True
|
|
|
|
else:
|
|
|
|
print 'ALREADY ADDED'
|
|
|
|
return False
|
2014-03-06 06:09:45 +08:00
|
|
|
|
|
|
|
|
2014-03-10 19:38:56 +08:00
|
|
|
def set_environment_variables(self, ndk_root, android_sdk_root, ant_root):
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-08 04:12:25 +08:00
|
|
|
print '\nSetting up cocos2d-x...'
|
2014-03-06 06:09:45 +08:00
|
|
|
|
2014-03-07 10:19:24 +08:00
|
|
|
self.file_used_for_setup = self._get_filepath_for_setup()
|
|
|
|
|
|
|
|
console_added = self.set_console_root()
|
|
|
|
|
2014-03-08 04:12:25 +08:00
|
|
|
#
|
|
|
|
# NDK_ROOT
|
|
|
|
#
|
|
|
|
print ""
|
|
|
|
print '-> Looking for NDK_ROOT envrironment variable...',
|
2014-03-07 10:19:24 +08:00
|
|
|
|
|
|
|
ndk_root_added = False
|
|
|
|
ndk_root_found = self._find_environment_variable(NDK_ROOT)
|
|
|
|
|
2014-03-07 19:37:33 +08:00
|
|
|
if not ndk_root and not ndk_root_found:
|
2014-03-08 04:12:25 +08:00
|
|
|
print "NOT FOUND"
|
2014-03-10 19:38:56 +08:00
|
|
|
ndk_root = self._get_input_value()
|
2014-03-07 10:19:24 +08:00
|
|
|
|
2014-03-10 19:38:56 +08:00
|
|
|
if ndk_root and not self._is_ndk_root_valid(ndk_root) and not ndk_root_found:
|
2014-03-08 04:12:25 +08:00
|
|
|
print 'Error: %s is not a valid path of NDK_ROOT. Ignoring it.' % ndk_root
|
2014-03-07 10:19:24 +08:00
|
|
|
|
|
|
|
if ndk_root_found:
|
2014-03-08 04:12:25 +08:00
|
|
|
print 'FOUND'
|
2014-03-06 06:09:45 +08:00
|
|
|
else:
|
2014-03-07 10:19:24 +08:00
|
|
|
if ndk_root and self._is_ndk_root_valid(ndk_root):
|
2014-03-07 19:37:33 +08:00
|
|
|
if self._set_environment_variable(NDK_ROOT, ndk_root):
|
|
|
|
ndk_root_added = True
|
2014-03-08 04:12:25 +08:00
|
|
|
print 'ADDED'
|
|
|
|
print ' -- Added: %s = %s' % (NDK_ROOT, ndk_root)
|
2014-03-07 10:19:24 +08:00
|
|
|
|
2014-03-08 04:12:25 +08:00
|
|
|
|
|
|
|
#
|
|
|
|
# ANDROID_SDK_ROOT
|
|
|
|
#
|
|
|
|
print ""
|
|
|
|
print '-> Looking for ANDROID_SDK_ROOT envrironment variable...',
|
2014-03-07 10:19:24 +08:00
|
|
|
|
|
|
|
android_sdk_root_added = False
|
|
|
|
android_sdk_root_found = self._find_environment_variable(ANDROID_SDK_ROOT)
|
|
|
|
|
2014-03-07 19:37:33 +08:00
|
|
|
if not android_sdk_root and not android_sdk_root_found:
|
2014-03-08 04:12:25 +08:00
|
|
|
print "NOT FOUND"
|
2014-03-10 19:38:56 +08:00
|
|
|
android_sdk_root = self._get_input_value()
|
2014-03-07 10:19:24 +08:00
|
|
|
|
2014-03-10 19:38:56 +08:00
|
|
|
if android_sdk_root and not self._is_android_sdk_root_valid(android_sdk_root) and not android_sdk_root_found:
|
2014-03-08 04:12:25 +08:00
|
|
|
print 'Error: %s is not a valid path of ANDROID_SDK_ROOT. Ignoring it.' % android_sdk_root
|
2014-03-07 10:19:24 +08:00
|
|
|
|
|
|
|
if android_sdk_root_found:
|
2014-03-08 04:12:25 +08:00
|
|
|
print 'FOUND'
|
2014-03-07 10:19:24 +08:00
|
|
|
else:
|
|
|
|
if android_sdk_root and self._is_android_sdk_root_valid(android_sdk_root):
|
2014-03-07 19:37:33 +08:00
|
|
|
if self._set_environment_variable(ANDROID_SDK_ROOT, android_sdk_root):
|
|
|
|
android_sdk_root_added = True
|
2014-03-08 04:12:25 +08:00
|
|
|
print 'ADDED'
|
|
|
|
print ' -> Added: %s = %s' % (ANDROID_SDK_ROOT, android_sdk_root)
|
|
|
|
|
|
|
|
#
|
2014-03-10 19:38:56 +08:00
|
|
|
# ANT_ROOT
|
|
|
|
#
|
|
|
|
print ""
|
|
|
|
print '-> Looking for ANT_ROOT envrironment variable...',
|
|
|
|
ant_root_added = False
|
|
|
|
ant_found = self._is_ant_exists()
|
|
|
|
|
|
|
|
if not ant_root and not ant_found:
|
|
|
|
print 'NOT FOUND'
|
|
|
|
ant_root = self._get_input_value()
|
|
|
|
|
|
|
|
if ant_root and not self._is_ant_root_valid(ant_root) and not ant_found:
|
|
|
|
print 'Error: %s is not a valid path of ANT_ROOT. Ignoring it.' % ant_root
|
|
|
|
|
|
|
|
|
|
|
|
if ant_found:
|
|
|
|
print 'FOUND'
|
|
|
|
else:
|
|
|
|
if ant_root and self._is_ant_root_valid(ant_root):
|
|
|
|
if self._set_environment_variable(ANT_ROOT, ant_root):
|
|
|
|
ant_root_added = True
|
|
|
|
print 'ADDED'
|
|
|
|
print ' -> Added: %s = %s' % (ANT_ROOT, ant_root)
|
|
|
|
|
2014-03-08 04:12:25 +08:00
|
|
|
if self._isWindows():
|
|
|
|
target = 'registry'
|
|
|
|
else:
|
|
|
|
target = self.file_used_for_setup
|
2014-03-03 10:01:41 +08:00
|
|
|
|
2014-03-10 19:38:56 +08:00
|
|
|
if console_added or ndk_root_added or android_sdk_root_added or ant_root_added:
|
2014-03-08 04:12:25 +08:00
|
|
|
print '\nSet up successfull:'
|
2014-03-07 10:19:24 +08:00
|
|
|
|
|
|
|
if console_added:
|
|
|
|
print '\tCOCOS_CONSOLE_ROOT was added into %s' % target
|
|
|
|
if ndk_root_added:
|
|
|
|
print '\tNDK_ROOT was added into %s' % target
|
|
|
|
if android_sdk_root_added:
|
|
|
|
print '\tANDROID_SDK_ROOT was added into %s' % target
|
2014-03-10 19:38:56 +08:00
|
|
|
if ant_root_added:
|
|
|
|
print '\tANT_ROOT was added into %s' % target
|
2014-03-07 10:19:24 +08:00
|
|
|
else:
|
2014-03-08 04:12:25 +08:00
|
|
|
print '\nCOCOS_CONSOLE_ROOT was already added. Edit "%s" for manual changes' % target
|
2014-03-03 10:01:41 +08:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
2014-03-06 06:09:45 +08:00
|
|
|
parser = OptionParser()
|
|
|
|
parser.add_option('-n', '--ndkroot', dest='ndk_root', help='directory of ndk root')
|
2014-03-07 10:19:24 +08:00
|
|
|
parser.add_option('-a', '--androidsdkroot', dest='android_sdk_root', help='directory of android sdk root')
|
2014-03-10 19:38:56 +08:00
|
|
|
parser.add_option('-t', '--antroot', dest='ant_root', help='directory of ant root')
|
2014-03-06 06:09:45 +08:00
|
|
|
opts, args = parser.parse_args()
|
|
|
|
|
|
|
|
# set environment variables
|
2014-03-07 10:19:24 +08:00
|
|
|
env = SetEnvVar()
|
2014-03-10 19:38:56 +08:00
|
|
|
env.set_environment_variables(opts.ndk_root, opts.android_sdk_root, opts.ant_root)
|