Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enable kobuki Windows build #87

Open
wants to merge 1 commit into
base: release/0.62-melodic
Choose a base branch
from

Conversation

kejxu
Copy link

@kejxu kejxu commented Jul 30, 2019

update ecl_core to enable the kobuki code base to build on Windows. changes in this pr:

  • move windows.h from header files to .cpp files to prevent macro pollution (ROS msgs tend to collide with macros defined in windows.h, ERROR, etc.)
  • update ecl_mutex to use STL's module
  • update ecl_threads to use STL's module so that any function signature could be used for thread startup routine (otherwise, only functions declared as __stdcall could be used; function pointers should not be explicitly casted since they contain calling convention)
  • correct dll visibility macro, for templated code that only exists in header files, they should not have the dllimport macro
  • move variable initialization from numeric_limits.cpp to header file. this is a bit complicated but the reason behind this is because dllimport should not be added to a class derived from a STL class. In order to achieve that, definitions in .cpp need to be moved into .h. With constexpr added in c++11, this is now feasible

this port points to the melodic release branch because it currently only targets ROS1.melodic

* windows bringup
* local update
* remove windows.h dependency
* revert unnecessary change
* remove unnecessary change
* complete TimeStamp::stamp implementation on Windows
* revert code cleanup changes
* revert code cleanup
* revert code cleanup
* remove data type collision
* update ecl::Thread to use std::thread
* remove unused stack_size argument
* remove code cleanup
* remove c++14-only make_unique
* remove commented out code
* fix brace style mismatch
* use same type for inheritence
* make numeric_limits header-only
* add back lib subfolder for proper linking
* complete detect_sizes
@kejxu
Copy link
Author

kejxu commented Jul 30, 2019

@stonier Thanks for being responsive! I have created https://github.com/ms-iot/ROSOnWindows/projects/20?add_cards_query=is%3Aopen to track all the changes related to the current porting work for kobuki (enable build and execution for the kobuki stack). For this reason, only packages listed as dependency of kobuki have been built (catkin_make_isolated --install --only-pkg-with-deps kobuki)

Windows build is verified in this cloud build: https://dev.azure.com/kejxu/ROS%20on%20Windows/_build/results?buildId=138&view=results

Ubuntu build was verified manually on a 18.04 vm (Azure Devops does not have hosted 1804 vms yet)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant