If relative search path is used, header's changes will not cause rebuild of cpp files.
Test project can be found here: https://github.com/amatosov-rbx/llbuild-RelativeHeaderPathIssue It consists of 3 main parts:
- Header only lib sitting in OtherHeaderLib declaring abstract class
- Static library that implements that class
- Console app Console app and static library access header lib using relative path
Attached video shows issue of partial rebuilds. Here is the description of performed steps.
- Open app in xcode and build it
- Make sure it performs as expected
- Swap order of virtual methods in the AbstractClass.h
- Change something in ConcreteClass.cpp to force it's compilation
- Run app again
- Observe that main.cpp is not recompiled even tho it includes AbstractClass.h indirectly.
- Run application and observe that wrong virtual method is called.
All dependent cpp files should rebuild automatically upon header changes
No cpp files are rebuilt automatically and this results in severe issues
Any version of Xcode 10
New build system (llbuild)