Remove gen from emitted files to solve circular dependency with build_library=no.

Use env variable to pass the output dir instead.
Add a CI step to guard regression on this. Clean the generated sources to avoid interfering with next steps.
pull/903/head
Emilien Bauer 2022-10-31 10:24:24 +01:00
parent a9c341656d
commit e52d4b6486
2 changed files with 9 additions and 3 deletions

View File

@ -105,6 +105,11 @@ jobs:
if: ${{ matrix.platform == 'windows' && matrix.flags == 'use_mingw=yes' }} if: ${{ matrix.platform == 'windows' && matrix.flags == 'use_mingw=yes' }}
uses: egor-tensin/setup-mingw@v2 uses: egor-tensin/setup-mingw@v2
- name: Generate godot-cpp sources only
run: |
scons platform=${{ matrix.platform }} build_library=no ${{ matrix.flags }}
scons -c
- name: Build godot-cpp (debug) - name: Build godot-cpp (debug)
run: | run: |
scons platform=${{ matrix.platform }} target=template_debug ${{ matrix.flags }} scons platform=${{ matrix.platform }} target=template_debug ${{ matrix.flags }}

View File

@ -141,8 +141,9 @@ def print_file_list(api_filepath, output_dir, headers=False, sources=False):
def scons_emit_files(target, source, env): def scons_emit_files(target, source, env):
files = [env.File(f) for f in get_file_list(str(source[0]), target[0].abspath, True, True)] files = [env.File(f) for f in get_file_list(str(source[0]), target[0].abspath, True, True)]
env.Clean(files, target) env.Clean(target, files)
return [target[0]] + files, source env["godot_cpp_gen_dir"] = target[0].abspath
return files, source
def scons_generate_bindings(target, source, env): def scons_generate_bindings(target, source, env):
@ -151,7 +152,7 @@ def scons_generate_bindings(target, source, env):
env["generate_template_get_node"], env["generate_template_get_node"],
"32" if "32" in env["arch"] else "64", "32" if "32" in env["arch"] else "64",
"double" if (env["float"] == "64") else "float", "double" if (env["float"] == "64") else "float",
target[0].abspath, env["godot_cpp_gen_dir"],
) )
return None return None