forked from LeenkxTeam/LNXSDK
Update leenkx/blender/lnx/make.py
This commit is contained in:
parent
5572494f3d
commit
e079c94832
@ -784,12 +784,57 @@ def build_success():
|
||||
os.chdir(dest_dir)
|
||||
|
||||
elif state.target in ('linux-hl', 'macos-hl'):
|
||||
log.error(f"Compilation for {state.target} is not yet implemented in build_success.")
|
||||
return
|
||||
else:
|
||||
log.error(f"Running logic for target {state.target} is not defined (expected Krom or Hashlink/C).")
|
||||
return
|
||||
wrd = bpy.data.worlds['Lnx']
|
||||
paths = lnx.utils.hashlink_paths(state.target)
|
||||
hl_build_dir = paths[0]
|
||||
# TO DO switch from default Release
|
||||
build_mode = 'Release'
|
||||
proj_name = lnx.utils.blend_name()
|
||||
exe_path = str(hl_build_dir + "/" + build_mode)
|
||||
if not exe_path:
|
||||
log.error(f"Build finished, but could not find the executable for {state.target}.")
|
||||
return
|
||||
makefile_path = os.path.join(exe_path, 'makefile')
|
||||
if not os.path.isfile(makefile_path):
|
||||
log.error(f"Makefile not found at '{makefile_path}'. Cannot compile C code.")
|
||||
return
|
||||
|
||||
make_cmd = ['make']
|
||||
|
||||
log.info(f"Compiling C code using 'make' in directory '{exe_path}'...")
|
||||
log.info(f"Make command: {' '.join(make_cmd)}")
|
||||
try:
|
||||
result = subprocess.run(make_cmd, cwd=exe_path, check=True, capture_output=True, text=True, encoding='utf-8')
|
||||
log.info("'make' compilation successful.")
|
||||
except subprocess.CalledProcessError as e:
|
||||
log.error(f"'make' compilation failed with return code {e.returncode}.")
|
||||
log.error(f"Make Error Output:\n{e.stderr}")
|
||||
return
|
||||
except FileNotFoundError:
|
||||
log.error("'make' command not found. Ensure 'make' is installed and in your system's PATH.")
|
||||
return
|
||||
except Exception as e:
|
||||
log.error(f"An unexpected error occurred running make: {e}")
|
||||
return
|
||||
|
||||
log.info(f"Found compiled executable: {exe_path}")
|
||||
|
||||
dest_exe_name = lnx.utils.safesrc(wrd.lnx_project_name + '-' + wrd.lnx_project_version)
|
||||
base_build_dir = lnx.utils.get_fp_build()
|
||||
dest_dir = os.path.join(base_build_dir, state.target)
|
||||
og_path = os.path.join(exe_path, dest_exe_name)
|
||||
dest_path = os.path.join(dest_dir, dest_exe_name)
|
||||
os.makedirs(dest_dir, exist_ok=True)
|
||||
|
||||
try:
|
||||
log.info(f"Moving '{og_path}' to '{dest_dir}'...")
|
||||
shutil.move(og_path, dest_dir)
|
||||
cmd = [dest_path]
|
||||
except Exception as e:
|
||||
log.error(f"Failed to move executable: {e}. Attempting to run from original location.")
|
||||
cmd = [exe_path]
|
||||
os.chdir(dest_dir)
|
||||
log.info(f"Hashlink final command: {' '.join(cmd)}")
|
||||
try:
|
||||
state.proc_play = run_proc(cmd, play_done)
|
||||
except Exception:
|
||||
|
Loading…
x
Reference in New Issue
Block a user