Git Product home page Git Product logo

poco_vendor's Introduction

poco_vendor

CMake shim over the poco library: https://github.com/pocoproject/poco

This package will download and install poco if an appropriate version is not found on the system already.

poco_vendor's People

Contributors

blast545 avatar cottsay avatar dhood avatar dirk-thomas avatar emersonknapp avatar esteve avatar mikaelarguedas avatar nuclearsandwich avatar sloretz avatar wjwwood avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

poco_vendor's Issues

Missing dependencies in xenial

Apologies I'm not aware of the background for this PR (#18) - on xenial, libpoco-dev does not pull in PCRE or zlib.

As someone who builds ROS2 from source in CI on xenial and bionic, and depends on catkin_pkg/rosdep to resolve dependencies, I wonder: is there any harm in keeping those build_depends in poco_vendor, given that xenial is nominally a supported platform?

How to include poco in package.xml

I have been checking how we include poco in the package.xml across the official ros2 packages.

In same of them:

  • poco_vendor and rmw_implementation
 <depend>libpoco-dev</depend>
 <depend>poco_vendor</depend>
  • class_loader, rosidl_typesupport_c and rosidl_typesupport_cpp
  <build_depend>libpoco-dev</build_depend>
  <exec_depend>libpoco-dev</exec_depend>

I think libpoco-dev shouldn't be a <exec_depend> or <depend> because it's just something that we use for building.

the right approach should be something like:

  <build_depend>libpoco-dev</build_depend>
  <exec_depend>poco_vendor</exec_depend>

@wjwwood and @dirk-thomas which are your thoughts?

support different build type

The "fat" binary archive generated for a release is build in release mode. When a user tries to build code on top in debug mode this package doesn't pick the built version of Poco but tries to find a debug version of the library on the system which might not be available.

Follow up of ros2/examples#199. @athackst FYI.

Github throttling download of poco archive?

I had some issues on mini2 yesterday where the download for https://github.com/pocoproject/poco/archive/poco-1.7.7-release.tar.gz was really really slow. It hit the 600s timeout repeatedly before giving up and failing. At the same time the download completed instantly from my computer, so I suspect this is another case of a build machine getting throttled for downloading something too much.

One option is to include the archive in this repo, however that is still downloading it from github. Another option is to set up a mirror and have this repo try to download from it if the github link fails.

Here's an example
http://ci.ros2.org/job/ci_osx/2596/consoleText

Windows: poco is sometimes not installed when built by poco_vendor

The visible error was a failure in a downstream package to find Poco during CMake configuration. I checked for poco libraries in the poco_vendor install space and found only the poco_vendor resource files. When checking poco_vendor in the build space I did see an apparently successful build of poco in the poco_external_project_install directory.

Both @wjwwood and I experienced this at least once while testing from-source builds on Windows.

I don't have reliable reproduction steps since I only saw this the one time and as far as I know so did @wjwwood

I deleted the poco_vendor directory from the install and build directories and resumed building my workspace and the subsequent poco_vendor build successfully built and installed poco.

Need to pass CFLAG -fPIC when building for QNX

Need to pass CFLAG -fPIC when building for QNX. this issue can be solved in two ways:

option 1:
replace:

list(APPEND extra_cmake_args "-DCMAKE_C_FLAGS=-Wno-shift-negative-value")

with:
list(APPEND extra_cmake_args "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -Wno-shift-negative-value")

option 2:
edit the CMakeLists.txt file and include this line before ExternalProject_Add()
if(QNX)
list(APPEND extra_cmake_args "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -fPIC")
endif()

Please let me know which one you prefer so I can make a PR with, Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.