Fine for me to squash and merge, there are only new files, so it should not interfere with backports.
There are some edited files like `forward.h` and `resolve.c` where I added some variables need to compile or some logic handling macro feature definitions for example.
i can probably remove those changes and create a separate PR for fixing since they are not cmake-related