Skip to content

Commit

Permalink
Merge branch 'yarp-3.9'
Browse files Browse the repository at this point in the history
  • Loading branch information
robotology-bot committed Oct 10, 2024
2 parents ac4b416 + 20e7580 commit 5608bf2
Show file tree
Hide file tree
Showing 17 changed files with 302 additions and 202 deletions.
4 changes: 2 additions & 2 deletions bindings/python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,11 @@ if(YARP_PYTHON_PIP_METADATA_INSTALL)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/METADATA "")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/METADATA "Metadata-Version: 2.1\n")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/METADATA "Name: yarp\n")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/METADATA "Version: ${YARP_VERSION}\n")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/METADATA "Version: ${YARP_VERSION_SHORT}\n")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/INSTALLER "${YARP_PYTHON_PIP_METADATA_INSTALLER}\n")
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/METADATA" "${CMAKE_CURRENT_BINARY_DIR}/INSTALLER"
DESTINATION ${CMAKE_INSTALL_PYTHON3DIR}/yarp-${YARP_VERSION}.dist-info)
DESTINATION ${CMAKE_INSTALL_PYTHON3DIR}/yarp-${YARP_VERSION_SHORT}.dist-info)
endif()

if(YARP_COMPILE_TESTS)
Expand Down
25 changes: 25 additions & 0 deletions cmake/YarpInstallationHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -469,3 +469,28 @@ macro(YARP_INSTALL _what)
endif()

endmacro()


# yarp_enable_windows_longpath_support(<target>)
#
# This function enables longpath support on Windows on a given target by adding the appropriate
# manifest as documented in https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation .
#
# On non-Windows platforms, this functions does not do anything
function(YARP_ENABLE_WINDOWS_LONGPATH_SUPPORT _target)
if(MSVC)
set(yewls_manifest_filename "${_target}_longpath.manifest")
set(yewls_manifest_output "${CMAKE_CURRENT_BINARY_DIR}/${yewls_manifest_filename}")

set(yewls_manifest_contents [=[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</windowsSettings>
</application>
</assembly>]=])
file(GENERATE OUTPUT "${yewls_manifest_output}" CONTENT "${yewls_manifest_contents}")
target_sources(${_target} PRIVATE "${yewls_manifest_output}")
endif()
endfunction()
2 changes: 2 additions & 0 deletions doc/001_installation/3_install.dox
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ systems.
- \subpage install_yarp_linux
- \subpage install_yarp_windows
- \subpage install_yarp_mac
- \subpage install_yarp_conda


