CCS 5.3 - Bug in Project Dependency

Hi,

When building a project as a dependency of another project, its currently active configuration is built regardless of the main project's settings.

To reproduce, follow these steps:

  1. Start in a workspace that was freshly created by CCS 5.3. If your workspace was created by a previous CCS version, start in a new workspace.
  2. Create two new empty executable CCS projects, named proj1 and proj2.
  3. I assume you have not changed anything, so both projects are presently set to Debug mode.
  4. In the properties of proj1, Build > Dependencies > Add and select proj2. Set its build configuration to Debug.
  5. Build proj1. It will build proj2 in Debug, then proj1 in Debug. This is the expected behavior.
  6. Set proj2 active configuration to Release mode.
  7. Build proj1. It will build proj2 either in Release mode, or in both modes, when it should have built only Debug.
  8. Switch proj1 to Release mode. Build. It will build proj2 (in proj2's current mode), even though the dependency setting was only applied to proj1's Debug configuration and so it was not supposed to build any additional projects.

I think these problems also manifest when the workspace was inherited from a previous CCS version but they are less visible and harder to replicate, hence the request in step 1 to start with a fresh WS.

Thanks,

-itay

  • Hi Itay,

    I have been unable to reproduce exactly as you described.   I have followed your steps and found that the configuration that gets built is as expected.   However, for me in step 8 proj2 was not built, however I did find following your steps it also did not build project 1 saying "nothing to build" .  So I will look into this and thanks for flagging that.  

    I will get back to you with any feedback as soon as possible but please note the holidays mean there should be some delays in responses.

    Best Regards,
    Lisa

  • In reply to Lisa TI:

    Hi Itay,

    I have been doing more digging myself and do not seem to see a bug.  what triggered the message is simply that I forgot CCS had previously built the release configuration and if no file changes then CCS will not rebuild.  Can you try doing a clean before following your steps to see any difference?

    Best Regards,

    Lisa

  • In reply to Lisa TI:

    Hi Lisa,

    I found out why you couldn't reproduce the bug. The bug does not happen when right clicking on the project and selecting "Build Project", but only when invoking the keyboard shortcut bound to "Build Project". There is no such binding by default, so create one: Window > Preferences > General > Keys, scroll down to Build Project and bind it to some keyboard combination. Now follow the steps in the original message, using your keyboard shortcut whenever it says to build.

    There is one more bug I've found that is also easy to reproduce. For this one it doesn't matter whether you use the keyboard binding or not:

    1. Set both projects to Debug.
    2. Select proj2 and Rebuild Project. The project will rebuild from scratch as expected.
    3. Select proj1 and Build. The expected behavior is that proj2 will say 'Nothing to be done' (as we've just built it!) but it will rebuild it from scratch nonetheless.

    This may seem like a trivial inconvenience but is in fact very problematic when dealing with a large project that takes a long time to build.

    By the way, since I've mentioned keyboard bindings, the "Watch" keyboard command would have been very useful but does nothing. (There are two commands by that name, neither works.)

    Thank you and happy new year,

    -itay

  • In reply to Itay Chamiel:

    Hi Itay,

    I have actually tracked this to a known bug SDSCM00045990.

    You should be able to track this using the following link:

    https://cqweb.ext.ti.com/cqweb/main?command=GenerateMainFrame&service=CQ&schema=SDO-Web&contextid=SDOWP&username=readonly&password=readonly

    Sorry for the inconvenience and all the best with development.

    Best Regards,

    Lisa

  • In reply to Lisa TI:

    Thanks, I will follow that bug. However, please note my last message, I have noted another bug that happens regardless of whether you use the keyboard binding. I also mentioned another keyboard binding that does not work at all (Watch). Please direct your attention to these issues as well.

    Thanks again,

    -itay

  • In reply to Itay Chamiel:

    Hi Itay,

    thanks for all the feedback.  Regarding the no need to build.   This looks like it is because separate folders and hence .out copies are kept for each project and each build configuration.   This is why CCS doesn't know about the .out.   I am looking into watch binding and can file something if/as appropriate.

    Best Regards,

    Lisa