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

Add boost as vcpkg dependency #7

Closed
Nicogene opened this issue Mar 9, 2020 · 11 comments · Fixed by #14
Closed

Add boost as vcpkg dependency #7

Nicogene opened this issue Mar 9, 2020 · 11 comments · Fixed by #14
Assignees

Comments

@Nicogene
Copy link
Member

Nicogene commented Mar 9, 2020

It is possible to add boost as vcpkg dependency?

The project where it is needed is https://github.com/robotology/blocktest.

@traversaro
Copy link
Member

traversaro commented Mar 9, 2020

Which ports in particular? Given that the users can install their own ports after unzip the binary archive provided here or the vcpkg installation under C:\robotoogy\vcpkg installed by https://github.com/robotology/robotology-superbuild/releases/tag/v2020.02, ideally we should limit the port pre-installed just to the one actually used. By giving a short glance to the headers (https://github.com/robotology/blocktest/search?p=2&q=boost&type=) it seems that may be necessary:

  • boost-asio
  • boost-dll
  • boost-bind
  • boost-smart-ptr
  • boost-filesystem
  • boost-process

However, in the meanwhile for CI I suggest you to use the existing binary archive (as done in https://github.com/robotology/robotology-superbuild/blob/master/.github/workflows/ci.yml#L96) so that you don't need to compile heavy ports such as qt5-base and qt5-declerative and then add the additional ports that you need by simply running:

C:/robotology/vcpkg/vcpkg.exe --triplet x64-windows --install boost-asio boost-dll boost-bind boost-smart-ptr boost-filesystem boost-process 

By the way, for smart ptr there is any reason why the boost data structures instead of the equivalent one supported in standard C++ since C++11?

cc @pattacini @vtikha

@pattacini
Copy link
Member

pattacini commented Mar 9, 2020

blocktest is not delivered through our distro - yet at least - so I'd say that @traversaro 's suggestion to add up vcpkg ports after one has installed the distro could be a viable solution, as of now.

This is subject to change when/if blocktest will be shipped along with our distros, of course.

@Nicogene
Copy link
Member Author

Nicogene commented Mar 10, 2020

Which ports in particular?

I think that boost-filesystem, boost-system should be enough, if it exists also boost-process.
I mean about my request, I don't know in general.
Asio also will be useful for diagnostics, but it will run only on linux I suppose

By the way, for smart ptr there is any reason why the boost data structures instead of the equivalent one supported in standard C++ since C++11?

We should use the standard one, this component should be not necessary thou.

@traversaro
Copy link
Member

Which ports in particular?

I think that boost-filesystem, boost-system should be enough, if it exists also boost-process.
I mean about my request, I don't know in general.
Asio also will be useful for diagnostics, but it will run only on linux I suppose

Sorry, I was not clear. If you follow the link https://github.com/robotology/blocktest/search?p=2&q=boost&type= by inspecting the source code is seems that all the one that I listed seems to be necessary.

By the way, for smart ptr there is any reason why the boost data structures instead of the equivalent one supported in standard C++ since C++11?

We should use the standard one, this component should be not necessary thou.

Apparently that is not the case: https://github.com/robotology/blocktest/blob/ca4b4cfc39bf63ad008bdcede94cf7d3ecca21ed/src/blocktestrunner/connection.cpp#L6 .

@Nicogene
Copy link
Member Author

@traversaro here is the list of vcpkg that blocktest need:

boost-system boost-filesystem \
boost-process boost-asio boost-dll

@traversaro
Copy link
Member

@Nicogene @pattacini @vtikha How do you want to proceed with this request? We can try to do it in time for 2020.05, or delay it to after 2020.05 to target 2020.08 .

@pattacini
Copy link
Member

I've no particular opinion on that. We could include it if there's time left.

@traversaro
Copy link
Member

I've no particular opinion on that. We could include it if there's time left.

Adding it is not particular time consuming, I can easily do it while I updated the repo for trying to fix the Qt5 issues (robotology/robotology-superbuild#354). If we all agree on adding them, I can do it with no problems.

@pattacini
Copy link
Member

Fine with me then 👍

traversaro added a commit that referenced this issue Apr 25, 2020
In particular: 
* Use a recent commit of vcpkg, microsoft/vcpkg@28ab0b1 that contains microsoft/vcpkg#10644 
* Update qt5 to build with the `latest` feature, that install qt 5.14 that should be the first version of qt completely relocatable ( https://www.qt.io/blog/qt-is-relocatable )  
* Substitute opencv3 with opencv, that install opencv4 
* Install also `asio`, `boost-asio`, `boost-process`, `boost-dll`,  `boost-filesystem` and `boost-system`, to fix #7 
* As the newer version of vcpkg are affected by the bug microsoft/vcpkg#10119, clone the `robotology-vcpkg-binary-ports` repo in `C:/robotology`, so that it will be contained in the same archive  used to distribute the vcpkg dependencies .
@Nicogene
Copy link
Member Author

I agree adding it in the 2020.05 release if it is not a big deal

@traversaro
Copy link
Member

I agree adding it in the 2020.05 release if it is not a big deal

This is already part of #14 . The PR is a bit "fat" because the CI time is quite big and so I preferred to but a few changes together, but if you could review we are good to go.

traversaro added a commit that referenced this issue Apr 29, 2020
* Update to recent vcpkg version

In particular: 
* Use a recent commit of vcpkg, microsoft/vcpkg@28ab0b1 that contains microsoft/vcpkg#10644 
* Update qt5 to build with the `latest` feature, that install qt 5.14 that should be the first version of qt completely relocatable ( https://www.qt.io/blog/qt-is-relocatable )  
* Substitute opencv3 with opencv, that install opencv4 
* Install also `asio`, `boost-asio`, `boost-process`, `boost-dll`,  `boost-filesystem` and `boost-system`, to fix #7 
* As the newer version of vcpkg are affected by the bug microsoft/vcpkg#10119, clone the `robotology-vcpkg-binary-ports` repo in `C:/robotology`, so that it will be contained in the same archive  used to distribute the vcpkg dependencies .
traversaro added a commit to traversaro/robotology-superbuild-dependencies-vcpkg that referenced this issue May 3, 2020
In particular: 
* Use a recent commit of vcpkg, microsoft/vcpkg@28ab0b1 that contains microsoft/vcpkg#10644 
* Update qt5 to build with the `latest` feature, that install qt 5.14 that should be the first version of qt completely relocatable ( https://www.qt.io/blog/qt-is-relocatable )  
* Substitute opencv3 with opencv, that install opencv4 
* Install also `asio`, `boost-asio`, `boost-process`, `boost-dll`,  `boost-filesystem` and `boost-system`, to fix robotology#7 
* As the newer version of vcpkg are affected by the bug microsoft/vcpkg#10119, clone the `robotology-vcpkg-binary-ports` repo in `C:/robotology`, so that it will be contained in the same archive  used to distribute the vcpkg dependencies .
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 a pull request may close this issue.

3 participants