ros-industrial / abb_libegm

A C++ library for interfacing with ABB robot controllers supporting Externally Guided Motion (689-1)
BSD 3-Clause "New" or "Revised" License
96 stars 54 forks source link

Expand the readme #17

Closed jontje closed 5 years ago

jontje commented 6 years ago

Add sections for:

gavanderhoorn commented 6 years ago

May I suggest we use Doxygen and/or Sphinx for that?

The code already contains quite a lot of Doxygen compatible comments, and additional material could be added there as well. Doxygen has quite good support for this.

The ROS buildfarm also automatically generates API documentation based on Doxygen (roscpp example), so that would be a plus.

jontje commented 6 years ago

That sounds reasonable (though I am not sure of how to set that up), thanks for the suggestion!

Also, just to clarify what I intended with the "structure/class descriptions":

This just so that one can get a quick overview, without digging into the details.

gavanderhoorn commented 6 years ago

re: structure/class descriptions: that's exactly what I would put in the Doxygen docs (see the roscpp example I linked earlier).

Those can then be pushed to a gh-pages branch and we'll have them hosted right here on github.

jontje commented 6 years ago

Ok, great :)

jontje commented 6 years ago

Follow-up thought: It would probably not hurt to have the description in both the readme (short version?) and in the API documentation (more detailed version?).

Also, I will probably add some hints on how to build the library on Windows as well.

gavanderhoorn commented 6 years ago

My suggestion would be to avoid duplication as much as possible.

The rendered documentation would be hosted on github (so available on-line for everyone).

Additionally, users can generate it off-line on their own machines (provided they have doxygen installed).

And even without doxygen, the additional overviews/samples are readable, as it's all just plain text.

Also, I will probably add some hints on how to build the library on Windows as well.

If we get #3 fixed, building on Windows should be straightfoward: CMake supports Windows just as well as other platforms.

traversaro commented 6 years ago

Besides https://github.com/ros-industrial/abb_libegm/issues/3, a few additional fixes will be necessary to correctly compiled the library on Windows. One issue for sure is symbol visibility, but that can be easily addressed by setting CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS to TRUE (see https://blog.kitware.com/create-dlls-on-windows-without-declspec-using-new-cmake-export-all-feature/).

If the library is supposed to be distributed in binary form on Windows, some additonal work may be necessary to create a relocatable CMake package (see https://cmake.org/cmake/help/v3.12/manual/cmake-packages.7.html#creating-relocatable-packages), to make sure that the library can be used also if it installed in a location different from the build-time installation destination.

gavanderhoorn commented 5 years ago

@traversaro: tracking potential Windows blockers in #44.

gavanderhoorn commented 5 years ago

@jontje: "expand the readme" is essentially an unreachable goal :) We can always expand it further.

Would it make sense to close this issue and open new ones if/when additional updates/extensions to the readme are needed?

jontje commented 5 years ago

@gavanderhoorn: Yes, I fully agree, I will close this.