serial
serial copied to clipboard
Remove Catkin dependency while keeping CMake's find_package() feature
From a Catkin project, it is straightforward to add a dependency on a "normal" CMake package. However, the opposite is not true.
This PR relates to #123 and #111 , but with the following 2 changes:
- Catkin dependency is fully removed: only CMake is required
- Compatibility with
find_package()
feature is preserved
Here is how a project can depend on this library: https://github.com/dbolkensteyn/serial-lib-consumer I've tested that one both on Linux and Windows - but I do not have an Mac OS X machine available at the moment.
I wanted to keep this PR small, but IMO the following should be done afterwards:
- Remove
Makefile
,visual_studio
as well asserial.sublime-project
: Those files should not be persisted in the SCM, as they are supposed to be generated by CMake - Update the
README.md
instructions - relates to #114 - [Unrelated] Merge
CHANGELOG.rst
withchanges.txt
?
Also, this PR isn't ready to be merged just yet: For instance, I've still have to re-enable the support for testing.
@wjwwood I'm now quite happy with this PR - and the build is passing
Let me know what you think about it - if you're willing to merge this then I'll invest the time to have CMake build the tests again
Looking forward to the next move, I really think it deserve at least a branch without catkin as dependency since there are so many people need this feature, and many of the forks are just doing this particular thing, I really do not think it a good idea for this library to have so many variations just because this problem, it is like a Tower of Babel and finally will do no good to this library since many people, like me, feel not so good to use a forked branch for developments, and chances are that they will try to look for alternatives if they are showing up (but far, no suitable choices 😄 ). And please make it look and feel like PySerial
as the said in the README.
Anyway, changes will take time and will have a lot of backward compatibility works for you guys, before that I will just use this PR and waiting. :)
Regards,
--MiaoDX
As I mentioned in the other two pull requests about this issue, my plan is to use CMake only (much as this pr does) going forward, but I want to leave the current version with catkin. I do not, however, want to just take this pr as-is, because I want to keep the package.xml and use exported targets.
However, I will try to use the commits from this pr if I can to give you some attribution for working on this.