edalize icon indicating copy to clipboard operation
edalize copied to clipboard

symbiyosys: honour include paths

Open ollie-etl opened this issue 1 year ago • 1 comments

This PR is on top of #362, because symbiyosys is basically unusable without.

symiyosys tasks are performed within a sub directory of the working directory, and symiyosys copies all working source into that directory. Currently include files are not specified in the [files] section of the file, so are not copied in to that working set.

This PR changes that, and generates entries for the include files. This are of the lesser used form

[files]
working_directory_relative_path/file edalize_build_dir/path/to/file

By using this form, we can honour the include_path property in the include files. so includes with paths in files can be honoured

a.sv

   `include "subdir/path.svh"

a.core

CAPI=2:
name: etl:macros:axis:1.0.0
description: AxiS includes

filesets:
  rtl:
    files:
      - rtl/a.sv
      - rtl/includes/subdir/path.svh : 
          is_include_file: true
          include_path: rtl/includes
    

generates

[files]
subdir/path.svh edalize_working_dir/rtl/includes/subdir/path.svh
edalize_working_dir/rtl/a.sv

The file structure within the symnbiyosys working directory now contains includes at the correct relative locations

ollie-etl avatar Mar 25 '23 13:03 ollie-etl

@Henkru Can i have your thoughts also please?

ollie-etl avatar Mar 25 '23 13:03 ollie-etl