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

[gazebo] new port #22466

Merged
merged 28 commits into from
Mar 9, 2022
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 102 additions & 0 deletions ports/gazebo11/0001-Fix-deps.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake
index 4085b5aaeb..f89ac88333 100644
--- a/cmake/SearchForStuff.cmake
+++ b/cmake/SearchForStuff.cmake
@@ -179,7 +179,7 @@ if (PKG_CONFIG_FOUND)
# (needed, at least, for MacOS)

# Use system installation on UNIX and Apple, and internal copy on Windows
- if (UNIX OR APPLE)
+ if (true)
message (STATUS "Using system tinyxml.")
set (USE_EXTERNAL_TINYXML True)
elseif(WIN32)
@@ -225,7 +225,7 @@ if (PKG_CONFIG_FOUND)
# (needed, at least, for MacOS)

# Use system installation on UNIX and Apple, and internal copy on Windows
- if (UNIX OR APPLE)
+ if (true)
message (STATUS "Using system tinyxml2.")
set (USE_EXTERNAL_TINYXML2 True)
elseif(WIN32)
@@ -513,7 +513,7 @@ if (PKG_CONFIG_FOUND)
endif ()

if (libavutil_FOUND AND libavformat_FOUND AND libavcodec_FOUND AND
- libswscale_FOUND)
+ libswscale_FOUND AND FFMPEG_FEATURE)
set (HAVE_FFMPEG TRUE)
else ()
set (HAVE_FFMPEG FALSE)
@@ -538,7 +538,7 @@ if (PKG_CONFIG_FOUND)
########################################
# Find GNU Triangulation Surface Library
pkg_check_modules(gts gts)
- if (gts_FOUND)
+ if (gts_FOUND AND GTS_FEATURE)
message (STATUS "Looking for GTS - found")
set (HAVE_GTS TRUE)
else ()
@@ -551,13 +551,14 @@ if (PKG_CONFIG_FOUND)
# First and preferred option is to look for bullet standard pkgconfig,
# so check it first. if it is not present, check for the OSRF
# custom bullet2.82.pc file
- pkg_check_modules(BULLET bullet>=2.82)
+ find_package(BULLET CONFIG 2.82)
if (NOT BULLET_FOUND)
pkg_check_modules(BULLET bullet2.82>=2.82)
endif()

if (BULLET_FOUND)
set (HAVE_BULLET TRUE)
+ set(BULLET_VERSION ${BULLET_VERSION_STRING})
add_definitions( -DLIBBULLET_VERSION=${BULLET_VERSION} )
else()
set (HAVE_BULLET FALSE)
@@ -572,7 +573,7 @@ if (PKG_CONFIG_FOUND)
########################################
# Find libusb
pkg_check_modules(libusb-1.0 libusb-1.0)
- if (NOT libusb-1.0_FOUND)
+ if (NOT libusb-1.0_FOUND OR NO_LIBUSB_FEATURE)
BUILD_WARNING ("libusb-1.0 not found. USB peripherals support will be disabled.")
set (HAVE_USB OFF CACHE BOOL "HAVE USB" FORCE)
else()
@@ -648,7 +649,7 @@ endif ()
########################################
# Find gdal
include (FindGDAL)
-if (NOT GDAL_FOUND)
+if (NOT GDAL_FOUND OR NO_GDAL_FEATURE)
message (STATUS "Looking for libgdal - not found")
BUILD_WARNING ("GDAL not found, Digital elevation terrains support will be disabled.")
set (HAVE_GDAL OFF CACHE BOOL "HAVE GDAL" FORCE)
@@ -718,7 +719,7 @@ endif()
########################################
# Find graphviz
include (${gazebo_cmake_dir}/FindGraphviz.cmake)
-if (NOT GRAPHVIZ_FOUND)
+if (NOT GRAPHVIZ_FOUND OR NO_GRAPHVIZ_FEATURE)
message (STATUS "Looking for libgraphviz-dev - not found")
BUILD_WARNING ("Graphviz not found, Model editor's schematic view will be disabled.")
set (HAVE_GRAPHVIZ OFF CACHE BOOL "HAVE GRAPHVIZ" FORCE)
diff --git a/cmake/gazebo-config.cmake.in b/cmake/gazebo-config.cmake.in
index b57a90dd76..63ce97095e 100644
--- a/cmake/gazebo-config.cmake.in
+++ b/cmake/gazebo-config.cmake.in
@@ -99,12 +99,13 @@ list(APPEND @PKG_NAME@_CFLAGS -I${GAZEBO_INSTALL_INCLUDE_DIR}/gazebo-@GAZEBO_MAJ

if (GAZEBO_HAS_BULLET)
if (PKG_CONFIG_FOUND)
- pkg_check_modules(BULLET bullet>=2.82)
+ find_package(BULLET CONFIG 2.82)
if (NOT BULLET_FOUND)
pkg_check_modules(BULLET bullet2.82>=2.82)
endif()

if (BULLET_FOUND)
+ set(BULLET_VERSION ${BULLET_VERSION_STRING})
add_definitions(-DLIBBULLET_VERSION=${BULLET_VERSION})
else()
message(FATAL_ERROR "Error: Bullet > 2.82 not found, please install libbullet2.82-dev.")
51 changes: 51 additions & 0 deletions ports/gazebo11/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO osrf/gazebo
REF 382dcc3f36095a8d79b5bc9c8b8ad346e867c51d
SHA512 57638cd0b23b5f2bfd32fdc159d6cd77ca34e3bd695c225591979aef4b7271eac93d3706fa1ffa2340f90013267a4171bebe1e4c142f19ad2bf67963dfed627e
HEAD_REF gazebo11
PATCHES
0001-Fix-deps.patch
)

vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
openal HAVE_OPENAL
ffmpeg FFMPEG_FEATURE
gts GTS_FEATURE
INVERTED_FEATURES
simbody CMAKE_DISABLE_FIND_PACKAGE_Simbody
dart CMAKE_DISABLE_FIND_PACKAGE_DART
bullet CMAKE_DISABLE_FIND_PACKAGE_BULLET
libusb NO_LIBUSB_FEATURE
gdal NO_GDAL_FEATURE
graphviz NO_GRAPHVIZ_FEATURE
)

vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/debug/bin")
vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/bin")
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DUSE_EXTERNAL_TINY_PROCESS_LIBRARY=ON
-DPKG_CONFIG_EXECUTABLE=${CURRENT_INSTALLED_DIR}/tools/pkgconf/pkgconf.exe
${FEATURE_OPTIONS}
)

vcpkg_cmake_install()
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/gazebo")

vcpkg_copy_tools(
TOOL_NAMES gazebo gz gzclient gzserver
AUTO_CLEAN
)
set(EXTRA_OGRE_LIBS Codec_EXR Codec_FreeImage Codec_STBI OgreBites OgreMain OgreMeshLodGenerator OgreOverlay OgrePaging OgreProperty OgreRTShaderSystem OgreTerrain OgreVolume Plugin_BSPSceneManager Plugin_DotScene Plugin_OctreeSceneManager Plugin_OctreeZone Plugin_ParticleFX Plugin_PCZSceneManager RenderSystem_Direct3D11 RenderSystem_GL RenderSystem_GL3Plus)
foreach(LIB IN LISTS EXTRA_OGRE_LIBS)
set(FILE_NAME "${CMAKE_SHARED_LIBRARY_PREFIX}${LIB}${CMAKE_SHARED_LIBRARY_SUFFIX}")
file(COPY "${CURRENT_HOST_INSTALLED_DIR}/bin/${FILE_NAME}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
endforeach()

file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")

# Handle copyright
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/gazebo11" RENAME copyright)
121 changes: 121 additions & 0 deletions ports/gazebo11/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
{
"name": "gazebo11",
"version-date": "2022-01-10",
"description": "Open source robotics simulator.",
"homepage": "http://gazebosim.org",
"dependencies": [
"boost-asio",
"boost-date-time",
"boost-filesystem",
"boost-format",
"boost-interprocess",
"boost-iostreams",
"boost-program-options",
"boost-property-tree",
"boost-regex",
"boost-system",
"boost-thread",
"boost-uuid",
"ccd",
{
"name": "hdf5",
"features": [
"cpp"
]
},
"ignition-common3",
"ignition-fuel-tools4",
"ignition-math6",
"ignition-msgs5",
"ignition-transport8",
"ogre",
"pkgconf",
"protobuf",
"qwt",
"sdformat9",
"tbb",
"tiny-process-library",
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
],
"default-features": [
"bullet",
"dart",
"ffmpeg",
"gdal",
"graphviz",
"gts",
"libusb",
"openal",
"simbody"
],
"features": {
"bullet": {
"description": "Use the bullet physics engine",
"dependencies": [
"bullet3"
]
},
"dart": {
"description": "Use the dart physics engine",
"dependencies": [
"dartsim"
]
},
"ffmpeg": {
"description": "Enable audio-video capabilities",
"dependencies": [
{
"name": "ffmpeg",
"features": [
"avcodec",
"avformat",
"swscale"
]
}
]
},
"gdal": {
"description": "Enable digital elevation terrains support",
"dependencies": [
"gdal"
]
},
"graphviz": {
"description": "Enable model editor's schematic view",
"dependencies": [
"graphviz"
]
},
"gts": {
"description": "Enable CSG support",
"dependencies": [
"gts"
]
},
"libusb": {
"description": "Enable USB peripheral support",
"dependencies": [
"libusb"
]
},
"openal": {
"description": "Enable audio support",
"dependencies": [
"openal-soft"
]
},
"simbody": {
"description": "Use the simbody physics engine",
"dependencies": [
"simbody"
]
}
}
}
2 changes: 1 addition & 1 deletion ports/sdformat9/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ vcpkg_from_github(
HEAD_REF sdf9
PATCHES
fix-dependency-urdfdom.patch
use-external-tinyxml-windows.patch
)

# Ruby is required by the sdformat build process
Expand All @@ -19,7 +20,6 @@ vcpkg_cmake_configure(
OPTIONS
-DBUILD_TESTING=OFF
-DUSE_INTERNAL_URDF=OFF
-DUSE_EXTERNAL_TINYXML=ON
)

vcpkg_cmake_install()
Expand Down
26 changes: 26 additions & 0 deletions ports/sdformat9/use-external-tinyxml-windows.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3dad12e5..e290a3be 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -113,7 +113,7 @@ include (${sdf_cmake_dir}/SDFUtils.cmake)

message (STATUS "\n\n====== Finding 3rd Party Packages ======")
# Use of tinyxml. System installation on UNIX. Internal copy on WIN
-if (UNIX)
+if (true)
message (STATUS "Using system tinyxml")
set (USE_EXTERNAL_TINYXML True)
elseif(WIN32)
diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake
index 427e5e7a..655fafc0 100644
--- a/cmake/SearchForStuff.cmake
+++ b/cmake/SearchForStuff.cmake
@@ -9,7 +9,7 @@ if (USE_EXTERNAL_TINYXML)
#################################################
# Find tinyxml. Only debian distributions package tinyxml with a pkg-config
# Use pkg_check_modules and fallback to manual detection (needed, at least, for MacOS)
- pkg_check_modules(tinyxml tinyxml)
+ find_package(tinyxml CONFIG REQUIRED)
if (NOT tinyxml_FOUND)
find_path (tinyxml_INCLUDE_DIRS tinyxml.h ${tinyxml_INCLUDE_DIRS} ENV CPATH)
find_library(tinyxml_LIBRARIES NAMES tinyxml)
2 changes: 1 addition & 1 deletion ports/sdformat9/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "sdformat9",
"version": "9.4.0",
"port-version": 3,
"port-version": 4,
"description": "Simulation Description Format (SDF) parser and description files.",
"homepage": "http://sdformat.org/",
"supports": "!(linux | uwp)",
Expand Down
6 changes: 5 additions & 1 deletion versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -2364,6 +2364,10 @@
"baseline": "2019-08-04",
"port-version": 1
},
"gazebo11": {
"baseline": "2022-01-10",
"port-version": 0
},
"gcem": {
"baseline": "1.13.1",
"port-version": 1
Expand Down Expand Up @@ -6230,7 +6234,7 @@
},
"sdformat9": {
"baseline": "9.4.0",
"port-version": 3
"port-version": 4
},
"sdl1": {
"baseline": "1.2.15",
Expand Down
9 changes: 9 additions & 0 deletions versions/g-/gazebo11.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "2ea0074a90d488284742c222d13e9520dcbea42b",
"version-date": "2022-01-10",
"port-version": 0
}
]
}
5 changes: 5 additions & 0 deletions versions/s-/sdformat9.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "a316351793cb7221a406626a532a40ad72a39f3a",
"version": "9.4.0",
"port-version": 4
},
{
"git-tree": "5f47672c7e4349da14189c38db3a15dcdad5a196",
"version": "9.4.0",
Expand Down