Skip to content

enable kobuki Windows build#87

Open
kejxu wants to merge 1 commit intostonier:release/0.62-melodicfrom
ms-iot:windows_bringup
Open

enable kobuki Windows build#87
kejxu wants to merge 1 commit intostonier:release/0.62-melodicfrom
ms-iot:windows_bringup

Conversation

@kejxu
Copy link
Copy Markdown

@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
Copy Markdown
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