Hotfix - Recompile project on modified bindings
Due to this widespread nature of this issue, this issue is a hot fix to the main branch. Any in-use branches are also encouraged to apply the following changes in their branch:
- Replace Makefile with the updated version
- In order to enact the changes, do the following:
- Run
./go.sh
to apply the new Makefile to the vm. - In your VM terminal, run
cd /home/vagrant/ss/sdk/RCM/StrategyStudio/examples/strategies/PybindStrategy/
- Run
make clean
. Subsequent calls to./go.sh
will apply the compilation changes.
- Run
Description of Issue
After the restructure of the bindings (split up bindings across header files in #36 (closed)), there have been reports of modifications to the binding code that were not being reflected in the code unless PybindStrat.cpp was modified. After further investigation, this was due to the object files not recompiling when the included header files that contained the bindings were modified. This was fixed in #39 (closed) b96124cd, but as that branch is still open, the the issue needed to be hot fixed onto the main branch.
A possible approach to this is to remove *.o files (or run make clean) on each execution in build_strategy.sh, but this forces the compiler to start a new compilation every time, even when there are no changes. However, this increases build time due to removing compiler optimization.
The approach #39 (closed) b96124cd took was to use compiler optimization to build dependency files from the headers, so the object files will be recompiled if the header files are modified.