mirror of
https://github.com/Relintai/the_tower.git
synced 2025-04-03 20:52:45 +02:00
Add the build tools from broken seals.
This commit is contained in:
parent
cdbe7247fc
commit
f9a6f68ef9
0
game/.gitignore → .gitignore
vendored
0
game/.gitignore → .gitignore
vendored
BIN
.sconsign.dblite
Normal file
BIN
.sconsign.dblite
Normal file
Binary file not shown.
1
HEADS
Normal file
1
HEADS
Normal file
@ -0,0 +1 @@
|
||||
{"engine": {"3.2": "94a0fc47f7b4e90f8973f9adbfd3312579ed2825", "master": "8c73e813134001e575b6f59e3b0100471c007410", "3.x": "cdd4f2722a7c16d9e36521d7180cc80715591554"}, "world_generator": {"master": "260c430f11b0b591eaf4714516419aa327d2842c"}, "entity_spell_system": {"master": "3c334566ff05a74e913cd5c5ff38ae45aba5f5d2"}, "ui_extensions": {"master": "80a3b96fc56991a0f88a1d441ed1e3cebaf3307a"}, "voxelman": {"master": "65485930a20f65844d496b4ba47dec5b6ed70b91"}, "texture_packer": {"master": "ae4d222fbaade063ed6f0bc9f3aaa53df68a7fed"}, "fastnoise": {"master": "46bb1f610bfb7171613b5c708d312bcf94e89356"}, "mesh_data_resource": {"master": "2bf76b8d07c2821161886ea4ea6edc788ec2ee51"}, "procedural_animations": {"master": "f8aae42bf06b3936cc6bd24cb18e1c3ec9f78f4f"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "ce369408caee7ab4c83aa3235c7c1324bde424a6"}, "mesh_utils": {"master": "902dae29797789d406faf256a22aa73b7f6d5261"}, "broken_seals_module": {"master": "52c5a81350db1c29d375c63d95010260911ec034"}, "thread_pool": {"master": "c401b7a027248158dae3fbce20d637d34eaaedb9"}, "terraman": {"master": "e2a465a1abcef44f2600afc589a3e4a413e45049"}}
|
19
LICENSE
Normal file
19
LICENSE
Normal file
@ -0,0 +1,19 @@
|
||||
Copyright (c) 2019-2021 Péter Magyar
|
||||
|
||||
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.
|
20
Makefile
Normal file
20
Makefile
Normal file
@ -0,0 +1,20 @@
|
||||
all:
|
||||
scons bels -j5
|
||||
|
||||
e:
|
||||
scons belsE -j5
|
||||
|
||||
t:
|
||||
scons belsT -j5
|
||||
|
||||
v:
|
||||
scons belsV -j5
|
||||
|
||||
W:
|
||||
scons belsW -j5
|
||||
|
||||
p:
|
||||
scons belsP -j5
|
||||
|
||||
m:
|
||||
scons belsM -j5
|
644
SConstruct
Normal file
644
SConstruct
Normal file
@ -0,0 +1,644 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright (c) 2019-2021 Péter Magyar
|
||||
#
|
||||
# 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.
|
||||
|
||||
EnsureSConsVersion(0, 98, 1)
|
||||
|
||||
import sys
|
||||
import os
|
||||
import subprocess
|
||||
import json
|
||||
import shutil
|
||||
import traceback
|
||||
|
||||
import module_config
|
||||
|
||||
repository_index = 0
|
||||
module_clone_path = '/modules/'
|
||||
clone_command = 'git clone {0} {1}'
|
||||
|
||||
visual_studio_call_vcvarsall = False
|
||||
visual_studio_vcvarsall_path = 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat'
|
||||
visual_studio_arch = 'amd64'
|
||||
|
||||
exports = {
|
||||
'global': [],
|
||||
'linux': [],
|
||||
'windows': [],
|
||||
'android': [],
|
||||
'javascript': [],
|
||||
'osx': [],
|
||||
'ios': [],
|
||||
'server': [],
|
||||
}
|
||||
|
||||
additional_commands = {
|
||||
'global': [],
|
||||
'linux': [],
|
||||
'windows': [],
|
||||
'android': [],
|
||||
'javascript': [],
|
||||
'osx': [],
|
||||
'ios': [],
|
||||
'server': [],
|
||||
}
|
||||
|
||||
target_commits = {}
|
||||
|
||||
def onerror(func, path, exc_info):
|
||||
"""
|
||||
https://stackoverflow.com/questions/2656322/shutil-rmtree-fails-on-windows-with-access-is-denied
|
||||
|
||||
Because Windows.
|
||||
|
||||
Error handler for ``shutil.rmtree``.
|
||||
|
||||
If the error is due to an access error (read only file)
|
||||
it attempts to add write permission and then retries.
|
||||
|
||||
If the error is for another reason it re-raises the error.
|
||||
|
||||
Usage : ``shutil.rmtree(path, onerror=onerror)``
|
||||
"""
|
||||
import stat
|
||||
if not os.access(path, os.W_OK):
|
||||
# Is the error an access error ?
|
||||
os.chmod(path, stat.S_IWUSR)
|
||||
func(path)
|
||||
else:
|
||||
raise
|
||||
|
||||
def load_target_commits_array():
|
||||
global target_commits
|
||||
|
||||
if os.path.isfile('./HEADS'):
|
||||
with open('./HEADS', 'r') as infile:
|
||||
target_commits = json.load(infile)
|
||||
else:
|
||||
target_commits = {}
|
||||
|
||||
def save_target_commits_array():
|
||||
with open('./HEADS', 'w') as outfile:
|
||||
json.dump(target_commits, outfile)
|
||||
|
||||
def update_repository(data, clone_path, branch = 'master'):
|
||||
cwd = os.getcwd()
|
||||
|
||||
full_path = cwd + clone_path + data[1] + '/'
|
||||
|
||||
if not os.path.isdir(full_path):
|
||||
os.chdir(cwd + clone_path)
|
||||
|
||||
subprocess.call(clone_command.format(data[0][repository_index], data[1]), shell=True)
|
||||
|
||||
os.chdir(full_path)
|
||||
|
||||
subprocess.call('git reset', shell=True)
|
||||
subprocess.call('git reset --hard', shell=True)
|
||||
subprocess.call('git clean -f -d', shell=True)
|
||||
subprocess.call('git checkout -B ' + branch + ' origin/' + branch, shell=True)
|
||||
subprocess.call('git reset', shell=True)
|
||||
subprocess.call('git reset --hard', shell=True)
|
||||
subprocess.call('git clean -f -d', shell=True)
|
||||
subprocess.call('git pull origin ' + branch, shell=True)
|
||||
|
||||
process = subprocess.Popen('git rev-parse HEAD', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
output = process.communicate()[0].decode().strip()
|
||||
|
||||
if data[1] not in target_commits:
|
||||
target_commits[data[1]] = {}
|
||||
|
||||
target_commits[data[1]][branch] = output
|
||||
|
||||
os.chdir(cwd)
|
||||
|
||||
def setup_repository(data, clone_path, branch = 'master'):
|
||||
cwd = os.getcwd()
|
||||
|
||||
full_path = cwd + clone_path + data[1] + '/'
|
||||
|
||||
if not os.path.isdir(full_path):
|
||||
os.chdir(cwd + clone_path)
|
||||
|
||||
subprocess.call(clone_command.format(data[0][repository_index], data[1]), shell=True)
|
||||
|
||||
os.chdir(full_path)
|
||||
|
||||
subprocess.call('git reset', shell=True)
|
||||
subprocess.call('git reset --hard', shell=True)
|
||||
subprocess.call('git clean -f -d', shell=True)
|
||||
subprocess.call('git checkout -B ' + branch + ' origin/' + branch, shell=True)
|
||||
subprocess.call('git pull origin ' + branch, shell=True)
|
||||
subprocess.call('git reset', shell=True)
|
||||
subprocess.call('git reset --hard', shell=True)
|
||||
|
||||
if data[1] in target_commits:
|
||||
target = target_commits[data[1]][branch]
|
||||
|
||||
subprocess.call('git checkout -B ' + branch + ' ' + target, shell=True)
|
||||
subprocess.call('git clean -f -d', shell=True)
|
||||
subprocess.call('git reset', shell=True)
|
||||
subprocess.call('git reset --hard', shell=True)
|
||||
|
||||
os.chdir(cwd)
|
||||
|
||||
def copy_repository(data, target_folder, clone_path):
|
||||
copytree(os.path.abspath(clone_path + data[1] + '/' + data[2]), os.path.abspath(target_folder + data[1]))
|
||||
|
||||
def copytree(src, dst):
|
||||
for item in os.listdir(src):
|
||||
sp = os.path.join(src, item)
|
||||
dp = os.path.join(dst, item)
|
||||
|
||||
if os.path.isdir(sp):
|
||||
if os.path.isdir(dp):
|
||||
shutil.rmtree(dp, onerror=onerror)
|
||||
|
||||
shutil.copytree(sp, dp)
|
||||
else:
|
||||
if not os.path.isdir(dst):
|
||||
os.makedirs(dst)
|
||||
|
||||
shutil.copy2(sp, dp)
|
||||
|
||||
def validate_repository_origin(data, clone_path, branch = 'master'):
|
||||
full_path = os.path.abspath(clone_path)
|
||||
|
||||
if not os.path.isdir(full_path):
|
||||
return
|
||||
|
||||
cwd = os.getcwd()
|
||||
os.chdir(full_path)
|
||||
|
||||
res = subprocess.run('git remote -v', shell=True, capture_output=True)
|
||||
|
||||
resstr = res.stdout.decode('ascii')
|
||||
resarr = resstr.split("\n")
|
||||
res_orig = []
|
||||
|
||||
for l in resarr:
|
||||
if "origin" in l:
|
||||
res_orig.append(l)
|
||||
|
||||
if len(res_orig) == 0:
|
||||
print("The repository " + clone_path + " does not seem to have an origin remote. Adding it.")
|
||||
|
||||
subprocess.call('git remote add origin ' + data[0][repository_index], shell=True)
|
||||
|
||||
os.chdir(cwd)
|
||||
|
||||
return
|
||||
|
||||
for l in data[0]:
|
||||
for ll in res_orig:
|
||||
if l in ll:
|
||||
os.chdir(cwd)
|
||||
|
||||
return
|
||||
|
||||
rind = 0
|
||||
|
||||
if 'git@' in res_orig[0]:
|
||||
rind = 1
|
||||
|
||||
subprocess.call('git remote remove origin', shell=True)
|
||||
subprocess.call('git remote add origin ' + data[0][rind], shell=True)
|
||||
subprocess.call('git pull origin', shell=True)
|
||||
subprocess.call('git checkout origin/' + branch, shell=True)
|
||||
|
||||
print('Updated git remote origin in ' + clone_path)
|
||||
|
||||
os.chdir(cwd)
|
||||
|
||||
def remove_repository(data, target_folder):
|
||||
folder = os.path.abspath(target_folder + data[1])
|
||||
|
||||
if os.path.isdir(folder):
|
||||
shutil.rmtree(folder)
|
||||
|
||||
def update_engine():
|
||||
validate_repository_origin(module_config.engine_repository, './engine/', module_config.godot_branch)
|
||||
update_repository(module_config.engine_repository, '/', module_config.godot_branch)
|
||||
|
||||
def update_modules():
|
||||
for rep in module_config.module_repositories:
|
||||
update_repository(rep, module_clone_path)
|
||||
copy_repository(rep, './engine/modules/', '.' + module_clone_path)
|
||||
|
||||
def update_addons():
|
||||
for rep in module_config.addon_repositories:
|
||||
update_repository(rep, module_clone_path)
|
||||
copy_repository(rep, './game/addons/', '.' + module_clone_path)
|
||||
|
||||
def update_addons_third_party_addons():
|
||||
for rep in module_config.third_party_addon_repositories:
|
||||
update_repository(rep, module_clone_path)
|
||||
copy_repository(rep, './game/addons/', '.' + module_clone_path)
|
||||
|
||||
def update_all():
|
||||
update_engine()
|
||||
update_modules()
|
||||
update_addons()
|
||||
update_addons_third_party_addons()
|
||||
|
||||
save_target_commits_array()
|
||||
|
||||
|
||||
def setup_engine():
|
||||
validate_repository_origin(module_config.engine_repository, './engine/', module_config.godot_branch)
|
||||
setup_repository(module_config.engine_repository, '/', module_config.godot_branch)
|
||||
|
||||
def setup_modules():
|
||||
for rep in module_config.module_repositories:
|
||||
setup_repository(rep, module_clone_path)
|
||||
copy_repository(rep, './engine/modules/', '.' + module_clone_path)
|
||||
|
||||
for rep in module_config.removed_modules:
|
||||
remove_repository(rep, './engine/modules/')
|
||||
|
||||
|
||||
def setup_addons():
|
||||
for rep in module_config.addon_repositories:
|
||||
setup_repository(rep, module_clone_path)
|
||||
copy_repository(rep, './game/addons/', '.' + module_clone_path)
|
||||
|
||||
def setup_addons_third_party_addons():
|
||||
for rep in module_config.third_party_addon_repositories:
|
||||
setup_repository(rep, module_clone_path)
|
||||
copy_repository(rep, './game/addons/', '.' + module_clone_path)
|
||||
|
||||
def setup_all():
|
||||
setup_engine()
|
||||
setup_modules()
|
||||
setup_addons()
|
||||
setup_addons_third_party_addons()
|
||||
|
||||
def format_path(path):
|
||||
if 'win' in sys.platform:
|
||||
path = path.replace('/', '\\')
|
||||
path = path.replace('~', '%userprofile%')
|
||||
|
||||
return path
|
||||
|
||||
def get_exports_for(platform):
|
||||
export_command = 'export '
|
||||
command_separator = ';'
|
||||
|
||||
if 'win' in sys.platform:
|
||||
command_separator = '&'
|
||||
export_command = 'set '
|
||||
|
||||
command = ''
|
||||
|
||||
for p in exports[platform]:
|
||||
command += export_command + p + command_separator
|
||||
|
||||
return command
|
||||
|
||||
def get_additional_commands_for(platform):
|
||||
command_separator = ';'
|
||||
|
||||
if 'win' in sys.platform:
|
||||
command_separator = '&'
|
||||
|
||||
command = ''
|
||||
|
||||
for p in additional_commands[platform]:
|
||||
command += p + command_separator
|
||||
|
||||
return command
|
||||
|
||||
|
||||
|
||||
def parse_config():
|
||||
global visual_studio_vcvarsall_path
|
||||
global visual_studio_arch
|
||||
global visual_studio_call_vcvarsall
|
||||
global exports
|
||||
|
||||
if not os.path.isfile('build.config'):
|
||||
return
|
||||
|
||||
with open('build.config', 'r') as f:
|
||||
|
||||
for line in f:
|
||||
ls = line.strip()
|
||||
if ls == '' or ls.startswith('#'):
|
||||
continue
|
||||
|
||||
words = line.split()
|
||||
|
||||
if (len(words) < 2):
|
||||
print('This build.config line is malformed, and got ignored: ' + ls)
|
||||
continue
|
||||
|
||||
if words[0] == 'visual_studio_vcvarsall_path':
|
||||
visual_studio_vcvarsall_path = format_path(ls[29:])
|
||||
elif words[0] == 'visual_studio_arch':
|
||||
visual_studio_arch = format_path(ls[19:])
|
||||
elif words[0] == 'visual_studio_call_vcvarsall':
|
||||
visual_studio_call_vcvarsall = words[1].lower() in [ 'true', '1', 't', 'y', 'yes' ]
|
||||
elif words[0] == 'export':
|
||||
if (len(words) < 3) or not words[1] in exports:
|
||||
print('This build.config line is malformed, and got ignored: ' + ls)
|
||||
continue
|
||||
|
||||
export_path = format_path(ls[8 + len(words[1]):])
|
||||
|
||||
exports[words[1]].append(export_path)
|
||||
elif words[0] == 'run':
|
||||
if (len(words) < 3) or not words[1] in additional_commands:
|
||||
print('This build.config line is malformed, and got ignored: ' + ls)
|
||||
continue
|
||||
|
||||
final_cmd = format_path(ls[5 + len(words[1]):])
|
||||
|
||||
additional_commands[words[1]].append(final_cmd)
|
||||
|
||||
parse_config()
|
||||
|
||||
env = Environment()
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
|
||||
arg = sys.argv[1]
|
||||
|
||||
arg_split = arg.split('_')
|
||||
arg = arg_split[0]
|
||||
arg_split = arg_split[1:]
|
||||
|
||||
if arg[0] == 'b':
|
||||
build_string = get_exports_for('global') + get_additional_commands_for('global') + 'scons '
|
||||
|
||||
build_string += 'tools='
|
||||
if 'e' in arg:
|
||||
build_string += 'yes'
|
||||
else:
|
||||
build_string += 'no'
|
||||
build_string += ' '
|
||||
|
||||
build_string += 'target='
|
||||
if 'r' in arg:
|
||||
build_string += 'release'
|
||||
elif 'd' in arg:
|
||||
build_string += 'debug'
|
||||
else:
|
||||
build_string += 'release_debug'
|
||||
build_string += ' '
|
||||
|
||||
build_string += 'custom_modules_shared='
|
||||
if 's' in arg:
|
||||
build_string += 'yes'
|
||||
else:
|
||||
build_string += 'no'
|
||||
build_string += ' '
|
||||
|
||||
if 'm' in arg:
|
||||
build_string += 'use_mingw=yes'
|
||||
else:
|
||||
if 'win' in sys.platform and visual_studio_call_vcvarsall:
|
||||
build_string = 'call "{0}" {1}&'.format(visual_studio_vcvarsall_path, visual_studio_arch) + build_string
|
||||
|
||||
if 'o' in arg:
|
||||
build_string += 'use_llvm=yes'
|
||||
|
||||
if 'v' in arg:
|
||||
build_string += 'vsproj=yes'
|
||||
|
||||
for i in range(2, len(sys.argv)):
|
||||
build_string += ' ' + sys.argv[i] + ' '
|
||||
|
||||
if 'slim' in arg_split:
|
||||
build_string += module_config.slim_args
|
||||
build_string += ' '
|
||||
|
||||
if 'latomic' in arg_split:
|
||||
build_string += 'LINKFLAGS="-latomic"'
|
||||
build_string += ' '
|
||||
|
||||
if 'strip' in arg_split:
|
||||
build_string += 'debug_symbols=no'
|
||||
build_string += ' '
|
||||
|
||||
if 'threads' in arg_split:
|
||||
build_string += 'threads_enabled=yes'
|
||||
build_string += ' '
|
||||
|
||||
target = ' '
|
||||
|
||||
if 'E' in arg:
|
||||
target += 'bin/libess.x11.opt.tools.64.so'
|
||||
elif 'T' in arg:
|
||||
target += 'bin/libtexture_packer.x11.opt.tools.64.so'
|
||||
elif 'V' in arg:
|
||||
target += 'bin/libvoxelman.x11.opt.tools.64.so'
|
||||
elif 'W' in arg:
|
||||
target += 'bin/libworld_generator.x11.opt.tools.64.so'
|
||||
elif 'P' in arg:
|
||||
target += 'bin/libprocedural_animations.x11.opt.tools.64.so'
|
||||
|
||||
cwd = os.getcwd()
|
||||
full_path = cwd + '/engine/'
|
||||
|
||||
if not os.path.isdir(full_path):
|
||||
print('engine directory doesnt exists.')
|
||||
exit()
|
||||
|
||||
os.chdir(full_path)
|
||||
|
||||
if 'l' in arg:
|
||||
build_string += 'platform=x11'
|
||||
|
||||
build_string = get_exports_for('linux') + get_additional_commands_for('linux') + build_string + target
|
||||
|
||||
print('Running command: ' + build_string)
|
||||
|
||||
subprocess.call(build_string, shell=True)
|
||||
elif 'w' in arg:
|
||||
build_string += 'platform=windows'
|
||||
|
||||
build_string = get_exports_for('windows') + get_additional_commands_for('windows') + build_string
|
||||
|
||||
print('Running command: ' + build_string)
|
||||
|
||||
subprocess.call(build_string, shell=True)
|
||||
elif 'a' in arg:
|
||||
build_string += 'platform=android'
|
||||
|
||||
build_string = get_exports_for('android') + get_additional_commands_for('android') + build_string
|
||||
|
||||
print('Running command: ' + build_string + ' android_arch=armv7')
|
||||
subprocess.call(build_string + ' android_arch=armv7', shell=True)
|
||||
print('Running command: ' + build_string + ' android_arch=arm64v8')
|
||||
subprocess.call(build_string + ' android_arch=arm64v8', shell=True)
|
||||
print('Running command: ' + build_string + ' android_arch=x86')
|
||||
subprocess.call(build_string + ' android_arch=x86', shell=True)
|
||||
|
||||
os.chdir(full_path + 'platform/android/java/')
|
||||
|
||||
print('Running command: ' + get_exports_for('global') + get_additional_commands_for('global') + get_exports_for('android') + get_additional_commands_for('android') + './gradlew generateGodotTemplates')
|
||||
subprocess.call(get_exports_for('global') + get_additional_commands_for('global') + get_exports_for('android') + get_additional_commands_for('android') + './gradlew generateGodotTemplates', shell=True)
|
||||
elif 'j' in arg:
|
||||
build_string += 'platform=javascript'
|
||||
|
||||
build_string = get_exports_for('javascript') + get_additional_commands_for('javascript') + build_string
|
||||
|
||||
print('Running command: ' + build_string)
|
||||
subprocess.call(build_string, shell=True)
|
||||
elif 'i' in arg:
|
||||
build_string += 'platform=iphone'
|
||||
|
||||
print('Running command: ' + build_string)
|
||||
subprocess.call(build_string, shell=True)
|
||||
|
||||
#print('Running command: ' + build_string + " arch=arm")
|
||||
#subprocess.call(build_string + ' arch=arm', shell=True)
|
||||
#print('Running command: ' + build_string + " arch=arm64")
|
||||
#subprocess.call(build_string + ' arch=arm64', shell=True)
|
||||
#print('Running command: ' + build_string + " arch=x86_64")
|
||||
#subprocess.call(build_string + ' arch=x86_64', shell=True)
|
||||
elif 'x' in arg:
|
||||
build_string += 'platform=osx'
|
||||
|
||||
build_string = get_exports_for('osx') + get_additional_commands_for('osx') + build_string + target
|
||||
|
||||
print('Running command: ' + build_string)
|
||||
subprocess.call(build_string, shell=True)
|
||||
elif 'h' in arg:
|
||||
#headless
|
||||
build_string += 'platform=server'
|
||||
|
||||
build_string = get_exports_for('server') + get_additional_commands_for('server') + build_string
|
||||
|
||||
print('Running command: ' + build_string)
|
||||
|
||||
subprocess.call(build_string, shell=True)
|
||||
|
||||
else:
|
||||
print('No platform specified')
|
||||
exit()
|
||||
|
||||
exit()
|
||||
# elif arg[0] == 'p':
|
||||
# if arg == 'p':
|
||||
# print("Applies a patch. No Patches right now.Append s for the skeleton editor patch. For example: ps ")
|
||||
# exit()
|
||||
#
|
||||
# cwd = os.getcwd()
|
||||
# full_path = cwd + '/engine/'
|
||||
#
|
||||
# if not os.path.isdir(full_path):
|
||||
# print('engine directory does not exists.')
|
||||
# exit()
|
||||
#
|
||||
# os.chdir(full_path)
|
||||
#
|
||||
# #apply the patch to just the working directory, without creating a commit
|
||||
#
|
||||
# if 's' in arg:
|
||||
# subprocess.call('git apply --index ../patches/custom_skeleton_3d_editor_plugin.patch', shell=True)
|
||||
#
|
||||
# #unstage all files
|
||||
# subprocess.call('git reset', shell=True)
|
||||
#
|
||||
# vman_full_path = cwd + '/engine/modules/voxelman/'
|
||||
#
|
||||
# #also patch voxelman as the plugin changes forward_spatial_gui_input's definition
|
||||
# if os.path.isdir(vman_full_path):
|
||||
# os.chdir(vman_full_path)
|
||||
#
|
||||
# subprocess.call('git apply --index ../../../patches/fix-voxel-editor-after-the-skeleton-editor-patch.patch', shell=True)
|
||||
#
|
||||
# #unstage all files
|
||||
# subprocess.call('git reset', shell=True)
|
||||
# else:
|
||||
# print('Voxelman directory does not exists, skipping patch.')
|
||||
#
|
||||
# exit()
|
||||
|
||||
opts = Variables(args=ARGUMENTS)
|
||||
|
||||
opts.Add('a', 'What to do', '')
|
||||
opts.Add(EnumVariable('action', 'What to do', 'setup', ('setup', 'update')))
|
||||
opts.Add('t', 'Action target', '')
|
||||
opts.Add(EnumVariable('target', 'Action target', 'all', ('all', 'engine', 'modules', 'all_addons', 'addons', 'third_party_addons')))
|
||||
opts.Add(EnumVariable('repository_type', 'Type of repositories to clone from first', 'http', ('http', 'ssh')))
|
||||
|
||||
opts.Update(env)
|
||||
Help(opts.GenerateHelpText(env))
|
||||
|
||||
load_target_commits_array()
|
||||
|
||||
rt = env['repository_type']
|
||||
|
||||
if rt == 'ssh':
|
||||
repository_index = 1
|
||||
|
||||
action = env['action']
|
||||
target = env['target']
|
||||
|
||||
if env['a']:
|
||||
action = env['a']
|
||||
|
||||
if env['t']:
|
||||
target = env['t']
|
||||
|
||||
if not os.path.isdir('./modules'):
|
||||
os.mkdir('./modules')
|
||||
|
||||
if 'm' in action:
|
||||
godot_branch = 'master'
|
||||
|
||||
if 'setup' in action or action[0] == 's':
|
||||
if target == 'all':
|
||||
setup_all()
|
||||
elif target == 'engine':
|
||||
setup_engine()
|
||||
elif target == 'modules':
|
||||
setup_modules()
|
||||
elif target == 'all_addons':
|
||||
setup_addons()
|
||||
setup_addons_third_party_addons()
|
||||
elif target == 'addons':
|
||||
setup_addons()
|
||||
elif target == 'third_party_addons':
|
||||
setup_addons_third_party_addons()
|
||||
elif 'update' in action or action[0] == 'u':
|
||||
if target == 'all':
|
||||
update_all()
|
||||
elif target == 'engine':
|
||||
update_engine()
|
||||
save_target_commits_array()
|
||||
elif target == 'modules':
|
||||
update_modules()
|
||||
save_target_commits_array()
|
||||
elif target == 'all_addons':
|
||||
update_addons()
|
||||
update_addons_third_party_addons()
|
||||
save_target_commits_array()
|
||||
elif target == 'addons':
|
||||
update_addons()
|
||||
save_target_commits_array()
|
||||
elif target == 'third_party_addons':
|
||||
update_addons_third_party_addons()
|
||||
save_target_commits_array()
|
||||
|
44
build.config
Normal file
44
build.config
Normal file
@ -0,0 +1,44 @@
|
||||
# Copyright (c) 2019-2021 Péter Magyar
|
||||
#
|
||||
# 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.
|
||||
|
||||
# Rename this file to build.config to use it
|
||||
|
||||
# Lines starting with # are comments. (Only works at the start of the line!)
|
||||
|
||||
# Note:
|
||||
# ~ will be converted to %userprofile% on windows
|
||||
# / will be converted to \ on windows
|
||||
# so you don't have to worry about it
|
||||
|
||||
# Visual studio related setup:
|
||||
visual_studio_call_vcvarsall True
|
||||
visual_studio_vcvarsall_path C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat
|
||||
visual_studio_arch amd64
|
||||
|
||||
# export related setup
|
||||
# available export targets: global, linux, windows, android, javascript
|
||||
|
||||
export global SCONS_CACHE=~/.scons_cache
|
||||
export global SCONS_CACHE_LIMIT=5000
|
||||
|
||||
export android ANDROID_HOME=~/SDKs/Android/SDK
|
||||
|
||||
run javascript source ~/SDKs/emsdk/emsdk_env.sh
|
||||
|
45
build.config.example
Normal file
45
build.config.example
Normal file
@ -0,0 +1,45 @@
|
||||
# Copyright (c) 2019-2021 Péter Magyar
|
||||
#
|
||||
# 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.
|
||||
|
||||
# Rename this file to build.config to use it
|
||||
|
||||
# Lines starting with # are comments. (Only works at the start of the line!)
|
||||
|
||||
# Note:
|
||||
# ~ will be converted to %userprofile% on windows
|
||||
# / will be converted to \ on windows
|
||||
# so you don't have to worry about it
|
||||
|
||||
# Visual studio related setup:
|
||||
visual_studio_call_vcvarsall True
|
||||
visual_studio_vcvarsall_path C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat
|
||||
visual_studio_arch amd64
|
||||
|
||||
# You can export variables with the export keyword
|
||||
# You can run commands with the run keywords
|
||||
# <export/run> <target platform> <exported variable/command>
|
||||
# available export/run targets: global, linux, windows, android, javascript
|
||||
|
||||
export global SCONS_CACHE=~/.scons_cache
|
||||
export global SCONS_CACHE_LIMIT=5000
|
||||
|
||||
export android ANDROID_HOME=~/SDKs/Android/SDK
|
||||
|
||||
run javascript source ~/SDKs/emsdk/emsdk_env.sh
|
19
build_ios.sh
Executable file
19
build_ios.sh
Executable file
@ -0,0 +1,19 @@
|
||||
|
||||
export SCONS_CACHE=~/.scons_cache
|
||||
export SCONS_CACHE_LIMIT=5000
|
||||
|
||||
cd ./engine
|
||||
|
||||
scons -j6 p=iphone tools=no target=release_debug arch=arm module_arkit_enabled=no game_center=no
|
||||
scons -j6 p=iphone tools=no target=release_debug arch=arm64 module_arkit_enabled=no game_center=no
|
||||
lipo -create bin/libgodot.iphone.opt.debug.arm.a bin/libgodot.iphone.opt.debug.arm64.a -output bin/libgodot.iphone.debug.fat.a
|
||||
rm bin/ios_xcode/libgodot.iphone.debug.fat.a
|
||||
cp bin/libgodot.iphone.debug.fat.a bin/ios_xcode/libgodot.iphone.debug.fat.a
|
||||
|
||||
rm bin/iphone.zip
|
||||
cd bin/ios_xcode
|
||||
zip -r -X ../iphone.zip .
|
||||
|
||||
cd ..
|
||||
cd ..
|
||||
cd ..
|
21
build_ios_release.sh
Executable file
21
build_ios_release.sh
Executable file
@ -0,0 +1,21 @@
|
||||
|
||||
export SCONS_CACHE=~/.scons_cache
|
||||
export SCONS_CACHE_LIMIT=5000
|
||||
|
||||
cd ./engine
|
||||
|
||||
scons -j6 p=iphone tools=no target=release arch=arm module_arkit_enabled=no game_center=no
|
||||
scons -j6 p=iphone tools=no target=release arch=arm64 module_arkit_enabled=no game_center=no
|
||||
lipo -create bin/libgodot.iphone.opt.arm.a bin/libgodot.iphone.opt.arm64.a -output bin/libgodot.iphone.release.fat.a
|
||||
rm bin/ios_xcode/libgodot.iphone.release.fat.a
|
||||
cp bin/libgodot.iphone.release.fat.a bin/ios_xcode/libgodot.iphone.release.fat.a
|
||||
|
||||
rm bin/iphone.zip
|
||||
cd bin/ios_xcode
|
||||
zip -r -X ../iphone.zip .
|
||||
|
||||
cd ..
|
||||
cd ..
|
||||
|
||||
|
||||
cd ..
|
15
build_osx.sh
Executable file
15
build_osx.sh
Executable file
@ -0,0 +1,15 @@
|
||||
|
||||
export SCONS_CACHE=~/.scons_cache
|
||||
export SCONS_CACHE_LIMIT=5000
|
||||
|
||||
cd ./engine
|
||||
|
||||
scons -j6 platform=osx target=release_debug
|
||||
|
||||
rm -Rf bin/Godot.app
|
||||
cp -r misc/dist/osx_tools.app ./bin/Godot.app
|
||||
mkdir -p ./bin/Godot.app/Contents/MacOS
|
||||
cp bin/godot.osx.opt.tools.64 bin/Godot.app/Contents/MacOS/Godot
|
||||
chmod +x bin/Godot.app/Contents/MacOS/Godot
|
||||
|
||||
cd ..
|
12
build_pi.sh
Executable file
12
build_pi.sh
Executable file
@ -0,0 +1,12 @@
|
||||
|
||||
scons bel_latomic_strip_slim -j4
|
||||
scons bl_latomic_strip_slim -j4
|
||||
scons blr_latomic_strip_slim -j4
|
||||
|
||||
rm -f ./engine/bin/godot.x11.pi4.opt.32
|
||||
rm -f ./engine/bin/godot.x11.pi4.opt.debug.32
|
||||
rm -f ./engine/bin/godot.x11.pi4.opt.tools.32
|
||||
|
||||
mv ./engine/bin/godot.x11.opt.32 ./engine/bin/godot.x11.pi4.opt.32
|
||||
mv ./engine/bin/godot.x11.opt.debug.32 ./engine/bin/godot.x11.pi4.opt.debug.32
|
||||
mv ./engine/bin/godot.x11.opt.tools.32 ./engine/bin/godot.x11.pi4.opt.tools.32
|
14
build_uwp.bat
Normal file
14
build_uwp.bat
Normal file
@ -0,0 +1,14 @@
|
||||
|
||||
cd ./engine
|
||||
|
||||
if not defined DevEnvDir (
|
||||
rem call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
|
||||
)
|
||||
|
||||
call scons -j6 platform=uwp target=release
|
||||
rem call scons -j6 platform=uwp target=release_debug
|
||||
rem call scons -j6 platform=uwp target=release
|
||||
|
||||
cd ..
|
||||
|
6
editor.bat
Normal file
6
editor.bat
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
copy "engine\bin\godot.windows.opt.tools.64.exe" "engine\bin\run_godot.windows.opt.tools.64.exe" /y
|
||||
copy "engine\bin\godot.windows.opt.tools.64.pdb" "engine\bin\run_godot.windows.opt.tools.64.pdb" /y
|
||||
copy "engine\bin\godot.windows.opt.tools.64.exp" "engine\bin\run_godot.windows.opt.tools.64.exp" /y
|
||||
|
||||
cmd /c engine\bin\run_godot.windows.opt.tools.64.exe
|
6
editor.sh
Executable file
6
editor.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
cp -u ./engine/bin/godot.x11.opt.tools.64 ./engine/bin/run.godot.x11.opt.tools.64
|
||||
|
||||
export LD_LIBRARY_PATH=`pwd`/engine/bin/
|
||||
./engine/bin/run.godot.x11.opt.tools.64 -v
|
52
export_all.sh
Executable file
52
export_all.sh
Executable file
@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
version=""
|
||||
version_snake_cased=""
|
||||
|
||||
if [ ! -z $1 ]; then
|
||||
version="."
|
||||
version+=$1
|
||||
|
||||
version_snake_cased=${version//./_}
|
||||
fi
|
||||
|
||||
project_root=$(pwd)
|
||||
|
||||
rm -Rf ./export
|
||||
|
||||
mkdir export
|
||||
mkdir export/broken_seals${version_snake_cased}_android_release
|
||||
mkdir export/broken_seals${version_snake_cased}_android_debug
|
||||
mkdir export/broken_seals${version_snake_cased}_linux
|
||||
mkdir export/broken_seals${version_snake_cased}_windows
|
||||
mkdir export/broken_seals${version_snake_cased}_javascript
|
||||
mkdir export/broken_seals${version_snake_cased}_pi4
|
||||
mkdir export/broken_seals${version_snake_cased}_osx
|
||||
mkdir export/export_templates_bs${version_snake_cased}
|
||||
|
||||
./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export-debug Android-Release ${project_root}/export/broken_seals${version_snake_cased}_android_release/broken_seals${version_snake_cased}.apk
|
||||
./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export-debug Android ${project_root}/export/broken_seals${version_snake_cased}_android_debug/broken_seals_debug${version_snake_cased}.apk
|
||||
./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export Linux/X11 ${project_root}/export/broken_seals${version_snake_cased}_linux/broken_seals${version_snake_cased}_x11
|
||||
./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export "Windows Desktop" ${project_root}/export/broken_seals${version_snake_cased}_windows/broken_seals${version_snake_cased}.exe
|
||||
./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export HTML5 ${project_root}/export/broken_seals${version_snake_cased}_javascript/broken_seals.html
|
||||
./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export PI4/X11 ${project_root}/export/broken_seals${version_snake_cased}_pi4/broken_seals${version_snake_cased}_pi4
|
||||
./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export "Mac OSX" ${project_root}/export/broken_seals${version_snake_cased}_osx/broken_seals${version_snake_cased}.app
|
||||
|
||||
cp ./engine/bin/godot.windows.opt.tools.64.exe ${project_root}/export/godot.bs${version}.windows.opt.tools.64.exe
|
||||
cp ./engine/bin/godot.x11.opt.tools.64 ${project_root}/export/godot.bs${version}.x11.opt.tools.64
|
||||
cp ./engine/bin/godot.x11.pi4.opt.tools.32 ${project_root}/export/godot.bs${version}.x11.pi4.opt.tools.32
|
||||
cp ./engine/bin/godot.javascript.opt.tools.threads.zip ${project_root}/export/godot.bs${version}.javascript.opt.tools.zip
|
||||
cp ./engine/bin/Godot.app.zip ${project_root}/export/godot.bs${version}.osx.opt.tools.zip
|
||||
|
||||
cp ./engine/bin/android_debug.apk ${project_root}/export/export_templates_bs${version_snake_cased}/android_debug.apk
|
||||
cp ./engine/bin/android_release.apk ${project_root}/export/export_templates_bs${version_snake_cased}/android_release.apk
|
||||
cp ./engine/bin/godot.javascript.opt.debug.zip ${project_root}/export/export_templates_bs${version_snake_cased}/godot.javascript.opt.debug.zip
|
||||
cp ./engine/bin/godot.javascript.opt.zip ${project_root}/export/export_templates_bs${version_snake_cased}/godot.javascript.opt.zip
|
||||
cp ./engine/bin/godot.windows.opt.64.exe ${project_root}/export/export_templates_bs${version_snake_cased}/godot.windows.opt.64.exe
|
||||
cp ./engine/bin/godot.windows.opt.debug.64.exe ${project_root}/export/export_templates_bs${version_snake_cased}/godot.windows.opt.debug.64.exe
|
||||
cp ./engine/bin/godot.x11.opt.64 ${project_root}/export/export_templates_bs${version_snake_cased}/godot.x11.opt.64
|
||||
cp ./engine/bin/godot.x11.opt.debug.64 ${project_root}/export/export_templates_bs${version_snake_cased}/godot.x11.opt.debug.64
|
||||
cp ./engine/bin/godot.x11.pi4.opt.32 ${project_root}/export/export_templates_bs${version_snake_cased}/godot.x11.pi4.opt.32
|
||||
cp ./engine/bin/godot.x11.pi4.opt.debug.32 ${project_root}/export/export_templates_bs${version_snake_cased}/godot.x11.pi4.opt.debug.32
|
||||
cp ./engine/bin/osx.zip ${project_root}/export/export_templates_bs${version_snake_cased}/osx.zip
|
6
ged.sh
Executable file
6
ged.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
cp -u ./engine/bin/godot.x11.opt.tools.64 ./engine/bin/run.godot.x11.opt.tools.64
|
||||
|
||||
export LD_LIBRARY_PATH=`pwd`/engine/bin/
|
||||
./engine/bin/run.godot.x11.opt.tools.64 -e --path ./game/
|
53
make_release.sh
Executable file
53
make_release.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
version=""
|
||||
version_snake_cased=""
|
||||
|
||||
if [ ! -z $1 ]; then
|
||||
version="."
|
||||
version+=$1
|
||||
|
||||
version_snake_cased=${version//./_}
|
||||
fi
|
||||
|
||||
project_root=$(pwd)
|
||||
|
||||
rm -Rf ./release
|
||||
|
||||
mkdir release
|
||||
|
||||
cd export
|
||||
|
||||
rm -Rf broken_seals${version_snake_cased}_full_source
|
||||
rm -Rf broken_seals${version_snake_cased}_game_source
|
||||
|
||||
mkdir broken_seals${version_snake_cased}_full_source
|
||||
mkdir broken_seals${version_snake_cased}_game_source
|
||||
|
||||
# Warn if a file is over a megabyte. Used to catch big temporary files that would slip through outherwise
|
||||
python ../tools/copy_repos.py ../ ./broken_seals${version_snake_cased}_full_source 1048576
|
||||
python ../tools/copy_repos.py ../game/ ./broken_seals${version_snake_cased}_game_source
|
||||
|
||||
zip -q ../release/broken_seals${version_snake_cased}_android_debug.zip ./broken_seals${version_snake_cased}_android_debug/*
|
||||
zip -q ../release/broken_seals${version_snake_cased}_android_release.zip ./broken_seals${version_snake_cased}_android_release/*
|
||||
zip -q ../release/broken_seals${version_snake_cased}_javascript.zip ./broken_seals${version_snake_cased}_javascript/*
|
||||
zip -q ../release/broken_seals${version_snake_cased}_linux.zip ./broken_seals${version_snake_cased}_linux/*
|
||||
zip -q ../release/broken_seals${version_snake_cased}_windows.zip ./broken_seals${version_snake_cased}_windows/*
|
||||
zip -q ../release/broken_seals${version_snake_cased}_pi4.zip ./broken_seals${version_snake_cased}_pi4/*
|
||||
zip -r -q ../release/broken_seals${version_snake_cased}_osx.zip ./broken_seals${version_snake_cased}_osx/*
|
||||
|
||||
# Editor
|
||||
zip -q ../release/editor_windows_bs${version_snake_cased}.zip ./godot.bs${version}.windows.opt.tools.64.exe
|
||||
zip -q ../release/editor_linux_bs${version_snake_cased}.zip ./godot.bs${version}.x11.opt.tools.64
|
||||
zip -q ../release/editor_pi4_bs${version_snake_cased}.zip ./godot.bs${version}.x11.pi4.opt.tools.32
|
||||
cp ./godot.bs${version}.javascript.opt.tools.zip ../release/editor_javascript_bs${version_snake_cased}.zip
|
||||
zip -q ../release/editor_osx_bs${version_snake_cased}.zip ./godot.bs${version}.osx.opt.tools.zip
|
||||
|
||||
zip -q ../release/export_templates_bs${version_snake_cased}.zip ./export_templates_bs${version_snake_cased}/*
|
||||
|
||||
zip -q -r ../release/broken_seals${version_snake_cased}_full_source.zip ./broken_seals${version_snake_cased}_full_source/*
|
||||
zip -q -r ../release/broken_seals${version_snake_cased}_game_source.zip ./broken_seals${version_snake_cased}_game_source/*
|
||||
|
||||
cd ..
|
||||
|
27
module_config.py
Normal file
27
module_config.py
Normal file
@ -0,0 +1,27 @@
|
||||
|
||||
godot_branch = '3.x'
|
||||
|
||||
engine_repository = [ ['https://github.com/Relintai/godot.git', 'git@github.com:Relintai/godot.git'], 'engine', '' ]
|
||||
|
||||
module_repositories = [
|
||||
[ ['https://github.com/Relintai/entity_spell_system.git', 'git@github.com:Relintai/entity_spell_system.git'], 'entity_spell_system', '' ],
|
||||
[ ['https://github.com/Relintai/ui_extensions.git', 'git@github.com:Relintai/ui_extensions.git'], 'ui_extensions', '' ],
|
||||
[ ['https://github.com/Relintai/texture_packer.git', 'git@github.com:Relintai/texture_packer.git'], 'texture_packer', '' ],
|
||||
[ ['https://github.com/Relintai/godot_fastnoise.git', 'git@github.com:Relintai/godot_fastnoise.git'], 'fastnoise', '' ],
|
||||
[ ['https://github.com/Relintai/mesh_data_resource.git', 'git@github.com:Relintai/mesh_data_resource.git'], 'mesh_data_resource', '' ],
|
||||
[ ['https://github.com/Relintai/props.git', 'git@github.com:Relintai/props.git'], 'props', '' ],
|
||||
[ ['https://github.com/Relintai/mesh_utils.git', 'git@github.com:Relintai/mesh_utils.git'], 'mesh_utils', '' ],
|
||||
[ ['https://github.com/Relintai/thread_pool.git', 'git@github.com:Relintai/thread_pool.git'], 'thread_pool', '' ],
|
||||
[ ['https://github.com/Relintai/voxelman.git', 'git@github.com:Relintai/voxelman.git'], 'voxelman', '' ],
|
||||
]
|
||||
|
||||
removed_modules = [
|
||||
]
|
||||
|
||||
addon_repositories = [
|
||||
]
|
||||
|
||||
third_party_addon_repositories = [
|
||||
]
|
||||
|
||||
slim_args = 'module_webm_enabled=no module_arkit_enabled=no module_visual_script_enabled=no module_gdnative_enabled=no module_mobile_vr_enabled=no module_theora_enabled=no module_xatlas_unwrap_enabled=no'
|
6
play.sh
Executable file
6
play.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
cp -u ./engine/bin/godot.x11.opt.tools.64 ./engine/bin/run.godot.x11.opt.tools.64
|
||||
|
||||
export LD_LIBRARY_PATH=`pwd`/engine/bin/
|
||||
./engine/bin/run.godot.x11.opt.tools.64 -v --path ./game/
|
126
podman_build_all.sh
Executable file
126
podman_build_all.sh
Executable file
@ -0,0 +1,126 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
podman=`which podman || true`
|
||||
|
||||
if [ -z $podman ]; then
|
||||
echo "podman needs to be in PATH for this script to work."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
project_root=$(pwd)/
|
||||
img_version=bs
|
||||
|
||||
mkdir -p logs
|
||||
|
||||
#sudo podman run -i -t -v $(pwd)/files:/root/files godot-osx:bs /bin/bash
|
||||
#sudo podman run -i -t -v $(pwd)/:/root/project -w /root/project godot-osx:bs /bin/bash
|
||||
#sudo podman run -v $(pwd)/:/root/project -w /root/project godot-osx:bs scons bex_strip arch=x86_64 -j4 osxcross_sdk=darwin20.4
|
||||
#sudo podman run -i -t -v $(pwd)/:/root/project -w /root/project/tools/osx godot-osx:bs bash -c ./lipo.sh
|
||||
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-windows:${img_version} scons bew_strip -j4 . 2>&1 | tee logs/bew.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
#$podman run -v ${project_root}:/root/project -w /root/project godot-windows:${img_version} scons bewd_strip -j4 . 2>&1 | tee logs/bewd.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-windows:${img_version} scons bw_strip -j4 . 2>&1 | tee logs/bw.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-windows:${img_version} scons bwr_strip -j4 . 2>&1 | tee logs/bwr.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
|
||||
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-linux:${img_version} scons bel_strip -j4 . 2>&1 | tee logs/bel.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
#$podman run -v ${project_root}:/root/project -w /root/project godot-linux:${img_version} scons beld_strip -j4 . 2>&1 | tee logs/beld.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-linux:${img_version} scons bl_strip -j4 . 2>&1 | tee logs/bl.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-linux:${img_version} scons blr_strip -j4 . 2>&1 | tee logs/blr.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
|
||||
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-javascript:${img_version} bash -c 'source /root/emsdk_2.0.25/emsdk_env.sh;scons bj_strip -j4' . 2>&1 | tee logs/bj.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-javascript:${img_version} bash -c 'source /root/emsdk_2.0.25/emsdk_env.sh;scons bjr_strip -j4' . 2>&1 | tee logs/bjr.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-javascript:${img_version} bash -c 'source /root/emsdk_2.0.25/emsdk_env.sh;scons bej_strip_threads -j4' . 2>&1 | tee logs/bej.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-android:${img_version} scons ba_strip -j4 . 2>&1 | tee logs/ba.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-android:${img_version} scons bar_strip -j4 . 2>&1 | tee logs/bar.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
|
||||
#osx
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-osx:${img_version} scons bex_strip arch=x86_64 -j4 osxcross_sdk=darwin20.4 . 2>&1 | tee logs/bex_x86_64.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-osx:${img_version} scons bex_strip arch=arm64 -j4 osxcross_sdk=darwin20.4 . 2>&1 | tee logs/bex_arm64.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-osx:${img_version} scons bx_strip arch=x86_64 -j4 osxcross_sdk=darwin20.4 . 2>&1 | tee logs/bx_x86_64.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-osx:${img_version} scons bx_strip arch=arm64 -j4 osxcross_sdk=darwin20.4 . 2>&1 | tee logs/bx_arm64.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-osx:${img_version} scons bxr_strip arch=x86_64 -j4 osxcross_sdk=darwin20.4 . 2>&1 | tee logs/bxr_x86_64.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
$podman run -v ${project_root}:/root/project -w /root/project godot-osx:${img_version} scons bxr_strip arch=arm64 -j4 osxcross_sdk=darwin20.4 . 2>&1 | tee logs/bxr_arm64.log
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
|
||||
#lipo
|
||||
$podman run -v ${project_root}:/root/project -w /root/project/tools/osx godot-osx:${img_version} bash -c ./lipo.sh
|
||||
|
||||
#ios
|
||||
#$podman run -v ${project_root}:/root/project -w /root/project godot-ios:${img_version} scons bir_strip -j4 . 2>&1 | tee logs/bir.log
|
||||
#rm -f engine/modules/modules_enabled.gen.h
|
||||
|
||||
# $podman run -v ${project_root}:/root/project -i -w /root/project -t godot-windows:${img_version} scons bew -j4
|
||||
rm -f engine/modules/modules_enabled.gen.h
|
||||
|
||||
|
||||
# Check files
|
||||
|
||||
cd ./engine/bin/
|
||||
|
||||
files=(
|
||||
# Windows
|
||||
"godot.windows.opt.64.exe"
|
||||
"godot.windows.opt.debug.64.exe"
|
||||
"godot.windows.opt.tools.64.exe"
|
||||
# Linux
|
||||
"godot.x11.opt.64"
|
||||
"godot.x11.opt.debug.64"
|
||||
"godot.x11.opt.tools.64"
|
||||
# JS
|
||||
"godot.javascript.opt.tools.threads.zip"
|
||||
"godot.javascript.opt.zip"
|
||||
# Android
|
||||
"android_debug.apk"
|
||||
"android_release.apk"
|
||||
# OSX
|
||||
"godot.osx.opt.arm64"
|
||||
"godot.osx.opt.debug.arm64"
|
||||
"godot.osx.opt.debug.universal"
|
||||
"godot.osx.opt.debug.x86_64"
|
||||
"godot.osx.opt.tools.arm64"
|
||||
"godot.osx.opt.tools.universal"
|
||||
"godot.osx.opt.tools.x86_64"
|
||||
"godot.osx.opt.universal"
|
||||
"godot.osx.opt.x86_64"
|
||||
)
|
||||
|
||||
error=0
|
||||
|
||||
for f in ${files[*]}
|
||||
do
|
||||
if [ ! -e $f ]; then
|
||||
error=1
|
||||
echo "$f is not present!"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $error -eq 0 ]; then
|
||||
echo "All files are present!"
|
||||
fi
|
||||
|
||||
cd ../..
|
12
tools/build-containers/.gitignore
vendored
Normal file
12
tools/build-containers/.gitignore
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
*.tar
|
||||
*.tar.gz
|
||||
*.tar.bz2
|
||||
*.tar.xz
|
||||
*.exe
|
||||
*.swp
|
||||
*.dmg
|
||||
*.zip
|
||||
*.xip
|
||||
|
||||
files/mono-*/
|
||||
logs/
|
18
tools/build-containers/Dockerfile.android
Normal file
18
tools/build-containers/Dockerfile.android
Normal file
@ -0,0 +1,18 @@
|
||||
ARG img_version
|
||||
FROM godot-fedora:${img_version}
|
||||
|
||||
ENV ANDROID_SDK_ROOT=/root/sdk
|
||||
ENV ANDROID_NDK_VERSION=21.4.7075529
|
||||
ENV ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION}
|
||||
|
||||
RUN dnf -y install --setopt=install_weak_deps=False \
|
||||
gcc gcc-c++ java-11-openjdk-devel ncurses-compat-libs && \
|
||||
mkdir -p sdk && cd sdk && \
|
||||
export CMDLINETOOLS=commandlinetools-linux-7302050_latest.zip && \
|
||||
curl -LO https://dl.google.com/android/repository/${CMDLINETOOLS} && \
|
||||
unzip ${CMDLINETOOLS} && \
|
||||
rm ${CMDLINETOOLS} && \
|
||||
yes | cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" --licenses && \
|
||||
cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" "ndk;${ANDROID_NDK_VERSION}" 'cmdline-tools;latest' 'build-tools;30.0.3' 'platforms;android-30' 'cmake;3.18.1'
|
||||
|
||||
CMD /bin/bash
|
10
tools/build-containers/Dockerfile.base
Normal file
10
tools/build-containers/Dockerfile.base
Normal file
@ -0,0 +1,10 @@
|
||||
FROM fedora:34
|
||||
|
||||
WORKDIR /root
|
||||
|
||||
RUN dnf -y upgrade --setopt=install_weak_deps=False && \
|
||||
dnf -y install --setopt=install_weak_deps=False \
|
||||
bash bzip2 curl file findutils git make nano patch pkgconfig python3-pip unzip which xz yasm && \
|
||||
pip install scons==4.1.0
|
||||
|
||||
CMD /bin/bash
|
39
tools/build-containers/Dockerfile.ios
Normal file
39
tools/build-containers/Dockerfile.ios
Normal file
@ -0,0 +1,39 @@
|
||||
ARG img_version
|
||||
FROM godot-osx:${img_version}
|
||||
|
||||
ENV IOS_SDK=14.5
|
||||
|
||||
RUN dnf -y install --setopt=install_weak_deps=False \
|
||||
automake autoconf clang gcc gcc-c++ gcc-objc gcc-objc++ cmake libicu-devel libtool libxml2-devel llvm-devel openssl-devel perl python yasm && \
|
||||
git clone --progress https://github.com/tpoechtrager/cctools-port.git && \
|
||||
cd /root/cctools-port && \
|
||||
git checkout 236a426c1205a3bfcf0dbb2e2faf2296f0a100e5 && \
|
||||
# arm64 device
|
||||
usage_examples/ios_toolchain/build.sh /root/files/iPhoneOS${IOS_SDK}.sdk.tar.xz arm64 && \
|
||||
mkdir -p /root/ioscross/arm64 && \
|
||||
mv usage_examples/ios_toolchain/target/* /root/ioscross/arm64 && \
|
||||
mkdir /root/ioscross/arm64/usr && \
|
||||
ln -s /root/ioscross/arm64/bin /root/ioscross/arm64/usr/bin && \
|
||||
# arm64 simulator
|
||||
# Disabled for now as it doesn't work with cctools-port and current LLVM:
|
||||
# Cf. https://github.com/tpoechtrager/cctools-port/issues/102
|
||||
#sed -i 's/miphoneos-version-min/mios-simulator-version-min/g' usage_examples/ios_toolchain/wrapper.c && \
|
||||
#usage_examples/ios_toolchain/build.sh /root/files/iPhoneSimulator${IOS_SDK}.sdk.tar.xz arm64 && \
|
||||
#mkdir -p /root/ioscross/arm64_sim && \
|
||||
#mv usage_examples/ios_toolchain/target/* /root/ioscross/arm64_sim && \
|
||||
#mkdir /root/ioscross/arm64_sim/usr && \
|
||||
#ln -s /root/ioscross/arm64_sim/bin /root/ioscross/arm64_sim/usr/bin && \
|
||||
# x86_64 simulator
|
||||
sed -i 's#^TRIPLE=.*#TRIPLE="x86_64-apple-darwin11"#' usage_examples/ios_toolchain/build.sh && \
|
||||
usage_examples/ios_toolchain/build.sh /root/files/iPhoneSimulator${IOS_SDK}.sdk.tar.xz x86_64 && \
|
||||
mkdir -p /root/ioscross/x86_64_sim && \
|
||||
mv usage_examples/ios_toolchain/target/* /root/ioscross/x86_64_sim && \
|
||||
mkdir /root/ioscross/x86_64_sim/usr && \
|
||||
ln -s /root/ioscross/x86_64_sim/bin /root/ioscross/x86_64_sim/usr/bin
|
||||
|
||||
|
||||
ENV OSXCROSS_IOS=not_nothing
|
||||
ENV IOSCROSS_ROOT=/root/ioscross
|
||||
ENV PATH="/root/ioscross/arm64/bin:/root/ioscross/arm64_sim/bin:/root/ioscross/x86_64_sim/bin:${PATH}"
|
||||
|
||||
CMD /bin/bash
|
13
tools/build-containers/Dockerfile.javascript
Normal file
13
tools/build-containers/Dockerfile.javascript
Normal file
@ -0,0 +1,13 @@
|
||||
ARG img_version
|
||||
FROM godot-fedora:${img_version}
|
||||
|
||||
ENV EMSCRIPTEN_CLASSICAL=2.0.25
|
||||
|
||||
RUN dnf -y install --setopt=install_weak_deps=False \
|
||||
java-openjdk && \
|
||||
git clone --branch ${EMSCRIPTEN_CLASSICAL} --progress https://github.com/emscripten-core/emsdk emsdk_${EMSCRIPTEN_CLASSICAL} && \
|
||||
emsdk_${EMSCRIPTEN_CLASSICAL}/emsdk install ${EMSCRIPTEN_CLASSICAL} && \
|
||||
emsdk_${EMSCRIPTEN_CLASSICAL}/emsdk activate ${EMSCRIPTEN_CLASSICAL}
|
||||
# echo "source /root/emsdk_${EMSCRIPTEN_CLASSICAL}/emsdk_env.sh" >> /root/.bashrc
|
||||
|
||||
CMD /bin/bash
|
7
tools/build-containers/Dockerfile.linux
Normal file
7
tools/build-containers/Dockerfile.linux
Normal file
@ -0,0 +1,7 @@
|
||||
ARG img_version
|
||||
FROM godot-fedora:${img_version}
|
||||
|
||||
RUN dnf -y install --setopt=install_weak_deps=False \
|
||||
gcc-c++ libxcrypt-compat xorg-x11-server-Xvfb libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel libXi-devel alsa-lib-devel pulseaudio-libs-devel libudev-devel mesa-libGL-devel mesa-libGLU-devel mesa-dri-drivers yasm libstdc++ libstdc++-static
|
||||
|
||||
CMD /bin/bash
|
29
tools/build-containers/Dockerfile.msvc
Normal file
29
tools/build-containers/Dockerfile.msvc
Normal file
@ -0,0 +1,29 @@
|
||||
ARG img_version
|
||||
FROM godot-fedora:${img_version}
|
||||
|
||||
ENV WINEDEBUG=-all
|
||||
|
||||
RUN dnf -y install --setopt=install_weak_deps=False \
|
||||
wine winetricks xorg-x11-server-Xvfb p7zip-plugins findutils && \
|
||||
curl -LO https://github.com/GodotBuilder/godot-builds/releases/download/_tools/angle.7z && \
|
||||
curl -LO https://www.python.org/ftp/python/3.7.2/python-3.7.2-amd64.exe && \
|
||||
xvfb-run sh -c "winetricks -q vcrun2017; wineserver -w" ;\
|
||||
xvfb-run sh -c "winetricks -q dotnet461; wineserver -w" ;\
|
||||
xvfb-run sh -c "wine /root/python-3.7.2-amd64.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0; wineserver -w" ;\
|
||||
rm /root/python-3.7.2-amd64.exe && \
|
||||
wine python -m pip install --upgrade pip ; wineserver -w ; \
|
||||
wine pip install -U setuptools ; wineserver -w ; \
|
||||
wine pip install -U wheel ; wineserver -w ; \
|
||||
wine pip install scons pywin32 ; wineserver -w ; \
|
||||
cd /root/.wine/drive_c && \
|
||||
7z x /root/angle.7z && \
|
||||
rm /root/angle.7z && \
|
||||
cd "/root/.wine/drive_c/Program Files (x86)" && \
|
||||
tar xf /root/files/msvc2017.tar && \
|
||||
cd /root && \
|
||||
bash /root/files/msvc-fixup.sh && \
|
||||
find /root/.wine -name vctip.exe -delete && \
|
||||
rm -rf /root/.wine/drive_c/users/root/Temp/* && \
|
||||
rm -rf /root/.cache
|
||||
|
||||
CMD /bin/bash
|
18
tools/build-containers/Dockerfile.osx
Normal file
18
tools/build-containers/Dockerfile.osx
Normal file
@ -0,0 +1,18 @@
|
||||
ARG img_version
|
||||
FROM godot-fedora:${img_version}
|
||||
|
||||
#cmake
|
||||
|
||||
RUN dnf -y install --setopt=install_weak_deps=False \
|
||||
automake autoconf bzip2-devel clang libicu-devel libtool libxml2-devel llvm-devel openssl-devel yasm cmake && \
|
||||
git clone --progress https://github.com/tpoechtrager/osxcross.git && \
|
||||
cd /root/osxcross && \
|
||||
git checkout 0f87f567dfaf98460244471ad6c0f4311d62079c && \
|
||||
ln -s /root/files/MacOSX11.3.sdk.tar.xz /root/osxcross/tarballs && \
|
||||
UNATTENDED=1 ./build.sh && \
|
||||
./build_compiler_rt.sh
|
||||
|
||||
ENV OSXCROSS_ROOT=/root/osxcross
|
||||
ENV PATH="/root/osxcross/target/bin:${PATH}"
|
||||
|
||||
CMD /bin/bash
|
7
tools/build-containers/Dockerfile.windows
Normal file
7
tools/build-containers/Dockerfile.windows
Normal file
@ -0,0 +1,7 @@
|
||||
ARG img_version
|
||||
FROM godot-fedora:${img_version}
|
||||
|
||||
RUN dnf -y install --setopt=install_weak_deps=False \
|
||||
mingw32-gcc mingw32-gcc-c++ mingw32-winpthreads-static mingw64-gcc mingw64-gcc-c++ mingw64-winpthreads-static
|
||||
|
||||
CMD /bin/bash
|
77
tools/build-containers/Dockerfile.xcode
Normal file
77
tools/build-containers/Dockerfile.xcode
Normal file
@ -0,0 +1,77 @@
|
||||
ARG img_version
|
||||
FROM godot-fedora:${img_version}
|
||||
|
||||
RUN dnf -y install --setopt=install_weak_deps=False \
|
||||
clang xar xar-devel xz-devel cpio && \
|
||||
git clone --progress https://github.com/NiklasRosenstein/pbzx && \
|
||||
cd pbzx && \
|
||||
git checkout 2a4d7c3300c826d918def713a24d25c237c8ed53 && \
|
||||
clang -O3 -llzma -lxar -I /usr/local/include pbzx.c -o pbzx
|
||||
|
||||
|
||||
|
||||
CMD mkdir -p /root/xcode && \
|
||||
cd /root/xcode && \
|
||||
xar -xf /root/files/Xcode_12.4.xip && \
|
||||
/root/pbzx/pbzx -n Content | cpio -i && \
|
||||
export OSX_SDK=MacOSX11.1.sdk && \
|
||||
cp -r Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk /tmp/${OSX_SDK} && \
|
||||
mkdir -p mkdir -p /tmp/${OSX_SDK}/usr/share/man && \
|
||||
cp -rf Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man1 \
|
||||
Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man3 \
|
||||
Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man5 /tmp/${OSX_SDK}/usr/share/man/ && \
|
||||
cd /tmp && \
|
||||
tar -cJf /root/files/${OSX_SDK}.tar.xz ${OSX_SDK} && \
|
||||
rm -rf ${OSX_SDK} && \
|
||||
cd /root/xcode && \
|
||||
export IOS_SDK=iPhoneOS14.4.sdk && \
|
||||
export IOS_SIMULATOR_SDK=iPhoneSimulator14.4.sdk && \
|
||||
cp -r Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk /tmp/${IOS_SDK} && \
|
||||
mkdir -p /tmp/${IOS_SDK}/usr/include/c++ && \
|
||||
cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/${IOS_SDK}/usr/include/c++/ && \
|
||||
cd /tmp && \
|
||||
tar -cJf /root/files/${IOS_SDK}.tar.xz ${IOS_SDK} && \
|
||||
rm -rf ${IOS_SDK} && \
|
||||
cd /root/xcode && \
|
||||
cp -r Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk /tmp/${IOS_SDK} && \
|
||||
mkdir -p /tmp/${IOS_SDK}/usr/include/c++ && \
|
||||
cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/${IOS_SDK}/usr/include/c++/ && \
|
||||
cd /tmp && \
|
||||
tar -cJf /root/files/${IOS_SIMULATOR_SDK}.tar.xz ${IOS_SDK} && \
|
||||
rm -rf ${IOS_SDK}
|
||||
|
||||
#XCODE_SDK=12.5.1
|
||||
#OSX_SDK=11.3
|
||||
#IOS_SDK=14.5
|
||||
|
||||
CMD mkdir -p /root/xcode && \
|
||||
cd /root/xcode && \
|
||||
xar -xf /root/files/Xcode_12.5.1.xip && \
|
||||
/root/pbzx/pbzx -n Content | cpio -i && \
|
||||
export OSX_SDK=MacOSX11.3.sdk && \
|
||||
cp -r Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk /tmp/${OSX_SDK} && \
|
||||
mkdir -p /tmp/${OSX_SDK}/usr/include/c++ && \
|
||||
cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/${OSX_SDK}/usr/include/c++/ && \
|
||||
mkdir -p mkdir -p /tmp/${OSX_SDK}/usr/share/man && \
|
||||
cp -rf Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man1 \
|
||||
Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man3 \
|
||||
Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man5 /tmp/${OSX_SDK}/usr/share/man/ && \
|
||||
cd /tmp && \
|
||||
tar -cJf /root/files/${OSX_SDK}.tar.xz ${OSX_SDK} && \
|
||||
rm -rf ${OSX_SDK} && \
|
||||
cd /root/xcode && \
|
||||
export IOS_SDK=iPhoneOS14.5.sdk && \
|
||||
export IOS_SIMULATOR_SDK=iPhoneSimulator14.5.sdk && \
|
||||
cp -r Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk /tmp/${IOS_SDK} && \
|
||||
mkdir -p /tmp/${IOS_SDK}/usr/include/c++ && \
|
||||
cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/${IOS_SDK}/usr/include/c++/ && \
|
||||
cd /tmp && \
|
||||
tar -cJf /root/files/${IOS_SDK}.tar.xz ${IOS_SDK} && \
|
||||
rm -rf ${IOS_SDK} && \
|
||||
cd /root/xcode && \
|
||||
cp -r Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk /tmp/${IOS_SDK} && \
|
||||
mkdir -p /tmp/${IOS_SDK}/usr/include/c++ && \
|
||||
cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/${IOS_SDK}/usr/include/c++/ && \
|
||||
cd /tmp && \
|
||||
tar -cJf /root/files/${IOS_SIMULATOR_SDK}.tar.xz ${IOS_SDK} && \
|
||||
rm -rf ${IOS_SDK}
|
10
tools/build-containers/README.md
Normal file
10
tools/build-containers/README.md
Normal file
@ -0,0 +1,10 @@
|
||||
# Godot engine build containers
|
||||
|
||||
Based on https://github.com/godotengine/build-containers
|
||||
|
||||
This repository contains the Dockerfiles for the official Godot engine builds. These containers should help you build Godot for all platforms supported on any machine that can run Docker containers.
|
||||
|
||||
## Building
|
||||
|
||||
There is a 'build.sh' script included to build the containers themselves. The in-container build scripts will follow shortly.
|
||||
|
55
tools/build-containers/build_containers.sh
Executable file
55
tools/build-containers/build_containers.sh
Executable file
@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
podman=`which podman || true`
|
||||
|
||||
if [ -z $podman ]; then
|
||||
echo "podman needs to be in PATH for this script to work."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
files_root=$(pwd)/files
|
||||
img_version=bs
|
||||
|
||||
mkdir -p logs
|
||||
|
||||
export podman_build="$podman build --build-arg img_version=${img_version}"
|
||||
|
||||
$podman build -v ${files_root}:/root/files -t godot-fedora:${img_version} -f Dockerfile.base . 2>&1 | tee logs/base.log
|
||||
$podman_build -t godot-linux:${img_version} -f Dockerfile.linux . 2>&1 | tee logs/linux.log
|
||||
$podman_build -t godot-windows:${img_version} -f Dockerfile.windows --ulimit nofile=65536 . 2>&1 | tee logs/windows.log
|
||||
$podman_build -t godot-javascript:${img_version} -f Dockerfile.javascript . 2>&1 | tee logs/javascript.log
|
||||
$podman_build -t godot-android:${img_version} -f Dockerfile.android . 2>&1 | tee logs/android.log
|
||||
|
||||
XCODE_SDK=12.5.1
|
||||
OSX_SDK=11.3
|
||||
IOS_SDK=14.5
|
||||
if [ ! -e files/MacOSX${OSX_SDK}.sdk.tar.xz ] || [ ! -e files/iPhoneOS${IOS_SDK}.sdk.tar.xz ] || [ ! -e files/iPhoneSimulator${IOS_SDK}.sdk.tar.xz ]; then
|
||||
if [ ! -e files/Xcode_${XCODE_SDK}.xip ]; then
|
||||
echo "files/Xcode_${XCODE_SDK}.xip is required. It can be downloaded from https://developer.apple.com/download/more/ with a valid apple ID."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Building OSX and iOS SDK packages. This will take a while"
|
||||
$podman_build -t godot-xcode-packer:${img_version} -f Dockerfile.xcode -v ${files_root}:/root/files . 2>&1 | tee logs/xcode.log
|
||||
$podman run -it --rm -v ${files_root}:/root/files godot-xcode-packer:${img_version} 2>&1 | tee logs/xcode_packer.log
|
||||
fi
|
||||
|
||||
$podman_build -t godot-osx:${img_version} -v ${files_root}:/root/files -f Dockerfile.osx . 2>&1 | tee logs/osx.log
|
||||
$podman_build -t godot-ios:${img_version} -v ${files_root}:/root/files -f Dockerfile.ios . 2>&1 | tee logs/ios.log
|
||||
|
||||
if [ "${build_msvc}" != "0" ]; then
|
||||
if [ ! -e files/msvc2017.tar ]; then
|
||||
echo
|
||||
echo "files/msvc2017.tar is missing. This file can be created on a Windows 7 or 10 machine by downloading the 'Visual Studio Tools' installer."
|
||||
echo "here: https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017"
|
||||
echo "The required components can be installed by running"
|
||||
echo "vs_buildtools.exe --add Microsoft.VisualStudio.Workload.UniversalBuildTools --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.Windows10SDK.16299.Desktop --add Microsoft.VisualStudio.Component.Windows10SDK.16299.UWP.Native --passive"
|
||||
echo "after that create a zipfile of C:/Program Files (x86)/Microsoft Visual Studio"
|
||||
echo "tar -cf msvc2017.tar -C \"c:/Program Files (x86)/ Microsoft Visual Studio\""
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$podman_build -t godot-msvc:${img_version} -f Dockerfile.msvc -v ${files_root}:/root/files . 2>&1 | tee logs/msvc.log
|
||||
fi
|
24
tools/build-containers/files/msvc-fixup.sh
Executable file
24
tools/build-containers/files/msvc-fixup.sh
Executable file
@ -0,0 +1,24 @@
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/msobj140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/arm/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/msobj140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x86/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/mspdbcore.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/arm/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/mspdbcore.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x86/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdb140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdb140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/arm/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/msobj140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/msobj140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/arm/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdbcore.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdbcore.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/arm/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdbsrv.exe /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdbsrv.exe /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/arm/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/msvcdis140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/arm/
|
||||
|
||||
pushd /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ SDKs/
|
||||
rm -rf ClickOnce\ Bootstrapper/ Portable/ Windows NuGetPackages/ UWPNuGetPackages/
|
||||
popd
|
||||
|
@ -0,0 +1,118 @@
|
||||
From b875d7c1360c8ff2077463d7a5a12e1cff1cc683 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= <rverschelde@gmail.com>
|
||||
Date: Mon, 12 Jul 2021 13:34:32 +0200
|
||||
Subject: [PATCH] compiler-rt: Add option to automate install process
|
||||
|
||||
Also mention that compiler-rt can be needed to build code using
|
||||
`__builtin_available()`.
|
||||
|
||||
Fixes #278.
|
||||
---
|
||||
README.COMPILER-RT.md | 4 ++++
|
||||
README.md | 3 +++
|
||||
build_compiler_rt.sh | 33 ++++++++++++++++++++++++---------
|
||||
3 files changed, 31 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/README.COMPILER-RT.md b/README.COMPILER-RT.md
|
||||
index b2754dfcf..dced89686 100644
|
||||
--- a/README.COMPILER-RT.md
|
||||
+++ b/README.COMPILER-RT.md
|
||||
@@ -10,6 +10,10 @@ Ensure you have finished `build.sh`,
|
||||
|
||||
then run: `./build_compiler_rt.sh`.
|
||||
|
||||
+By default, installation steps for compiler-rt will be printed to the terminal
|
||||
+to run manually, but you can automate the installation process by defining
|
||||
+`ENABLE_COMPILER_RT_INSTALL`.
|
||||
+
|
||||
You can verify compiler-rt is working by invoking the following command:
|
||||
|
||||
echo "int main(void){return 0;}" | xcrun clang -xc -o/dev/null -v - 2>&1 | \
|
||||
diff --git a/README.md b/README.md
|
||||
index 60d19f917..f32bf626c 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -33,6 +33,9 @@ It also includes scripts for optionally building
|
||||
* the "compiler-rt" runtime library, and
|
||||
* the `llvm-dsymutil` tool required for debugging.
|
||||
|
||||
+Note: The "compiler-rt" library can be needed to link code that uses the
|
||||
+`__builtin_available()` runtime version check.
|
||||
+
|
||||
|
||||
### WHAT CAN BE BUILT WITH IT? ###
|
||||
|
||||
diff --git a/build_compiler_rt.sh b/build_compiler_rt.sh
|
||||
index 8f47262a2..508742cab 100755
|
||||
--- a/build_compiler_rt.sh
|
||||
+++ b/build_compiler_rt.sh
|
||||
@@ -182,22 +182,39 @@ fi
|
||||
rm -f $BUILD_DIR/.compiler-rt_build_complete
|
||||
|
||||
|
||||
+# Installation. Can be either automated (ENABLE_COMPILER_RT_INSTALL) or will
|
||||
+# print the commands that the user should run manually.
|
||||
+
|
||||
+function print_or_run() {
|
||||
+ if [ -z "$ENABLE_COMPILER_RT_INSTALL" ]; then
|
||||
+ echo "$@"
|
||||
+ else
|
||||
+ $@
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
echo ""
|
||||
echo ""
|
||||
echo ""
|
||||
-echo "Please run the following commands by hand to install compiler-rt:"
|
||||
+if [ -z "$ENABLE_COMPILER_RT_INSTALL" ]; then
|
||||
+ echo "Please run the following commands by hand to install compiler-rt:"
|
||||
+else
|
||||
+ echo "Installing compiler-rt headers and libraries to the following paths:"
|
||||
+ echo " ${CLANG_INCLUDE_DIR}"
|
||||
+ echo " ${CLANG_DARWIN_LIB_DIR}"
|
||||
+fi
|
||||
echo ""
|
||||
|
||||
-echo "mkdir -p ${CLANG_INCLUDE_DIR}"
|
||||
-echo "mkdir -p ${CLANG_DARWIN_LIB_DIR}"
|
||||
-echo "cp -rv $BUILD_DIR/compiler-rt/compiler-rt/include/sanitizer ${CLANG_INCLUDE_DIR}"
|
||||
+print_or_run mkdir -p ${CLANG_INCLUDE_DIR}
|
||||
+print_or_run mkdir -p ${CLANG_DARWIN_LIB_DIR}
|
||||
+print_or_run cp -rv $BUILD_DIR/compiler-rt/compiler-rt/include/sanitizer ${CLANG_INCLUDE_DIR}
|
||||
|
||||
if [ $USE_CMAKE -eq 1 ]; then
|
||||
|
||||
### CMAKE ###
|
||||
|
||||
- echo "cp -v $BUILD_DIR/compiler-rt/compiler-rt/build/lib/darwin/*.a ${CLANG_DARWIN_LIB_DIR}"
|
||||
- echo "cp -v $BUILD_DIR/compiler-rt/compiler-rt/build/lib/darwin/*.dylib ${CLANG_DARWIN_LIB_DIR}"
|
||||
+ print_or_run cp -v $BUILD_DIR/compiler-rt/compiler-rt/build/lib/darwin/*.a ${CLANG_DARWIN_LIB_DIR}
|
||||
+ print_or_run cp -v $BUILD_DIR/compiler-rt/compiler-rt/build/lib/darwin/*.dylib ${CLANG_DARWIN_LIB_DIR}
|
||||
|
||||
### CMAKE END ###
|
||||
|
||||
@@ -209,7 +226,7 @@ else
|
||||
|
||||
function print_install_command() {
|
||||
if [ -f "$1" ]; then
|
||||
- echo "cp $PWD/compiler-rt/$1 ${CLANG_DARWIN_LIB_DIR}/$2"
|
||||
+ print_or_run cp $PWD/compiler-rt/$1 ${CLANG_DARWIN_LIB_DIR}/$2
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -219,14 +236,12 @@ else
|
||||
print_install_command "cc_kext/libcompiler_rt.a" "libclang_rt.cc_kext.a"
|
||||
print_install_command "profile_osx/libcompiler_rt.a" "libclang_rt.profile_osx.a"
|
||||
|
||||
-
|
||||
print_install_command "ubsan_osx_dynamic/libcompiler_rt.dylib" \
|
||||
"libclang_rt.ubsan_osx_dynamic.dylib"
|
||||
|
||||
print_install_command "asan_osx_dynamic/libcompiler_rt.dylib" \
|
||||
"libclang_rt.asan_osx_dynamic.dylib"
|
||||
|
||||
-
|
||||
popd &>/dev/null
|
||||
|
||||
### MAKE END ###
|
27
tools/build-containers/upload.sh
Normal file
27
tools/build-containers/upload.sh
Normal file
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
podman=podman
|
||||
if ! which $podman; then
|
||||
podman=docker
|
||||
fi
|
||||
|
||||
registry=$1
|
||||
|
||||
if [ -z "${registry}" ]; then
|
||||
registry=registry.prehensile-tales.com
|
||||
fi
|
||||
|
||||
$podman push godot-export:latest ${registry}/godot/export
|
||||
$podman push godot-mono-glue:latest ${registry}/godot/mono-glue
|
||||
$podman push godot-windows:latest ${registry}/godot/windows
|
||||
$podman push godot-ubuntu-32:latest ${registry}/godot/ubuntu-32
|
||||
$podman push godot-ubuntu-64:latest ${registry}/godot/ubuntu-64
|
||||
$podman push godot-javascript:latest ${registry}/godot/javascript
|
||||
$podman push godot-xcode-packer:latest ${registry}/godot/xcode-packer
|
||||
|
||||
$podman push godot-android:latest ${registry}/godot-private/android
|
||||
$podman push godot-ios:latest ${registry}/godot-private/ios
|
||||
$podman push godot-osx:latest ${registry}/godot-private/macosx
|
||||
$podman push godot-msvc:latest ${registry}/godot-private/uwp
|
111
tools/copy_repos.py
Normal file
111
tools/copy_repos.py
Normal file
@ -0,0 +1,111 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright (c) 2019-2021 Péter Magyar
|
||||
#
|
||||
# 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.
|
||||
|
||||
import sys
|
||||
import os
|
||||
import subprocess
|
||||
import json
|
||||
import shutil
|
||||
import traceback
|
||||
|
||||
def onerror(func, path, exc_info):
|
||||
"""
|
||||
https://stackoverflow.com/questions/2656322/shutil-rmtree-fails-on-windows-with-access-is-denied
|
||||
|
||||
Because Windows.
|
||||
|
||||
Error handler for ``shutil.rmtree``.
|
||||
|
||||
If the error is due to an access error (read only file)
|
||||
it attempts to add write permission and then retries.
|
||||
|
||||
If the error is for another reason it re-raises the error.
|
||||
|
||||
Usage : ``shutil.rmtree(path, onerror=onerror)``
|
||||
"""
|
||||
import stat
|
||||
if not os.access(path, os.W_OK):
|
||||
# Is the error an access error ?
|
||||
os.chmod(path, stat.S_IWUSR)
|
||||
func(path)
|
||||
else:
|
||||
raise
|
||||
|
||||
def copytree(src, dst, warn = 0):
|
||||
for item in os.listdir(src):
|
||||
|
||||
sp = os.path.join(src, item)
|
||||
dp = os.path.join(dst, item)
|
||||
|
||||
if os.path.isdir(sp):
|
||||
if item == ".git" or item == "bin" or item == "__pycache__" or item == ".import" or item == "logs" or item == "release" or item == "export" or item == "build" or item == "libs":
|
||||
continue
|
||||
|
||||
#print(item)
|
||||
|
||||
if os.path.isdir(dp):
|
||||
shutil.rmtree(dp, onerror=onerror)
|
||||
|
||||
copytree(sp, dp, warn)
|
||||
else:
|
||||
if item.endswith(".a") or item.endswith(".class") or item.endswith(".dex") or item.endswith(".pyc") or item.endswith(".o") or item.endswith(".bc") or item.endswith(".so") or item == "export_presets.cfg" or item.endswith(".gen.h") or item.endswith(".os") or item.endswith(".dblite") or item == ".scons_node_count" or item == ".scons_env.json" or item == "compile_commands.json" or item == "config.log" or item.endswith(".gen.inc") or item.endswith(".gen.cpp") :
|
||||
continue
|
||||
|
||||
#print(item)
|
||||
|
||||
if not os.path.isdir(dst):
|
||||
os.makedirs(dst)
|
||||
|
||||
file_size_bytes = os.path.getsize(sp)
|
||||
|
||||
if warn > 0 and file_size_bytes >= warn:
|
||||
# Ignore assets, this is meant to catch temp / generated files
|
||||
if not (item.endswith(".po") or item.endswith(".tres") or item.endswith(".ttf") or item.endswith(".tza") or item.endswith(".blend") or item.endswith(".blend1") or item.endswith(".pot")):
|
||||
print("WARNING! File '", sp, "' (", file_size_bytes, "bytes) is over the warn threshold!")
|
||||
|
||||
shutil.copy2(sp, dp)
|
||||
|
||||
def copy_repository(data, target_folder, clone_path):
|
||||
copytree(os.path.abspath(clone_path + data[1] + '/' + data[2]), os.path.abspath(target_folder + data[1]))
|
||||
|
||||
|
||||
#copy_repository(rep, './game/addons/', '.' + module_clone_path)
|
||||
|
||||
#print(sys.argv)
|
||||
|
||||
if len(sys.argv) == 3 or len(sys.argv) == 4:
|
||||
src_dir = sys.argv[1]
|
||||
dst_dir = sys.argv[2]
|
||||
warn = 0
|
||||
|
||||
if len(sys.argv) == 4:
|
||||
warn = int(sys.argv[3])
|
||||
|
||||
src_dir = os.path.abspath(src_dir)
|
||||
dst_dir = os.path.abspath(dst_dir)
|
||||
|
||||
copytree(src_dir, dst_dir, warn)
|
||||
|
||||
|
||||
else:
|
||||
print("Usange: python copy_repos.py source_dir target_dir")
|
590
tools/export_presets.cfg.example
Normal file
590
tools/export_presets.cfg.example
Normal file
@ -0,0 +1,590 @@
|
||||
[preset.0]
|
||||
|
||||
name="Android"
|
||||
platform="Android"
|
||||
runnable=true
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*.xml"
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
script_export_mode=1
|
||||
script_encryption_key=""
|
||||
|
||||
[preset.0.options]
|
||||
|
||||
custom_template/debug="../engine/bin/android_debug.apk"
|
||||
custom_template/release="../engine/bin/android_release.apk"
|
||||
custom_template/use_custom_build=false
|
||||
custom_template/export_format=0
|
||||
architectures/armeabi-v7a=true
|
||||
architectures/arm64-v8a=true
|
||||
architectures/x86=false
|
||||
architectures/x86_64=false
|
||||
keystore/debug=""
|
||||
keystore/debug_user=""
|
||||
keystore/debug_password=""
|
||||
keystore/release=""
|
||||
keystore/release_user=""
|
||||
keystore/release_password=""
|
||||
one_click_deploy/clear_previous_install=false
|
||||
version/code=2
|
||||
version/name="0.3.2"
|
||||
package/unique_name="net.relintai.$genname"
|
||||
package/name="Broken Seals"
|
||||
package/signed=true
|
||||
launcher_icons/main_192x192="res://icon.png"
|
||||
launcher_icons/adaptive_foreground_432x432="res://icon.png"
|
||||
launcher_icons/adaptive_background_432x432="res://icon.png"
|
||||
graphics/32_bits_framebuffer=true
|
||||
graphics/opengl_debug=false
|
||||
xr_features/xr_mode=0
|
||||
xr_features/degrees_of_freedom=0
|
||||
xr_features/hand_tracking=0
|
||||
xr_features/focus_awareness=false
|
||||
screen/immersive_mode=true
|
||||
screen/support_small=true
|
||||
screen/support_normal=true
|
||||
screen/support_large=true
|
||||
screen/support_xlarge=true
|
||||
command_line/extra_args=""
|
||||
apk_expansion/enable=false
|
||||
apk_expansion/SALT=""
|
||||
apk_expansion/public_key=""
|
||||
permissions/custom_permissions=PoolStringArray( )
|
||||
permissions/access_checkin_properties=false
|
||||
permissions/access_coarse_location=false
|
||||
permissions/access_fine_location=false
|
||||
permissions/access_location_extra_commands=false
|
||||
permissions/access_mock_location=false
|
||||
permissions/access_network_state=false
|
||||
permissions/access_surface_flinger=false
|
||||
permissions/access_wifi_state=false
|
||||
permissions/account_manager=false
|
||||
permissions/add_voicemail=false
|
||||
permissions/authenticate_accounts=false
|
||||
permissions/battery_stats=false
|
||||
permissions/bind_accessibility_service=false
|
||||
permissions/bind_appwidget=false
|
||||
permissions/bind_device_admin=false
|
||||
permissions/bind_input_method=false
|
||||
permissions/bind_nfc_service=false
|
||||
permissions/bind_notification_listener_service=false
|
||||
permissions/bind_print_service=false
|
||||
permissions/bind_remoteviews=false
|
||||
permissions/bind_text_service=false
|
||||
permissions/bind_vpn_service=false
|
||||
permissions/bind_wallpaper=false
|
||||
permissions/bluetooth=false
|
||||
permissions/bluetooth_admin=false
|
||||
permissions/bluetooth_privileged=false
|
||||
permissions/brick=false
|
||||
permissions/broadcast_package_removed=false
|
||||
permissions/broadcast_sms=false
|
||||
permissions/broadcast_sticky=false
|
||||
permissions/broadcast_wap_push=false
|
||||
permissions/call_phone=false
|
||||
permissions/call_privileged=false
|
||||
permissions/camera=false
|
||||
permissions/capture_audio_output=false
|
||||
permissions/capture_secure_video_output=false
|
||||
permissions/capture_video_output=false
|
||||
permissions/change_component_enabled_state=false
|
||||
permissions/change_configuration=false
|
||||
permissions/change_network_state=false
|
||||
permissions/change_wifi_multicast_state=false
|
||||
permissions/change_wifi_state=false
|
||||
permissions/clear_app_cache=false
|
||||
permissions/clear_app_user_data=false
|
||||
permissions/control_location_updates=false
|
||||
permissions/delete_cache_files=false
|
||||
permissions/delete_packages=false
|
||||
permissions/device_power=false
|
||||
permissions/diagnostic=false
|
||||
permissions/disable_keyguard=false
|
||||
permissions/dump=false
|
||||
permissions/expand_status_bar=false
|
||||
permissions/factory_test=false
|
||||
permissions/flashlight=false
|
||||
permissions/force_back=false
|
||||
permissions/get_accounts=false
|
||||
permissions/get_package_size=false
|
||||
permissions/get_tasks=false
|
||||
permissions/get_top_activity_info=false
|
||||
permissions/global_search=false
|
||||
permissions/hardware_test=false
|
||||
permissions/inject_events=false
|
||||
permissions/install_location_provider=false
|
||||
permissions/install_packages=false
|
||||
permissions/install_shortcut=false
|
||||
permissions/internal_system_window=false
|
||||
permissions/internet=false
|
||||
permissions/kill_background_processes=false
|
||||
permissions/location_hardware=false
|
||||
permissions/manage_accounts=false
|
||||
permissions/manage_app_tokens=false
|
||||
permissions/manage_documents=false
|
||||
permissions/master_clear=false
|
||||
permissions/media_content_control=false
|
||||
permissions/modify_audio_settings=false
|
||||
permissions/modify_phone_state=false
|
||||
permissions/mount_format_filesystems=false
|
||||
permissions/mount_unmount_filesystems=false
|
||||
permissions/nfc=false
|
||||
permissions/persistent_activity=false
|
||||
permissions/process_outgoing_calls=false
|
||||
permissions/read_calendar=false
|
||||
permissions/read_call_log=false
|
||||
permissions/read_contacts=false
|
||||
permissions/read_external_storage=false
|
||||
permissions/read_frame_buffer=false
|
||||
permissions/read_history_bookmarks=false
|
||||
permissions/read_input_state=false
|
||||
permissions/read_logs=false
|
||||
permissions/read_phone_state=false
|
||||
permissions/read_profile=false
|
||||
permissions/read_sms=false
|
||||
permissions/read_social_stream=false
|
||||
permissions/read_sync_settings=false
|
||||
permissions/read_sync_stats=false
|
||||
permissions/read_user_dictionary=false
|
||||
permissions/reboot=false
|
||||
permissions/receive_boot_completed=false
|
||||
permissions/receive_mms=false
|
||||
permissions/receive_sms=false
|
||||
permissions/receive_wap_push=false
|
||||
permissions/record_audio=false
|
||||
permissions/reorder_tasks=false
|
||||
permissions/restart_packages=false
|
||||
permissions/send_respond_via_message=false
|
||||
permissions/send_sms=false
|
||||
permissions/set_activity_watcher=false
|
||||
permissions/set_alarm=false
|
||||
permissions/set_always_finish=false
|
||||
permissions/set_animation_scale=false
|
||||
permissions/set_debug_app=false
|
||||
permissions/set_orientation=false
|
||||
permissions/set_pointer_speed=false
|
||||
permissions/set_preferred_applications=false
|
||||
permissions/set_process_limit=false
|
||||
permissions/set_time=false
|
||||
permissions/set_time_zone=false
|
||||
permissions/set_wallpaper=false
|
||||
permissions/set_wallpaper_hints=false
|
||||
permissions/signal_persistent_processes=false
|
||||
permissions/status_bar=false
|
||||
permissions/subscribed_feeds_read=false
|
||||
permissions/subscribed_feeds_write=false
|
||||
permissions/system_alert_window=false
|
||||
permissions/transmit_ir=false
|
||||
permissions/uninstall_shortcut=false
|
||||
permissions/update_device_stats=false
|
||||
permissions/use_credentials=false
|
||||
permissions/use_sip=false
|
||||
permissions/vibrate=false
|
||||
permissions/wake_lock=false
|
||||
permissions/write_apn_settings=false
|
||||
permissions/write_calendar=false
|
||||
permissions/write_call_log=false
|
||||
permissions/write_contacts=false
|
||||
permissions/write_external_storage=false
|
||||
permissions/write_gservices=false
|
||||
permissions/write_history_bookmarks=false
|
||||
permissions/write_profile=false
|
||||
permissions/write_secure_settings=false
|
||||
permissions/write_settings=false
|
||||
permissions/write_sms=false
|
||||
permissions/write_social_stream=false
|
||||
permissions/write_sync_settings=false
|
||||
permissions/write_user_dictionary=false
|
||||
|
||||
[preset.1]
|
||||
|
||||
name="Linux/X11"
|
||||
platform="Linux/X11"
|
||||
runnable=true
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*.xml"
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
script_export_mode=1
|
||||
script_encryption_key=""
|
||||
|
||||
[preset.1.options]
|
||||
|
||||
custom_template/debug="../engine/bin/godot.x11.opt.debug.64"
|
||||
custom_template/release="../engine/bin/godot.x11.opt.64"
|
||||
binary_format/64_bits=true
|
||||
binary_format/embed_pck=false
|
||||
texture_format/bptc=false
|
||||
texture_format/s3tc=true
|
||||
texture_format/etc=false
|
||||
texture_format/etc2=false
|
||||
texture_format/no_bptc_fallbacks=true
|
||||
|
||||
[preset.2]
|
||||
|
||||
name="HTML5"
|
||||
platform="HTML5"
|
||||
runnable=true
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*.xml"
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
script_export_mode=1
|
||||
script_encryption_key=""
|
||||
|
||||
[preset.2.options]
|
||||
|
||||
custom_template/debug="../engine/bin/godot.javascript.opt.zip"
|
||||
custom_template/release="../engine/bin/godot.javascript.opt.debug.zip"
|
||||
variant/export_type=0
|
||||
vram_texture_compression/for_desktop=true
|
||||
vram_texture_compression/for_mobile=true
|
||||
html/custom_html_shell=""
|
||||
html/head_include=""
|
||||
html/canvas_resize_policy=2
|
||||
html/experimental_virtual_keyboard=false
|
||||
|
||||
[preset.3]
|
||||
|
||||
name="Windows Desktop"
|
||||
platform="Windows Desktop"
|
||||
runnable=true
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*.xml"
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
script_export_mode=1
|
||||
script_encryption_key=""
|
||||
|
||||
[preset.3.options]
|
||||
|
||||
custom_template/debug="../engine/bin/godot.windows.opt.debug.64.exe"
|
||||
custom_template/release="../engine/bin/godot.windows.opt.64.exe"
|
||||
binary_format/64_bits=true
|
||||
binary_format/embed_pck=false
|
||||
texture_format/bptc=false
|
||||
texture_format/s3tc=true
|
||||
texture_format/etc=false
|
||||
texture_format/etc2=false
|
||||
texture_format/no_bptc_fallbacks=true
|
||||
codesign/enable=false
|
||||
codesign/identity=""
|
||||
codesign/password=""
|
||||
codesign/timestamp=true
|
||||
codesign/timestamp_server_url=""
|
||||
codesign/digest_algorithm=1
|
||||
codesign/description=""
|
||||
codesign/custom_options=PoolStringArray( )
|
||||
application/icon=""
|
||||
application/file_version=""
|
||||
application/product_version=""
|
||||
application/company_name=""
|
||||
application/product_name=""
|
||||
application/file_description=""
|
||||
application/copyright=""
|
||||
application/trademarks=""
|
||||
|
||||
[preset.4]
|
||||
|
||||
name="Android-Release"
|
||||
platform="Android"
|
||||
runnable=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*.xml"
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
script_export_mode=1
|
||||
script_encryption_key=""
|
||||
|
||||
[preset.4.options]
|
||||
|
||||
custom_template/debug="../engine/bin/android_release.apk"
|
||||
custom_template/release="../engine/bin/android_release.apk"
|
||||
custom_template/use_custom_build=false
|
||||
custom_template/export_format=0
|
||||
architectures/armeabi-v7a=true
|
||||
architectures/arm64-v8a=true
|
||||
architectures/x86=false
|
||||
architectures/x86_64=false
|
||||
keystore/debug=""
|
||||
keystore/debug_user=""
|
||||
keystore/debug_password=""
|
||||
keystore/release=""
|
||||
keystore/release_user=""
|
||||
keystore/release_password=""
|
||||
one_click_deploy/clear_previous_install=false
|
||||
version/code=2
|
||||
version/name="0.3.2"
|
||||
package/unique_name="net.relintai.$genname"
|
||||
package/name="Broken Seals"
|
||||
package/signed=true
|
||||
launcher_icons/main_192x192="res://icon.png"
|
||||
launcher_icons/adaptive_foreground_432x432="res://icon.png"
|
||||
launcher_icons/adaptive_background_432x432="res://icon.png"
|
||||
graphics/32_bits_framebuffer=true
|
||||
graphics/opengl_debug=false
|
||||
xr_features/xr_mode=0
|
||||
xr_features/degrees_of_freedom=0
|
||||
xr_features/hand_tracking=0
|
||||
xr_features/focus_awareness=false
|
||||
screen/immersive_mode=true
|
||||
screen/support_small=true
|
||||
screen/support_normal=true
|
||||
screen/support_large=true
|
||||
screen/support_xlarge=true
|
||||
command_line/extra_args=""
|
||||
apk_expansion/enable=false
|
||||
apk_expansion/SALT=""
|
||||
apk_expansion/public_key=""
|
||||
permissions/custom_permissions=PoolStringArray( )
|
||||
permissions/access_checkin_properties=false
|
||||
permissions/access_coarse_location=false
|
||||
permissions/access_fine_location=false
|
||||
permissions/access_location_extra_commands=false
|
||||
permissions/access_mock_location=false
|
||||
permissions/access_network_state=false
|
||||
permissions/access_surface_flinger=false
|
||||
permissions/access_wifi_state=false
|
||||
permissions/account_manager=false
|
||||
permissions/add_voicemail=false
|
||||
permissions/authenticate_accounts=false
|
||||
permissions/battery_stats=false
|
||||
permissions/bind_accessibility_service=false
|
||||
permissions/bind_appwidget=false
|
||||
permissions/bind_device_admin=false
|
||||
permissions/bind_input_method=false
|
||||
permissions/bind_nfc_service=false
|
||||
permissions/bind_notification_listener_service=false
|
||||
permissions/bind_print_service=false
|
||||
permissions/bind_remoteviews=false
|
||||
permissions/bind_text_service=false
|
||||
permissions/bind_vpn_service=false
|
||||
permissions/bind_wallpaper=false
|
||||
permissions/bluetooth=false
|
||||
permissions/bluetooth_admin=false
|
||||
permissions/bluetooth_privileged=false
|
||||
permissions/brick=false
|
||||
permissions/broadcast_package_removed=false
|
||||
permissions/broadcast_sms=false
|
||||
permissions/broadcast_sticky=false
|
||||
permissions/broadcast_wap_push=false
|
||||
permissions/call_phone=false
|
||||
permissions/call_privileged=false
|
||||
permissions/camera=false
|
||||
permissions/capture_audio_output=false
|
||||
permissions/capture_secure_video_output=false
|
||||
permissions/capture_video_output=false
|
||||
permissions/change_component_enabled_state=false
|
||||
permissions/change_configuration=false
|
||||
permissions/change_network_state=false
|
||||
permissions/change_wifi_multicast_state=false
|
||||
permissions/change_wifi_state=false
|
||||
permissions/clear_app_cache=false
|
||||
permissions/clear_app_user_data=false
|
||||
permissions/control_location_updates=false
|
||||
permissions/delete_cache_files=false
|
||||
permissions/delete_packages=false
|
||||
permissions/device_power=false
|
||||
permissions/diagnostic=false
|
||||
permissions/disable_keyguard=false
|
||||
permissions/dump=false
|
||||
permissions/expand_status_bar=false
|
||||
permissions/factory_test=false
|
||||
permissions/flashlight=false
|
||||
permissions/force_back=false
|
||||
permissions/get_accounts=false
|
||||
permissions/get_package_size=false
|
||||
permissions/get_tasks=false
|
||||
permissions/get_top_activity_info=false
|
||||
permissions/global_search=false
|
||||
permissions/hardware_test=false
|
||||
permissions/inject_events=false
|
||||
permissions/install_location_provider=false
|
||||
permissions/install_packages=false
|
||||
permissions/install_shortcut=false
|
||||
permissions/internal_system_window=false
|
||||
permissions/internet=false
|
||||
permissions/kill_background_processes=false
|
||||
permissions/location_hardware=false
|
||||
permissions/manage_accounts=false
|
||||
permissions/manage_app_tokens=false
|
||||
permissions/manage_documents=false
|
||||
permissions/master_clear=false
|
||||
permissions/media_content_control=false
|
||||
permissions/modify_audio_settings=false
|
||||
permissions/modify_phone_state=false
|
||||
permissions/mount_format_filesystems=false
|
||||
permissions/mount_unmount_filesystems=false
|
||||
permissions/nfc=false
|
||||
permissions/persistent_activity=false
|
||||
permissions/process_outgoing_calls=false
|
||||
permissions/read_calendar=false
|
||||
permissions/read_call_log=false
|
||||
permissions/read_contacts=false
|
||||
permissions/read_external_storage=false
|
||||
permissions/read_frame_buffer=false
|
||||
permissions/read_history_bookmarks=false
|
||||
permissions/read_input_state=false
|
||||
permissions/read_logs=false
|
||||
permissions/read_phone_state=false
|
||||
permissions/read_profile=false
|
||||
permissions/read_sms=false
|
||||
permissions/read_social_stream=false
|
||||
permissions/read_sync_settings=false
|
||||
permissions/read_sync_stats=false
|
||||
permissions/read_user_dictionary=false
|
||||
permissions/reboot=false
|
||||
permissions/receive_boot_completed=false
|
||||
permissions/receive_mms=false
|
||||
permissions/receive_sms=false
|
||||
permissions/receive_wap_push=false
|
||||
permissions/record_audio=false
|
||||
permissions/reorder_tasks=false
|
||||
permissions/restart_packages=false
|
||||
permissions/send_respond_via_message=false
|
||||
permissions/send_sms=false
|
||||
permissions/set_activity_watcher=false
|
||||
permissions/set_alarm=false
|
||||
permissions/set_always_finish=false
|
||||
permissions/set_animation_scale=false
|
||||
permissions/set_debug_app=false
|
||||
permissions/set_orientation=false
|
||||
permissions/set_pointer_speed=false
|
||||
permissions/set_preferred_applications=false
|
||||
permissions/set_process_limit=false
|
||||
permissions/set_time=false
|
||||
permissions/set_time_zone=false
|
||||
permissions/set_wallpaper=false
|
||||
permissions/set_wallpaper_hints=false
|
||||
permissions/signal_persistent_processes=false
|
||||
permissions/status_bar=false
|
||||
permissions/subscribed_feeds_read=false
|
||||
permissions/subscribed_feeds_write=false
|
||||
permissions/system_alert_window=false
|
||||
permissions/transmit_ir=false
|
||||
permissions/uninstall_shortcut=false
|
||||
permissions/update_device_stats=false
|
||||
permissions/use_credentials=false
|
||||
permissions/use_sip=false
|
||||
permissions/vibrate=false
|
||||
permissions/wake_lock=false
|
||||
permissions/write_apn_settings=false
|
||||
permissions/write_calendar=false
|
||||
permissions/write_call_log=false
|
||||
permissions/write_contacts=false
|
||||
permissions/write_external_storage=false
|
||||
permissions/write_gservices=false
|
||||
permissions/write_history_bookmarks=false
|
||||
permissions/write_profile=false
|
||||
permissions/write_secure_settings=false
|
||||
permissions/write_settings=false
|
||||
permissions/write_sms=false
|
||||
permissions/write_social_stream=false
|
||||
permissions/write_sync_settings=false
|
||||
permissions/write_user_dictionary=false
|
||||
|
||||
[preset.5]
|
||||
|
||||
name="PI4/X11"
|
||||
platform="Linux/X11"
|
||||
runnable=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*.xml"
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
script_export_mode=1
|
||||
script_encryption_key=""
|
||||
|
||||
[preset.5.options]
|
||||
|
||||
custom_template/debug="../engine/bin/godot.x11.pi4.opt.debug.32"
|
||||
custom_template/release="../engine/bin/godot.x11.pi4.opt.32"
|
||||
binary_format/64_bits=false
|
||||
binary_format/embed_pck=false
|
||||
texture_format/bptc=false
|
||||
texture_format/s3tc=true
|
||||
texture_format/etc=false
|
||||
texture_format/etc2=false
|
||||
texture_format/no_bptc_fallbacks=true
|
||||
|
||||
[preset.6]
|
||||
|
||||
name="Mac OSX"
|
||||
platform="Mac OSX"
|
||||
runnable=true
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*.xml"
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
script_export_mode=1
|
||||
script_encryption_key=""
|
||||
|
||||
|
||||
[preset.6.options]
|
||||
|
||||
custom_template/debug="../engine/bin/osx.zip"
|
||||
custom_template/release="../engine/bin/osx.zip"
|
||||
application/name="Broken Seals"
|
||||
application/info="Made with Godot Engine"
|
||||
application/icon=""
|
||||
application/identifier="net.relintai.brokenseals"
|
||||
application/signature=""
|
||||
application/app_category="Role-playing-games"
|
||||
application/short_version="1.0"
|
||||
application/version="1.0"
|
||||
application/copyright=""
|
||||
display/high_res=false
|
||||
privacy/microphone_usage_description=""
|
||||
privacy/camera_usage_description=""
|
||||
privacy/location_usage_description=""
|
||||
privacy/address_book_usage_description=""
|
||||
privacy/calendar_usage_description=""
|
||||
privacy/photos_library_usage_description=""
|
||||
privacy/desktop_folder_usage_description=""
|
||||
privacy/documents_folder_usage_description=""
|
||||
privacy/downloads_folder_usage_description=""
|
||||
privacy/network_volumes_usage_description=""
|
||||
privacy/removable_volumes_usage_description=""
|
||||
codesign/enable=true
|
||||
codesign/identity=""
|
||||
codesign/timestamp=true
|
||||
codesign/hardened_runtime=true
|
||||
codesign/replace_existing_signature=true
|
||||
codesign/entitlements/custom_file=""
|
||||
codesign/entitlements/allow_jit_code_execution=false
|
||||
codesign/entitlements/allow_unsigned_executable_memory=false
|
||||
codesign/entitlements/allow_dyld_environment_variables=false
|
||||
codesign/entitlements/disable_library_validation=false
|
||||
codesign/entitlements/audio_input=false
|
||||
codesign/entitlements/camera=false
|
||||
codesign/entitlements/location=false
|
||||
codesign/entitlements/address_book=false
|
||||
codesign/entitlements/calendars=false
|
||||
codesign/entitlements/photos_library=false
|
||||
codesign/entitlements/apple_events=false
|
||||
codesign/entitlements/debugging=false
|
||||
codesign/entitlements/app_sandbox/enabled=false
|
||||
codesign/entitlements/app_sandbox/network_server=false
|
||||
codesign/entitlements/app_sandbox/network_client=false
|
||||
codesign/entitlements/app_sandbox/device_usb=false
|
||||
codesign/entitlements/app_sandbox/device_bluetooth=false
|
||||
codesign/entitlements/app_sandbox/files_downloads=0
|
||||
codesign/entitlements/app_sandbox/files_pictures=0
|
||||
codesign/entitlements/app_sandbox/files_music=0
|
||||
codesign/entitlements/app_sandbox/files_movies=0
|
||||
codesign/custom_options=PoolStringArray( )
|
||||
notarization/enable=false
|
||||
notarization/apple_id_name=""
|
||||
notarization/apple_id_password=""
|
||||
notarization/apple_team_id=""
|
||||
texture_format/s3tc=true
|
||||
texture_format/etc=false
|
||||
texture_format/etc2=false
|
12
tools/osx/create_editor_app.sh
Executable file
12
tools/osx/create_editor_app.sh
Executable file
@ -0,0 +1,12 @@
|
||||
cd ../../engine/bin/
|
||||
|
||||
rm -Rf Godot.app
|
||||
rm -f Godot.app.zip
|
||||
|
||||
cp -r ../misc/dist/osx_tools.app Godot.app
|
||||
mkdir -p Godot.app/Contents/MacOS
|
||||
cp godot.osx.opt.tools.universal Godot.app/Contents/MacOS/Godot
|
||||
chmod +x Godot.app/Contents/MacOS/Godot
|
||||
|
||||
zip -q -r Godot.app.zip Godot.app/*
|
||||
cd ../../tools/osx/
|
12
tools/osx/create_export_templates.sh
Executable file
12
tools/osx/create_export_templates.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#templates
|
||||
|
||||
cd ../../engine/bin
|
||||
|
||||
cp -r ../misc/dist/osx_template.app .
|
||||
mkdir -p osx_template.app/Contents/MacOS
|
||||
cp godot.osx.opt.universal osx_template.app/Contents/MacOS/godot_osx_release.64
|
||||
cp godot.osx.opt.debug.universal osx_template.app/Contents/MacOS/godot_osx_debug.64
|
||||
chmod +x osx_template.app/Contents/MacOS/godot_osx*
|
||||
zip -q -9 -r osx.zip osx_template.app
|
||||
|
||||
cd ../../tools/osx
|
6
tools/osx/lipo.sh
Executable file
6
tools/osx/lipo.sh
Executable file
@ -0,0 +1,6 @@
|
||||
# Tools
|
||||
lipo -create ../../engine/bin/godot.osx.opt.tools.x86_64 ../../engine/bin/godot.osx.opt.tools.arm64 -output ../../engine/bin/godot.osx.opt.tools.universal
|
||||
|
||||
# Export Templates
|
||||
lipo -create ../../engine/bin/godot.osx.opt.x86_64 ../../engine/bin/godot.osx.opt.arm64 -output ../../engine/bin/godot.osx.opt.universal
|
||||
lipo -create ../../engine/bin/godot.osx.opt.debug.x86_64 ../../engine/bin/godot.osx.opt.debug.arm64 -output ../../engine/bin/godot.osx.opt.debug.universal
|
48
tools/release/pre_release_check_files_present.sh
Executable file
48
tools/release/pre_release_check_files_present.sh
Executable file
@ -0,0 +1,48 @@
|
||||
cd ../../engine/bin/
|
||||
|
||||
files=(
|
||||
# Windows
|
||||
"godot.windows.opt.64.exe"
|
||||
"godot.windows.opt.debug.64.exe"
|
||||
"godot.windows.opt.tools.64.exe"
|
||||
|
||||
# Linux
|
||||
"godot.x11.opt.64"
|
||||
"godot.x11.opt.debug.64"
|
||||
"godot.x11.opt.tools.64"
|
||||
|
||||
# JS
|
||||
"godot.javascript.opt.tools.threads.zip"
|
||||
"godot.javascript.opt.zip"
|
||||
# Android
|
||||
|
||||
"android_debug.apk"
|
||||
"android_release.apk"
|
||||
|
||||
# OSX - Editor
|
||||
"Godot.app.zip"
|
||||
|
||||
# OSX - export templates
|
||||
"osx.zip"
|
||||
|
||||
# Pi4
|
||||
"godot.x11.pi4.opt.32"
|
||||
"godot.x11.pi4.opt.debug.32"
|
||||
"godot.x11.pi4.opt.tools.32"
|
||||
)
|
||||
|
||||
error=0
|
||||
|
||||
for f in ${files[*]}
|
||||
do
|
||||
if [ ! -e $f ]; then
|
||||
error=1
|
||||
echo "$f is not present!"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $error -eq 0 ]; then
|
||||
echo "All files are present!"
|
||||
fi
|
||||
|
||||
cd ../..
|
67
tools/vscode-setup/launch.json
Normal file
67
tools/vscode-setup/launch.json
Normal file
@ -0,0 +1,67 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "build and debug",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/bin/godot.x11.opt.tools.64",
|
||||
"args": [
|
||||
"--path",
|
||||
"${workspaceFolder}/../game/"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceFolder}",
|
||||
"environment": [
|
||||
{
|
||||
"name": "LD_LIBRARY_PATH",
|
||||
"value": "${workspaceFolder}/bin/"
|
||||
}
|
||||
],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"preLaunchTask": "build",
|
||||
//"miDebuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
{
|
||||
"name": "debug",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/bin/godot.x11.opt.tools.64",
|
||||
//"args": ["-e"],
|
||||
"args": [
|
||||
"--path",
|
||||
"${workspaceFolder}/../game/",
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceFolder}",
|
||||
"environment": [
|
||||
{
|
||||
"name": "LD_LIBRARY_PATH",
|
||||
"value": "${workspaceFolder}/bin/"
|
||||
}
|
||||
],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
//"preLaunchTask": "build",
|
||||
//"miDebuggerPath": "/usr/bin/gdb"
|
||||
}
|
||||
]
|
||||
}
|
6
tools/vscode-setup/settings.json
Normal file
6
tools/vscode-setup/settings.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"functional": "cpp",
|
||||
},
|
||||
"editor.formatOnSave": true
|
||||
}
|
26
tools/vscode-setup/tasks.json
Normal file
26
tools/vscode-setup/tasks.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "build",
|
||||
"type": "shell",
|
||||
"command": "scons",
|
||||
"group": "build",
|
||||
"args": [
|
||||
"platform=x11",
|
||||
"custom_modules_shared=yes",
|
||||
"target=release_debug",
|
||||
//"bin/libess.x11.opt.tools.64.so",
|
||||
//"bin/libtexture_packer.x11.opt.tools.64.so",
|
||||
"bin/libvoxelman.x11.opt.tools.64.so",
|
||||
//"bin/libworld_generator.x11.opt.tools.64.so",
|
||||
//"bin/libprocedural_animations.x11.opt.tools.64.so",
|
||||
//"bin/libfqms.x11.opt.tools.64.so",
|
||||
"-j3"
|
||||
],
|
||||
"problemMatcher": "$msCompile"
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue
Block a user