fusesoc icon indicating copy to clipboard operation
fusesoc copied to clipboard

script order with conditional statements

Open BaseHardware opened this issue 8 months ago • 0 comments

The CAPI 2 format supports the conditional inclusion as follows:

    hooks:
      post_build:
        - "target_chip_AA ? (generate_mcs_AA)"
        - "target_chip_BB ? (generate_mcs_BB)"
        - post_build_script

This is a simple example of hooks at the post-build stage of fusesoc. In my sense, the hook MUST be executed in order of specification of each item. (i.e., generate_mcs_AA (if target_chip_AA is defined) -> generate_chip_BB (if target_chip_BB is defined) -> post_build_script) However, I found if there are hook items with the conditional statements, they go to the back of the list. So, if target_chip_AA is defined, fusesoc executes the hook items in this order: post_build_script -> target_chip_AA. This sense is not intuition and must be fixed as the order will be kept.

Currently, I am using the following configuration to keep the order.

    hooks:
      post_build:
        - "target_chip_AA ? (generate_mcs_AA)"
        - "target_chip_BB ? (generate_mcs_BB)"
        - "_ ? (post_build_script)"
        - "!_ ? (post_build_script)"

Please fix this problem at the next patch.

BaseHardware avatar May 28 '24 09:05 BaseHardware