feat: add several QOL features v1.1
All checks were successful
Deploy Tools / build-package (push) Successful in 27s
All checks were successful
Deploy Tools / build-package (push) Successful in 27s
This commit is contained in:
parent
0fff761253
commit
72bad7de00
@ -37,9 +37,10 @@ Documentation can be found [here](https://github.com/PilotLightTech/pilotlight/w
|
|||||||
|
|
||||||
### Real World
|
### Real World
|
||||||
Complete & more advanced examples can be found here:
|
Complete & more advanced examples can be found here:
|
||||||
* [gen_core.py](https://github.com/PilotLightTech/pilotlight/blob/master/scripts/gen_core.py)
|
* [gen_dev.py](https://github.com/PilotLightTech/pilotlight/blob/master/scripts/gen_dev.py)
|
||||||
* [gen_examples.py](https://github.com/PilotLightTech/pilotlight/blob/master/scripts/gen_examples.py)
|
* [gen_examples.py](https://github.com/PilotLightTech/pilotlight/blob/master/scripts/gen_examples.py)
|
||||||
* [gen_tests.py](https://github.com/PilotLightTech/pilotlight/blob/master/scripts/gen_tests.py)
|
* [gen_tests.py](https://github.com/PilotLightTech/pilotlight/blob/master/scripts/gen_tests.py)
|
||||||
|
* [gen_distribute.py](https://github.com/PilotLightTech/pilotlight/blob/master/scripts/gen_distribute.py)
|
||||||
|
|
||||||
### Basic Example
|
### Basic Example
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ def generate_build(name, user_options = None):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
# find hot reload target
|
# find hot reload target
|
||||||
if data.reload_target_name is not None:
|
if len(data.reload_target_names) > 0:
|
||||||
hot_reload = True
|
hot_reload = True
|
||||||
|
|
||||||
helper.add_title("configuration | " + register_config)
|
helper.add_title("configuration | " + register_config)
|
||||||
@ -186,7 +186,12 @@ def generate_build(name, user_options = None):
|
|||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
helper.add_comment("# let user know if hot reloading")
|
helper.add_comment("# let user know if hot reloading")
|
||||||
helper.add_line('if pidof -x "' + PurePath(data.reload_target_name).stem + '" -o $$ >/dev/null;then')
|
for reload_target in data.reload_target_names:
|
||||||
|
|
||||||
|
if reload_target == data.reload_target_names[0]:
|
||||||
|
helper.add_line('if pidof -x "' + PurePath(reload_target).stem + '" -o $$ >/dev/null;then')
|
||||||
|
else:
|
||||||
|
helper.add_line('elif pidof -x "' + PurePath(reload_target).stem + '" -o $$ >/dev/null;then')
|
||||||
helper.set_indent(4)
|
helper.set_indent(4)
|
||||||
helper.add_line('PL_HOT_RELOAD_STATUS=1')
|
helper.add_line('PL_HOT_RELOAD_STATUS=1')
|
||||||
helper.print_space()
|
helper.print_space()
|
||||||
@ -200,7 +205,7 @@ def generate_build(name, user_options = None):
|
|||||||
|
|
||||||
# delete old binaries & files
|
# delete old binaries & files
|
||||||
for settings in config_only_settings:
|
for settings in config_only_settings:
|
||||||
if settings.source_files:
|
if settings.source_files and settings.always_build:
|
||||||
if settings.name == compiler:
|
if settings.name == compiler:
|
||||||
if settings.target_type == pl.TargetType.DYNAMIC_LIBRARY:
|
if settings.target_type == pl.TargetType.DYNAMIC_LIBRARY:
|
||||||
helper.delete_file(settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension)
|
helper.delete_file(settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension)
|
||||||
@ -226,6 +231,12 @@ def generate_build(name, user_options = None):
|
|||||||
helper.add_line('if [ $PL_HOT_RELOAD_STATUS -ne 1 ]; then')
|
helper.add_line('if [ $PL_HOT_RELOAD_STATUS -ne 1 ]; then')
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
|
if not settings.always_build:
|
||||||
|
helper.add_comment('only build once')
|
||||||
|
file_name = settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension
|
||||||
|
helper.add_line('if [ ! -f "' + file_name + '" ]; then')
|
||||||
|
helper.add_spacing()
|
||||||
|
|
||||||
if settings.pre_build_step is not None:
|
if settings.pre_build_step is not None:
|
||||||
helper.add_line(settings.pre_build_step)
|
helper.add_line(settings.pre_build_step)
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
@ -296,7 +307,7 @@ def generate_build(name, user_options = None):
|
|||||||
helper.print_line('${YELLOW}Step: ' + settings.target_name +'${NC}')
|
helper.print_line('${YELLOW}Step: ' + settings.target_name +'${NC}')
|
||||||
helper.print_line('${YELLOW}~~~~~~~~~~~~~~~~~~~${NC}')
|
helper.print_line('${YELLOW}~~~~~~~~~~~~~~~~~~~${NC}')
|
||||||
helper.print_line('${CYAN}Compiling and Linking...${NC}')
|
helper.print_line('${CYAN}Compiling and Linking...${NC}')
|
||||||
helper.add_line('gcc -shared $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_LINKER_FLAGS $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
|
helper.add_line('gcc -shared $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES $PL_LINKER_FLAGS -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
elif settings.target_type == pl.TargetType.EXECUTABLE:
|
elif settings.target_type == pl.TargetType.EXECUTABLE:
|
||||||
@ -311,7 +322,7 @@ def generate_build(name, user_options = None):
|
|||||||
helper.print_line('${YELLOW}Step: ' + settings.target_name +'${NC}')
|
helper.print_line('${YELLOW}Step: ' + settings.target_name +'${NC}')
|
||||||
helper.print_line('${YELLOW}~~~~~~~~~~~~~~~~~~~${NC}')
|
helper.print_line('${YELLOW}~~~~~~~~~~~~~~~~~~~${NC}')
|
||||||
helper.print_line('${CYAN}Compiling and Linking...${NC}')
|
helper.print_line('${CYAN}Compiling and Linking...${NC}')
|
||||||
helper.add_line('gcc $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_LINKER_FLAGS $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
|
helper.add_line('gcc $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES $PL_LINKER_FLAGS -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
# check build status
|
# check build status
|
||||||
@ -332,6 +343,10 @@ def generate_build(name, user_options = None):
|
|||||||
helper.add_line(settings.post_build_step)
|
helper.add_line(settings.post_build_step)
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
|
if not settings.always_build:
|
||||||
|
helper.add_comment('only build once check')
|
||||||
|
helper.add_line('fi')
|
||||||
|
|
||||||
if not settings.reloadable and hot_reload:
|
if not settings.reloadable and hot_reload:
|
||||||
helper.add_comment("hot reload skip")
|
helper.add_comment("hot reload skip")
|
||||||
helper.add_line("fi")
|
helper.add_line("fi")
|
||||||
|
@ -155,7 +155,7 @@ def generate_build(name, user_options = None):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
# check if hot reload
|
# check if hot reload
|
||||||
if data.reload_target_name is not None:
|
if len(data.reload_target_names) > 0:
|
||||||
hot_reload = True
|
hot_reload = True
|
||||||
|
|
||||||
helper.add_title("configuration | " + register_config)
|
helper.add_title("configuration | " + register_config)
|
||||||
@ -188,8 +188,13 @@ def generate_build(name, user_options = None):
|
|||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
helper.add_comment("# let user know if hot reloading")
|
helper.add_comment("# let user know if hot reloading")
|
||||||
helper.add_line('running_count=$(ps aux | grep -v grep | grep -ci "' + PurePath(data.reload_target_name).stem + '")')
|
for reload_target in data.reload_target_names:
|
||||||
|
helper.add_comment("# let user know if hot reloading")
|
||||||
|
helper.add_line('running_count=$(ps aux | grep -v grep | grep -ci "' + PurePath(reload_target).stem + '")')
|
||||||
|
if reload_target == data.reload_target_names[0]:
|
||||||
helper.add_line('if [ $running_count -gt 0 ]')
|
helper.add_line('if [ $running_count -gt 0 ]')
|
||||||
|
else:
|
||||||
|
helper.add_line('elif [ $running_count -gt 0 ]')
|
||||||
helper.add_line('then')
|
helper.add_line('then')
|
||||||
helper.set_indent(4)
|
helper.set_indent(4)
|
||||||
helper.add_line('PL_HOT_RELOAD_STATUS=1')
|
helper.add_line('PL_HOT_RELOAD_STATUS=1')
|
||||||
@ -200,11 +205,11 @@ def generate_build(name, user_options = None):
|
|||||||
helper.add_line('else')
|
helper.add_line('else')
|
||||||
helper.set_indent(4)
|
helper.set_indent(4)
|
||||||
helper.add_comment('cleanup binaries if not hot reloading')
|
helper.add_comment('cleanup binaries if not hot reloading')
|
||||||
helper.add_line('PL_HOT_RELOAD_STATUS=0')
|
helper.add_line('PL_HOT_RELOAD_STATUS=$PL_HOT_RELOAD_STATUS')
|
||||||
|
|
||||||
# delete old binaries & files
|
# delete old binaries & files
|
||||||
for settings in config_only_settings:
|
for settings in config_only_settings:
|
||||||
if settings.source_files:
|
if settings.source_files and settings.always_build:
|
||||||
if settings.name == compiler:
|
if settings.name == compiler:
|
||||||
if settings.target_type == pl.TargetType.DYNAMIC_LIBRARY:
|
if settings.target_type == pl.TargetType.DYNAMIC_LIBRARY:
|
||||||
helper.delete_file(settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension)
|
helper.delete_file(settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension)
|
||||||
@ -229,6 +234,12 @@ def generate_build(name, user_options = None):
|
|||||||
helper.add_line('if [ $PL_HOT_RELOAD_STATUS -ne 1 ]; then')
|
helper.add_line('if [ $PL_HOT_RELOAD_STATUS -ne 1 ]; then')
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
|
if not settings.always_build:
|
||||||
|
helper.add_comment('only build once')
|
||||||
|
file_name = settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension
|
||||||
|
helper.add_line('if [ ! -f "' + file_name + '" ]; then')
|
||||||
|
helper.add_spacing()
|
||||||
|
|
||||||
if settings.pre_build_step is not None:
|
if settings.pre_build_step is not None:
|
||||||
helper.add_line(settings.pre_build_step)
|
helper.add_line(settings.pre_build_step)
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
@ -312,7 +323,7 @@ def generate_build(name, user_options = None):
|
|||||||
helper.print_line('${YELLOW}Step: ' + settings.target_name +'${NC}')
|
helper.print_line('${YELLOW}Step: ' + settings.target_name +'${NC}')
|
||||||
helper.print_line('${YELLOW}~~~~~~~~~~~~~~~~~~~${NC}')
|
helper.print_line('${YELLOW}~~~~~~~~~~~~~~~~~~~${NC}')
|
||||||
helper.print_line('${CYAN}Compiling and Linking...${NC}')
|
helper.print_line('${CYAN}Compiling and Linking...${NC}')
|
||||||
helper.add_line('clang -shared $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_LINKER_FLAGS $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES $PL_LINK_FRAMEWORKS -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
|
helper.add_line('clang -shared $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES $PL_LINK_FRAMEWORKS $PL_LINKER_FLAGS -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
elif settings.target_type == pl.TargetType.EXECUTABLE:
|
elif settings.target_type == pl.TargetType.EXECUTABLE:
|
||||||
@ -321,7 +332,7 @@ def generate_build(name, user_options = None):
|
|||||||
helper.print_line('${YELLOW}Step: ' + settings.target_name +'${NC}')
|
helper.print_line('${YELLOW}Step: ' + settings.target_name +'${NC}')
|
||||||
helper.print_line('${YELLOW}~~~~~~~~~~~~~~~~~~~${NC}')
|
helper.print_line('${YELLOW}~~~~~~~~~~~~~~~~~~~${NC}')
|
||||||
helper.print_line('${CYAN}Compiling and Linking...${NC}')
|
helper.print_line('${CYAN}Compiling and Linking...${NC}')
|
||||||
helper.add_line('clang $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_LINKER_FLAGS $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
|
helper.add_line('clang $PL_SOURCES $PL_INCLUDE_DIRECTORIES $PL_DEFINES $PL_COMPILER_FLAGS $PL_INCLUDE_DIRECTORIES $PL_LINK_DIRECTORIES $PL_STATIC_LINK_LIBRARIES $PL_DYNAMIC_LINK_LIBRARIES $PL_LINKER_FLAGS -o "./' + settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension +'"')
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
# check build status
|
# check build status
|
||||||
@ -342,6 +353,10 @@ def generate_build(name, user_options = None):
|
|||||||
helper.add_line(settings.post_build_step)
|
helper.add_line(settings.post_build_step)
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
|
if not settings.always_build:
|
||||||
|
helper.add_comment('only build once check')
|
||||||
|
helper.add_line('fi')
|
||||||
|
|
||||||
if not settings.reloadable and hot_reload:
|
if not settings.reloadable and hot_reload:
|
||||||
helper.add_comment("hot reload skip")
|
helper.add_comment("hot reload skip")
|
||||||
helper.add_line("fi")
|
helper.add_line("fi")
|
||||||
|
@ -147,8 +147,6 @@ def generate_build(name, user_options = None):
|
|||||||
# helper.add_line(_context.pre_build_step)
|
# helper.add_line(_context.pre_build_step)
|
||||||
# helper.add_spacing()
|
# helper.add_spacing()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for register_config in data.registered_configurations:
|
for register_config in data.registered_configurations:
|
||||||
|
|
||||||
# filter this config only settings
|
# filter this config only settings
|
||||||
@ -161,7 +159,7 @@ def generate_build(name, user_options = None):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
# find hot reload target
|
# find hot reload target
|
||||||
if data.reload_target_name is not None:
|
if len(data.reload_target_names) > 0:
|
||||||
hot_reload = True
|
hot_reload = True
|
||||||
|
|
||||||
helper.add_title("configuration | " + register_config)
|
helper.add_title("configuration | " + register_config)
|
||||||
@ -193,9 +191,10 @@ def generate_build(name, user_options = None):
|
|||||||
helper.add_line("@set PL_HOT_RELOAD_STATUS=0")
|
helper.add_line("@set PL_HOT_RELOAD_STATUS=0")
|
||||||
|
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
helper.add_comment("hack to see if " + data.reload_target_name + " exe is running")
|
helper.add_comment("hack to see if hot reload target exes are running")
|
||||||
helper.add_line("@echo off")
|
helper.add_line("@echo off")
|
||||||
helper.add_line('2>nul (>>"' + data.reload_target_name + '.exe" echo off) && (@set PL_HOT_RELOAD_STATUS=0) || (@set PL_HOT_RELOAD_STATUS=1)')
|
for reload_target in data.reload_target_names:
|
||||||
|
helper.add_line('2>nul (>>"' + reload_target + '.exe" echo off) && (@set PL_HOT_RELOAD_STATUS=%PL_HOT_RELOAD_STATUS%) || (@set PL_HOT_RELOAD_STATUS=1)')
|
||||||
|
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
helper.add_comment("let user know if hot reloading")
|
helper.add_comment("let user know if hot reloading")
|
||||||
@ -212,7 +211,7 @@ def generate_build(name, user_options = None):
|
|||||||
|
|
||||||
# delete old binaries & files
|
# delete old binaries & files
|
||||||
for settings in config_only_settings:
|
for settings in config_only_settings:
|
||||||
if settings.source_files:
|
if settings.source_files and settings.always_build:
|
||||||
helper.delete_file(settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension)
|
helper.delete_file(settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension)
|
||||||
if settings.target_type == pl.TargetType.DYNAMIC_LIBRARY:
|
if settings.target_type == pl.TargetType.DYNAMIC_LIBRARY:
|
||||||
helper.delete_file(settings.output_directory + '/' + settings.output_binary + '_*' + settings.output_binary_extension)
|
helper.delete_file(settings.output_directory + '/' + settings.output_binary + '_*' + settings.output_binary_extension)
|
||||||
@ -236,6 +235,12 @@ def generate_build(name, user_options = None):
|
|||||||
helper.add_line('@if %PL_HOT_RELOAD_STATUS% equ 1 goto ' + "Exit_" + settings.target_name)
|
helper.add_line('@if %PL_HOT_RELOAD_STATUS% equ 1 goto ' + "Exit_" + settings.target_name)
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
|
if not settings.always_build:
|
||||||
|
p = pathlib.PureWindowsPath(settings.output_directory + '/' + settings.output_binary + settings.output_binary_extension)
|
||||||
|
helper.add_comment("only build once")
|
||||||
|
helper.add_line('@if exist "' + str(p) + '" goto Exit_' + settings.target_name)
|
||||||
|
helper.add_spacing()
|
||||||
|
|
||||||
if settings.pre_build_step is not None:
|
if settings.pre_build_step is not None:
|
||||||
helper.add_line(settings.pre_build_step)
|
helper.add_line(settings.pre_build_step)
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
@ -427,6 +432,9 @@ def generate_build(name, user_options = None):
|
|||||||
helper.add_label("Exit_" + settings.target_name)
|
helper.add_label("Exit_" + settings.target_name)
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
|
|
||||||
|
helper.add_line('@del "' + str(pathlib.PureWindowsPath(settings.output_directory + '/*.obj')) + '" > nul 2> nul')
|
||||||
|
helper.add_spacing()
|
||||||
|
|
||||||
helper.add_line(':Cleanup' + register_config)
|
helper.add_line(':Cleanup' + register_config)
|
||||||
helper.add_spacing()
|
helper.add_spacing()
|
||||||
helper.print_line('[1m[36mCleaning...[0m')
|
helper.print_line('[1m[36mCleaning...[0m')
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
# [SECTION] version
|
# [SECTION] version
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
|
|
||||||
__version__ = "1.0.12"
|
__version__ = "1.1.0"
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# [SECTION] imports
|
# [SECTION] imports
|
||||||
@ -69,6 +69,7 @@ class CompilerSettings:
|
|||||||
self.target_type = None
|
self.target_type = None
|
||||||
self.lock_file = None
|
self.lock_file = None
|
||||||
self.reloadable = None
|
self.reloadable = None
|
||||||
|
self.always_build = None
|
||||||
|
|
||||||
class ScriptData:
|
class ScriptData:
|
||||||
|
|
||||||
@ -76,7 +77,7 @@ class ScriptData:
|
|||||||
self.version = __version__
|
self.version = __version__
|
||||||
self.current_settings = []
|
self.current_settings = []
|
||||||
self.project_name = None
|
self.project_name = None
|
||||||
self.reload_target_name = None
|
self.reload_target_names = []
|
||||||
self.registered_configurations = []
|
self.registered_configurations = []
|
||||||
|
|
||||||
class BuildContext:
|
class BuildContext:
|
||||||
@ -87,12 +88,14 @@ class BuildContext:
|
|||||||
|
|
||||||
# current profiles
|
# current profiles
|
||||||
self._profiles = []
|
self._profiles = []
|
||||||
|
self._stashed_profiles = []
|
||||||
|
|
||||||
# current target information
|
# current target information
|
||||||
self._target_name = None
|
self._target_name = None
|
||||||
self._target_type = None
|
self._target_type = None
|
||||||
self._target_lock_file = None
|
self._target_lock_file = None
|
||||||
self._target_reloadable = False
|
self._target_reloadable = False
|
||||||
|
self._target_always_build = True
|
||||||
|
|
||||||
# current platform
|
# current platform
|
||||||
self._platform_name = None
|
self._platform_name = None
|
||||||
@ -274,18 +277,20 @@ def project(name: str):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
@contextmanager
|
@contextmanager
|
||||||
def target(name: str, target_type: TargetType = TargetType.EXECUTABLE, reloadable: bool = False):
|
def target(name: str, target_type: TargetType = TargetType.EXECUTABLE, reloadable: bool = False, always_build: bool = True):
|
||||||
try:
|
try:
|
||||||
_context._target_name = name
|
_context._target_name = name
|
||||||
_context._target_type = target_type
|
_context._target_type = target_type
|
||||||
_context._target_lock_file = "lock.tmp"
|
_context._target_lock_file = "lock.tmp"
|
||||||
_context._target_reloadable = reloadable
|
_context._target_reloadable = reloadable
|
||||||
|
_context._target_always_build = always_build
|
||||||
yield None
|
yield None
|
||||||
finally:
|
finally:
|
||||||
_context._target_name = None
|
_context._target_name = None
|
||||||
_context._target_type = None
|
_context._target_type = None
|
||||||
_context._target_lock_file = None
|
_context._target_lock_file = None
|
||||||
_context._target_reloadable = False
|
_context._target_reloadable = False
|
||||||
|
_context._target_always_build = True
|
||||||
_context._target_output_directory = None
|
_context._target_output_directory = None
|
||||||
_context._target_output_binary = None
|
_context._target_output_binary = None
|
||||||
_context._target_definitions = []
|
_context._target_definitions = []
|
||||||
@ -359,6 +364,7 @@ def compiler(name: str):
|
|||||||
compiler.target_type = _context._target_type
|
compiler.target_type = _context._target_type
|
||||||
compiler.lock_file = _context._target_lock_file
|
compiler.lock_file = _context._target_lock_file
|
||||||
compiler.reloadable = _context._target_reloadable
|
compiler.reloadable = _context._target_reloadable
|
||||||
|
compiler.always_build = _context._target_always_build
|
||||||
|
|
||||||
# inherited from various scopes
|
# inherited from various scopes
|
||||||
if _context._platform_output_directory is not None:
|
if _context._platform_output_directory is not None:
|
||||||
@ -415,8 +421,19 @@ def compiler(name: str):
|
|||||||
# [SECTION] public api
|
# [SECTION] public api
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
def stash_profiles():
|
||||||
|
_context._stashed_profiles = _context._profiles
|
||||||
|
_context._profiles = []
|
||||||
|
|
||||||
|
def apply_profiles():
|
||||||
|
_context._profiles = _context._stashed_profiles
|
||||||
|
_context._stashed_profiles = []
|
||||||
|
|
||||||
def set_hot_reload_target(target_name: str):
|
def set_hot_reload_target(target_name: str):
|
||||||
_context._script_data.reload_target_name = target_name
|
_context._script_data.reload_target_names = [target_name]
|
||||||
|
|
||||||
|
def add_hot_reload_target(target_name: str):
|
||||||
|
_context._script_data.reload_target_names.append(target_name)
|
||||||
|
|
||||||
def add_source_files(*args):
|
def add_source_files(*args):
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user