Exporter Panel - Project Settings
1. Processing data entry into fields: - Name - the field must not be empty. If the user tries to set an empty value, then this field specifies the name of the blend file (this is how it is implemented during assembly). The default is the name of the blend file. - Package - the field must not be empty, it must not consist only of numbers and start with a number. The . symbol is replaced with _. The default is arm. - Bundle - the field must be filled in according to the mask [string].[string]. Each part must not be empty, contain numbers, or start with a number. The default is org.armory3d. Previously, this field was blank, in which case the current default was used. - Version. Input in the Version field is processed and only allows input by masks: - 0.0 - 0.0.0 - 0.0.0.0 In any case, the value is ignored and the previous value remains. If the (Auto-increment Build Number) checkbox is checked and when performing the operation, Build and Publish will be automatically incremented by one after the version value. Examples: it was 1.0 - it is 1.1, it was 1.9 - it is 1.10, it was 1.0.1 - it is 1.0.2, it was 0.1.1.2 - it is 0.1.1.3. Defaults: - Version - 1.0.0 - Auto-increment Build Number - enabled. For all fields, special characters ([] / \ ;,> <& *:% = + @! # ^ () |? ^) Are also replaced with _. 2. Fixed display of Android Settings panel.
This commit is contained in:
parent
da5ed3c5e0
commit
65dd6b701f
|
@ -216,6 +216,10 @@ def export_data(fp, sdk_path):
|
|||
import_logic = not state.is_publish and arm.utils.logic_editor_space() != None
|
||||
write_data.write_khafilejs(state.is_play, export_physics, export_navigation, export_ui, state.is_publish, enable_dce, ArmoryExporter.import_traits, import_logic)
|
||||
|
||||
# Change project version (Build, Publish)
|
||||
if (not state.is_play) and (wrd.arm_project_version_autoinc):
|
||||
wrd.arm_project_version = arm.utils.arm.utils.change_version_project(wrd.arm_project_version)
|
||||
|
||||
# Write Main.hx - depends on write_khafilejs for writing number of assets
|
||||
scene_name = arm.utils.get_project_scene_name()
|
||||
write_data.write_mainhx(scene_name, resx, resy, state.is_play, state.is_publish)
|
||||
|
@ -312,7 +316,6 @@ def compile(assets_only=False):
|
|||
cmd.append('--noproject')
|
||||
state.proc_build = run_proc(cmd, assets_done if compilation_server else build_done)
|
||||
|
||||
|
||||
def build(target, is_play=False, is_publish=False, is_export=False):
|
||||
global profile_time
|
||||
profile_time = time.time()
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import bpy
|
||||
from bpy.props import *
|
||||
import re
|
||||
|
||||
import arm.assets as assets
|
||||
import arm.make
|
||||
|
@ -11,15 +12,66 @@ import arm.utils
|
|||
arm_version = '2020.11'
|
||||
arm_commit = '$Id$'
|
||||
|
||||
def set_project_name(self, value):
|
||||
value = arm.utils.safestr(value)
|
||||
if len(value) > 0:
|
||||
self['arm_project_name'] = value
|
||||
else:
|
||||
self['arm_project_name'] = arm.utils.blend_name()
|
||||
|
||||
def get_project_name(self):
|
||||
return self.get('arm_project_name', arm.utils.blend_name())
|
||||
|
||||
def set_project_package(self, value):
|
||||
value = arm.utils.safestr(value).replace('.', '_')
|
||||
if (len(value) > 0) and (not value.isdigit()) and (not value[0].isdigit()):
|
||||
self['arm_project_package'] = value
|
||||
|
||||
def get_project_package(self):
|
||||
return self.get('arm_project_package', 'arm')
|
||||
|
||||
def set_version(self, value):
|
||||
value = value.strip().replace(' ', '')
|
||||
if re.match(r'^\d+(\.\d+){1,3}$', value) is not None:
|
||||
check = True
|
||||
v_i = value.split('.')
|
||||
for item in v_i:
|
||||
try:
|
||||
i = int(item)
|
||||
except ValueError:
|
||||
check = False
|
||||
break
|
||||
if check:
|
||||
self['arm_project_version'] = value
|
||||
|
||||
def get_version(self):
|
||||
return self.get('arm_project_version', '1.0.0')
|
||||
|
||||
def set_project_bundle(self, value):
|
||||
value = arm.utils.safestr(value)
|
||||
v_a = value.strip().split('.')
|
||||
if (len(value) > 0) and (not value.isdigit()) and (not value[0].isdigit()) and (len(v_a) > 1):
|
||||
check = True
|
||||
for item in v_a:
|
||||
if (item.isdigit()) or (item[0].isdigit()):
|
||||
check = False
|
||||
break
|
||||
if check:
|
||||
self['arm_project_bundle'] = value
|
||||
|
||||
def get_project_bundle(self):
|
||||
return self.get('arm_project_bundle', 'org.armory3d')
|
||||
|
||||
def init_properties():
|
||||
global arm_version
|
||||
bpy.types.World.arm_recompile = BoolProperty(name="Recompile", description="Recompile sources on next play", default=True)
|
||||
bpy.types.World.arm_version = StringProperty(name="Version", description="Armory SDK version", default="")
|
||||
bpy.types.World.arm_commit = StringProperty(name="Version Commit", description="Armory SDK version", default="")
|
||||
bpy.types.World.arm_project_name = StringProperty(name="Name", description="Exported project name", default="", update=assets.invalidate_compiler_cache)
|
||||
bpy.types.World.arm_project_package = StringProperty(name="Package", description="Package name for scripts", default="arm", update=assets.invalidate_compiler_cache)
|
||||
bpy.types.World.arm_project_version = StringProperty(name="Version", description="Exported project version", default="1.0", update=assets.invalidate_compiler_cache)
|
||||
bpy.types.World.arm_project_bundle = StringProperty(name="Bundle", description="Exported project bundle", default="", update=assets.invalidate_compiler_cache)
|
||||
bpy.types.World.arm_project_name = StringProperty(name="Name", description="Exported project name", default="", update=assets.invalidate_compiler_cache, set=set_project_name, get=get_project_name)
|
||||
bpy.types.World.arm_project_package = StringProperty(name="Package", description="Package name for scripts", default="arm", update=assets.invalidate_compiler_cache, set=set_project_package, get=get_project_package)
|
||||
bpy.types.World.arm_project_version = StringProperty(name="Version", description="Exported project version", default="1.0.0", update=assets.invalidate_compiler_cache, set=set_version, get=get_version)
|
||||
bpy.types.World.arm_project_version_autoinc = BoolProperty(name="Auto-increment Build Number", description="Auto-increment build number", default=True, update=assets.invalidate_compiler_cache)
|
||||
bpy.types.World.arm_project_bundle = StringProperty(name="Bundle", description="Exported project bundle", default="org.armory3d", update=assets.invalidate_compiler_cache, set=set_project_bundle, get=get_project_bundle)
|
||||
bpy.types.World.arm_project_android_sdk_compile = IntProperty(name="Compile Version SDK", description="Compile Android SDK Version", default=29, min=26, max=30, update=assets.invalidate_compiler_cache)
|
||||
bpy.types.World.arm_project_android_sdk_min = IntProperty(name="Minimal Version SDK", description="Minimal Version Android SDK", default=14, min=14, max=30, update=assets.invalidate_compiler_cache)
|
||||
bpy.types.World.arm_project_android_sdk_target = IntProperty(name="Target Version SDK", description="Target Version Android SDK", default=29, min=26, max=30, update=assets.invalidate_compiler_cache)
|
||||
|
|
|
@ -411,6 +411,7 @@ class ARM_PT_ArmoryExporterPanel(bpy.types.Panel):
|
|||
col.prop(wrd, 'arm_project_package')
|
||||
col.prop(wrd, 'arm_project_bundle')
|
||||
col.prop(wrd, 'arm_project_version')
|
||||
col.prop(wrd, 'arm_project_version_autoinc')
|
||||
col.prop(wrd, 'arm_project_icon')
|
||||
col.prop(wrd, 'arm_dce')
|
||||
col.prop(wrd, 'arm_compiler_inline')
|
||||
|
@ -430,8 +431,11 @@ class ARM_PT_ArmoryExporterAndroidSettingsPanel(bpy.types.Panel):
|
|||
@classmethod
|
||||
def poll(cls, context):
|
||||
wrd = bpy.data.worlds['Arm']
|
||||
item = wrd.arm_exporterlist[wrd.arm_exporterlist_index]
|
||||
return item.arm_project_target == 'android-hl'
|
||||
if len(wrd.arm_exporterlist) > 0:
|
||||
item = wrd.arm_exporterlist[wrd.arm_exporterlist_index]
|
||||
return item.arm_project_target == 'android-hl'
|
||||
else:
|
||||
return False
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
|
|
@ -947,6 +947,17 @@ def type_name_to_type(name: str) -> bpy.types.bpy_struct:
|
|||
"""Return the Blender type given by its name, if registered."""
|
||||
return bpy.types.bpy_struct.bl_rna_get_subclass_py(name)
|
||||
|
||||
def change_version_project(version: str) -> str:
|
||||
ver = version.strip().replace(' ', '').split('.')
|
||||
v_i = int(ver[len(ver) - 1]) + 1
|
||||
ver[len(ver) - 1] = str(v_i)
|
||||
version = ''
|
||||
for i in ver:
|
||||
if len(version) > 0:
|
||||
version += '.'
|
||||
version += i
|
||||
return version
|
||||
|
||||
def register(local_sdk=False):
|
||||
global use_local_sdk
|
||||
use_local_sdk = local_sdk
|
||||
|
|
Loading…
Reference in a new issue