After your are done installing YARP you can proceed with the following link:
\subpage check_your_installation.
Expand Down
99 changes: 99 additions & 0 deletions doc/001_installation/3_install_conda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
Installing YARP on Linux, macOS or Windows with conda {#install_yarp_conda}
=====================================================

[TOC]

Installation on Linux, macOS or Windows with conda {#install_on_conda}
=========================

These instructions for installing yarp on any Linux distributions, macOS or Windows,
if you are using the conda package manager.


Install from binaries {#install_conda_from_binaries}
---------------------

To create a new environment called `yarpenv` with the `yarp` C++ library, tools and Python bindings, run:

~~~{.sh}
conda create -n yarpenv -c conda-forge yarp
~~~

If you are experiencing problems with [conda-forge](https://conda-forge.org/) binaries of yarp, please open an issue at
[conda-forge/yarp-feedstock](https://github.com/conda-forge/yarp-feedstock) GitHub repo.

You are now ready to check you installation, see \ref check_your_installation.


Install from sources {#install_conda_from_sources}
--------------------

### Required Dependencies {#install_required_conda}


To create an environment called `yarpsrcdev` in which to compile yarp from source, run the following command

~~~{.sh}
conda create -n yarpsrcdev -c conda-forge cmake compilers pkg-config make ninja ycm-cmake-modules ace tinyxml eigen sdl sqlite libjpeg-turbo robot-testing-framework libpng libzlib soxr libopencv portaudio qt-main ffmpeg
~~~

### Compiling YARP {#compiling_yarp}

To get the source you can download the latest release at
https://github.com/robotology/yarp/releases/
or clone YARP git repository from one of the following addresses:

\li(git read-only) git://github.com/robotology/yarp.git
\li(ssh read+write) git@github.com:robotology/yarp.git
\li(https read+write) https://github.com/robotology/yarp.git

For example:

~~~{.sh}
git clone https://github.com/robotology/yarp.git
~~~

By default the `master` (development) branch is cloned, if you need a stable
branches they are named `yarp-<version>`. For example

~~~{.sh}
git clone -b yarp-3.3 https://github.com/robotology/yarp.git
~~~


Generate Ninja build files using CMake in the environment you created before, and specify that you want to install
yarp in the same environment, by executing the following commands on Linux or macOS:

~~~{.sh}
conda activate yarpsrcdev
cd yarp
mkdir build
cd build
cmake -GNinja -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX ..
~~~

or on Windows:

~~~{.sh}
conda activate yarpsrcdev
cd yarp
mkdir build
cd build
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX% ..
~~~

Usually you want to check in the CMake output that "Compile GUIs" and
"Compile YARP_math library" are enabled, if they are not, you are probably
missing some dependency.


Compile:

~~~{.sh}
ninja
ninja install
~~~

You are now ready to check you installation, see \ref check_your_installation.

\remark Do not select other options unless you know what you are doing.
48 changes: 1 addition & 47 deletions doc/001_installation/3_install_linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,45 +12,6 @@ the same, but you will need to figure out how to install the dependencies on
your system.


Install from binaries {#install_linux_from_binaries}
---------------------

Add www.icub.eu to your APT sources as below (replace `ubuntu` with `debian` according to your system):

~~~{.sh}
sudo sh -c 'echo "deb http://www.icub.eu/ubuntu `lsb_release -cs` contrib/science" > /etc/apt/sources.list.d/icub.list'
~~~

Import the repository public key:

~~~{.sh}
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 57A5ACB6110576A6
~~~

Update the list of packages:

~~~{.sh}
sudo apt update
~~~

If you stumble upon an error related to an unsupported `i386` architecture, just add the option `[arch=amd64]` in the file `/etc/apt/sources.list.d/icub.list`
at the corresponding line, as below (e.g., for a `ubuntu/jammy` distribution):

~~~
deb [arch=amd64] http://www.icub.eu/ubuntu jammy contrib/science
~~~

Install YARP:

~~~{.sh}
sudo apt install yarp
~~~

You are now ready to check you installation, see \ref check_your_installation.





Install from sources {#install_linux_from_sources}
--------------------
Expand All @@ -70,13 +31,7 @@ Ubuntu 18.04, see
[robotology/QA#364](https://github.com/robotology/QA/issues/364))


Install [YCM](https://github.com/robotology/ycm/) from sources or install it
from binaries by configuring the icub.eu repository (Follow the instructions at
\ref install_linux_from_binaries), and install it with

~~~{.sh}
sudo apt-get install ycm-cmake-modules
~~~
Install [YCM](https://github.com/robotology/ycm/) from sources.

Depending on what parts of YARP you want to enable, you will also have to
install some other packages
Expand All @@ -88,7 +43,6 @@ what is installed and why, proceed to the following sections.

~~~{.sh}
sudo apt-get install build-essential git cmake cmake-curses-gui \
ycm-cmake-modules \
libeigen3-dev \
libace-dev \
libedit-dev \
Expand Down
2 changes: 1 addition & 1 deletion doc/module_yarprobotinterface/robotinterface_all.dox
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ std::string pathToXmlConfigurationFile = ...;
yarp::robotinterface::XMLReader reader;
yarp::robotinterface::XMLReaderResult result = reader.getRobotFromFile(pathToXmlConfigurationFile);

if (!result.isParsingSuccessful) {
if (!result.parsingIsSuccessful) {
// Handle error
// ...
}
Expand Down
3 changes: 3 additions & 0 deletions doc/release/yarp_3_9/fix_pip_version.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#### `bindings`

* Avoid to include unsupported characters like `~dev` in pip version when YARP_PYTHON_PIP_METADATA_INSTALL CMake option is enabled.
3 changes: 3 additions & 0 deletions doc/release/yarp_3_9/fix_wrapper_name.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Devices

* Fix NWS extra config wrapper parameter.
3 changes: 3 additions & 0 deletions doc/release/yarp_3_9/logging_component_expressions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#### `libYARP_os`

* Allow expressions in logging component parameters, e.g. `yCInfo(flag ? COMP1 : COMP2) << "message";`.
3 changes: 3 additions & 0 deletions doc/release/yarp_3_9/yarpidl_thrift_windows_longpath.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#### `yarpidl_thrift`

* Add support for `yarpidl_thrift` to manipulate paths longer than 260 characters on Windows.
4 changes: 2 additions & 2 deletions src/devices/controlBoardRemapper/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ yarp_prepare_plugin(controlboardremapper
TYPE ControlBoardRemapper
INCLUDE ControlBoardRemapper.h
EXTRA_CONFIG
WRAPPER=controlboard_nws_yarp
WRAPPER=controlBoard_nws_yarp
DEFAULT ON
)

Expand All @@ -15,7 +15,7 @@ yarp_prepare_plugin(remotecontrolboardremapper
TYPE RemoteControlBoardRemapper
INCLUDE RemoteControlBoardRemapper.h
EXTRA_CONFIG
WRAPPER=controlboard_nws_yarp
WRAPPER=controlBoard_nws_yarp
DEFAULT ON
)

Expand Down
2 changes: 1 addition & 1 deletion src/devices/fake/fakeDepthCamera/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ yarp_prepare_plugin(fakeDepthCamera
INCLUDE FakeDepthCameraDriver.h
GENERATE_PARSER
EXTRA_CONFIG
WRAPPER=RGBDSensorWrapper
WRAPPER=rgbdSensor_nws_yarp
)

if(ENABLE_fakeDepthCamera)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ yarp_prepare_plugin(remote_controlboard
TYPE RemoteControlBoard
INCLUDE RemoteControlBoard.h
EXTRA_CONFIG
WRAPPER=controlboard_nws_yarp
WRAPPER=controlBoard_nws_yarp
DEFAULT ON
GENERATE_PARSER
)
Expand Down
Loading

0 comments on commit 5608bf2

Please sign in to comment.