[tbb, pagmo2] Update TBB to 2021.5 and update pagmo2 to 2.18.0 (#26284)

* [tbb] Update to 2021.3.0

* [tbb] Add Threads dependency

* [pagmo2] Update to support new TBB

* [openvdb] Update to 8.1.0

* [embree2] Remove from baseline -- it is no longer receiving support from upstream

* [usd] Mark as unsupported

* [usd] Disable USD in CI due to policy https://github.com/PixarAnimationStudios/USD/issues/1600

* [openvdb] Bump port-version

* Update version database

* [pagmo2] Fix vcpkg.json

* update version

* wip update

* versions

* [embree2] deprecate, [openvdb,usd] resolve conflicts, [tbb] update

* Added libxml port.

* Remove port version as it's initial port.

* Added baseline version

* Support only for windows and static

* Allowed building debug version

* update versions

* Update ports/libxpm/portfile.cmake

Co-authored-by: Thomas1664 <46387399+Thomas1664@users.noreply.github.com>

* Added new lines

* Update ports/libxpm/vcpkg.json

Co-authored-by: Thomas1664 <46387399+Thomas1664@users.noreply.github.com>

* Update ports/libxpm/portfile.cmake

Co-authored-by: Thomas1664 <46387399+Thomas1664@users.noreply.github.com>

* Update ports/libxpm/vcpkg.json

Co-authored-by: Thomas1664 <46387399+Thomas1664@users.noreply.github.com>

* Regenerated versions

* Update ports/libxpm/vcpkg.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* Libxpm is taken from gitlab now.

* Dropped changes against master in original repo for libxpm.

* Dropped libxpm from baseline

* Dropped version for libxpm

* Update cpuinfo

* Updated date of version

* Update version database

* Removed support for arm32 & uwp as library is not supporting it.

* Version regenerated

* Update ports/cpuinfo/vcpkg.json

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

* Updated versions

* Initial commit WIP

* Fixed compilation of latest stable version

* Dropped comments

* Switch from version-string to version

* Added versions

* Fixed path of cmake files for other projects

* Updated versions

* Various modernization.

* Fully mark embree2 as deprecated.

* [pagmo2] Disable -Werror

* [cctag] Fix finding and use of TBB.

* [openvdb] Baseline the static versions because they exceed FFFFFFFF in size, and I'm not sure if that's fixable....

* [gazebo] Apply https://github.com/osrf/gazebo/pull/3174 patch to fix TBB.

* Respond to failures in https://dev.azure.com/vcpkg/public/_build/results?buildId=76586

* [pagmo2] Add license. See 19d774fbb6/src/bfe.cpp (L5-L27)

* [tbb] Add license.

* [embree2] Add "license".

* [tbb] Use vcpkg_cmake_config_fixup and fix version as requested by @LilyWangLL

* [usd] Add usd is known broken message.

* [embree2] Remove completely.

* Fix version database.

* Fix usd version database.

* Fix wrong case on Linux.

* Lowercase the tbb directory to get to their configs.

* [cctag] minimize patches

* [tbb] Apply supports expression fix suggested in https://github.com/microsoft/vcpkg/pull/26284#discussion_r967427833

* [usd] Add note about upstream issue.

* [pagmo2] Minimize patch.

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Jonliu1993 <13720414433@163.com>
Co-authored-by: Mathis Logemann <mathisloge@gmail.com>
Co-authored-by: Victor Romero <viromer@microsoft.com>
Co-authored-by: Vladimír Aubrecht <vladimir.aubrecht@me.com>
Co-authored-by: Thomas1664 <46387399+Thomas1664@users.noreply.github.com>
Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
This commit is contained in:
Billy O'Neal 2022-09-23 12:03:33 -07:00 committed by GitHub
parent 20630e616b
commit 5f6dfcb4d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 790 additions and 365 deletions

View File

@ -1,10 +1,11 @@
diff --git a/src/cctag/utils/Exceptions.hpp b/src/cctag/utils/Exceptions.hpp
index 094d278..8647f76 100644
--- a/src/cctag/utils/Exceptions.hpp
+++ b/src/cctag/utils/Exceptions.hpp
@@ -7,7 +7,7 @@
*/
@@ -8,6 +8,7 @@
#ifndef _CCTAG_EXCEPTIONS_HPP_
#define _CCTAG_EXCEPTIONS_HPP_
-
+#define _GNU_SOURCE
#include <boost/exception/diagnostic_information.hpp>
#include <boost/exception/errinfo_file_name.hpp>

View File

@ -0,0 +1,173 @@
diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in
index c5a82c0..3ce4719 100644
--- a/cmake/Config.cmake.in
+++ b/cmake/Config.cmake.in
@@ -42,6 +42,7 @@
include(CMakeFindDependencyMacro)
set(OpenCV_DIR @OpenCV_DIR@)
+find_dependency(TBB)
find_dependency(OpenCV)
find_dependency(Eigen3 @CCTAG_EIGEN_REQUIRED_VERSION@)
find_dependency(Boost 1.66 REQUIRED COMPONENTS @BOOST_REQUIRED_COMPONENTS@)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7b64b83..5398ed4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -176,7 +176,8 @@ if(CCTAG_WITH_CUDA)
${OpenCV_LIBS}
Boost::date_time Boost::chrono Boost::thread Boost::serialization Boost::system Boost::filesystem Boost::atomic Boost::program_options Boost::timer Boost::math_c99
Eigen3::Eigen
- ${TBB_LIBRARIES} ${CUDA_CUDADEVRT_LIBRARY})
+ TBB::tbb
+ ${CUDA_CUDADEVRT_LIBRARY})
if(NOT MSVC)
target_link_libraries(CCTag pthread dl)
@@ -184,7 +185,7 @@ if(CCTAG_WITH_CUDA)
target_compile_definitions(CCTag
PUBLIC -DCCTAG_WITH_CUDA
- PRIVATE ${TBB_DEFINITIONS})
+)
if(CCTAG_HAVE_SHFL_DOWN_SYNC)
target_compile_definitions(CCTag PRIVATE "-DCCTAG_HAVE_SHFL_DOWN_SYNC")
@@ -220,16 +221,13 @@ else() # without CUDA
# get_target_property(testprop CCTag INTERFACE_INCLUDE_DIRECTORIES )
# message(STATUS "testprop: ${testprop}")
- target_compile_definitions(CCTag
- PRIVATE ${TBB_DEFINITIONS})
target_link_libraries(CCTag
PUBLIC
${OpenCV_LIBS}
Eigen3::Eigen
Boost::atomic Boost::chrono Boost::date_time Boost::filesystem Boost::serialization Boost::system Boost::thread Boost::timer Boost::math_c99
- PRIVATE
- ${TBB_LIBRARIES})
+ TBB::tbb)
if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
target_link_libraries(CCTag PRIVATE pthread dl)
diff --git a/src/applications/CMakeLists.txt b/src/applications/CMakeLists.txt
index 506d19b..c7154fc 100644
--- a/src/applications/CMakeLists.txt
+++ b/src/applications/CMakeLists.txt
@@ -86,7 +86,7 @@ target_include_directories(detection PUBLIC
)
target_link_libraries(detection PUBLIC
CCTag::CCTag
- ${TBB_LIBRARIES}
+ TBB::tbb
${OpenCV_LIBS}
Boost::filesystem Boost::program_options Boost::timer
)
diff --git a/src/cctag/Detection.cpp b/src/cctag/Detection.cpp
index 21c47bf..a800fbc 100644
--- a/src/cctag/Detection.cpp
+++ b/src/cctag/Detection.cpp
@@ -44,6 +44,7 @@
#include <list>
#include <utility>
#include <memory>
+#include <mutex>
#ifdef CCTAG_WITH_CUDA
#include <cctag/cuda/cctag_cuda_runtime.h> // only for debugging
#endif // CCTAG_WITH_CUDA
@@ -71,7 +72,7 @@ static void constructFlowComponentFromSeed(
std::vector<CandidatePtr> & vCandidateLoopOne,
const Parameters & params)
{
- static tbb::mutex G_SortMutex;
+ static std::mutex G_SortMutex;
assert( seed );
// Check if the seed has already been processed, i.e. belongs to an already
@@ -102,7 +103,7 @@ static void constructFlowComponentFromSeed(
}
{
- tbb::mutex::scoped_lock lock(G_SortMutex);
+ std::lock_guard<std::mutex> lock(G_SortMutex);
candidate->_averageReceivedVote = (float) (nReceivedVote*nReceivedVote) / (float) nVotedPoints;
auto it = std::lower_bound(vCandidateLoopOne.begin(), vCandidateLoopOne.end(), candidate,
[](const CandidatePtr& c1, const CandidatePtr& c2) { return c1->_averageReceivedVote > c2->_averageReceivedVote; });
@@ -119,8 +120,8 @@ static void completeFlowComponent(
std::size_t runId,
const Parameters & params)
{
- static tbb::spin_mutex G_UpdateMutex;
- static tbb::mutex G_InsertMutex;
+ static std::mutex G_UpdateMutex;
+ static std::mutex G_InsertMutex;
try
{
@@ -171,7 +172,7 @@ static void completeFlowComponent(
if (nSegmentCommon == -1)
{
{
- tbb::spin_mutex::scoped_lock lock(G_UpdateMutex);
+ std::lock_guard<std::mutex> lock(G_UpdateMutex);
nLabel = nSegmentOut;
++nSegmentOut;
}
@@ -239,7 +240,7 @@ static void completeFlowComponent(
}
{
- tbb::mutex::scoped_lock lock(G_InsertMutex);
+ std::lock_guard<std::mutex> lock(G_InsertMutex);
vCandidateLoopTwo.push_back(candidate);
}
@@ -384,7 +385,7 @@ static void cctagDetectionFromEdgesLoopTwoIteration(
float scale,
const Parameters& params)
{
- static tbb::mutex G_InsertMutex;
+ static std::mutex G_InsertMutex;
const Candidate& candidate = vCandidateLoopTwo[iCandidate];
@@ -543,7 +544,7 @@ static void cctagDetectionFromEdgesLoopTwoIteration(
#endif
{
- tbb::mutex::scoped_lock lock(G_InsertMutex);
+ std::lock_guard<std::mutex> lock(G_InsertMutex);
markers.push_back( tag ); // markers takes responsibility for delete
}
#ifdef CCTAG_SERIALIZE
diff --git a/src/cctag/Identification.cpp b/src/cctag/Identification.cpp
index 15c9d9b..99b616a 100644
--- a/src/cctag/Identification.cpp
+++ b/src/cctag/Identification.cpp
@@ -29,6 +29,7 @@
#include <cmath>
#include <vector>
+#include <mutex>
#include <tbb/tbb.h>
@@ -71,7 +72,7 @@ bool orazioDistanceRobust(
#endif // GRIFF_DEBUG
const size_t cut_count = cuts.size();
- static tbb::mutex vscore_mutex;
+ static std::mutex vscore_mutex;
tbb::parallel_for(size_t(0), cut_count, [&](size_t i) {
const cctag::ImageCut& cut = cuts[i];
@@ -183,7 +184,7 @@ bool orazioDistanceRobust(
#endif // GRIFF_DEBUG
{
- tbb::mutex::scoped_lock lock(vscore_mutex);
+ std::lock_guard<std::mutex> lock(vscore_mutex);
vScore[idSet.front().first].push_back(idSet.front().second);
}
}

View File

@ -6,8 +6,11 @@ vcpkg_from_github(
HEAD_REF develop
PATCHES
0001-fix-osx.patch
0002-find-tbb.patch # Includes changes similar to https://github.com/alicevision/CCTag/pull/178/
)
file(REMOVE "${SOURCE_PATH}/cmake/FindTBB.cmake" "${SOURCE_PATH}/src/applications/cmake/FindTBB.cmake")
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
cuda CCTAG_WITH_CUDA
@ -15,7 +18,7 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
)
if("cuda" IN_LIST FEATURES)
include(${CURRENT_INSTALLED_DIR}/share/cuda/vcpkg_find_cuda.cmake)
include("${CURRENT_INSTALLED_DIR}/share/cuda/vcpkg_find_cuda.cmake")
vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT)
message(STATUS "CUDA_TOOLKIT_ROOT ${CUDA_TOOLKIT_ROOT}")
endif()

View File

@ -1,7 +1,7 @@
{
"name": "cctag",
"version-semver": "1.0.2",
"port-version": 1,
"port-version": 2,
"maintainers": "alicevision-team@googlegroups.com",
"description": "Computer vision library for detecting CCTag markers made up of concentric circles",
"homepage": "https://github.com/alicevision/CCTag",

View File

@ -1,14 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index afa704d..96dc4f8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,6 +57,9 @@ IF(COMMAND cmake_policy)
if (POLICY CMP0042)
cmake_policy(SET CMP0042 OLD)
endif()
+ if (POLICY CMP0001)
+ cmake_policy(SET CMP0001 OLD)
+ endif()
ENDIF(COMMAND cmake_policy)
MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY)

View File

@ -1,53 +0,0 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO embree/embree
REF v2.17.7
SHA512 3ea548e5ed85f68dc1f9dfe864711f9b731e0df8a2258257f77db08bbdbe3a9014a626313e3ff41174f3b26f09dc8ff523900119ff4c8465bfff53f621052873
HEAD_REF devel2
PATCHES
cmake_policy.patch
)
file(REMOVE "${SOURCE_PATH}/common/cmake/FindTBB.cmake")
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" EMBREE_STATIC_LIB)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" EMBREE_STATIC_RUNTIME)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
DISABLE_PARALLEL_CONFIGURE
OPTIONS
-DEMBREE_ISPC_SUPPORT=OFF
-DEMBREE_TUTORIALS=OFF
-DEMBREE_STATIC_LIB=${EMBREE_STATIC_LIB}
-DEMBREE_STATIC_RUNTIME=${EMBREE_STATIC_RUNTIME}
"-DTBB_LIBRARIES=TBB::tbb"
"-DTBB_INCLUDE_DIRS=${CURRENT_INSTALLED_DIR}/include"
)
# just wait, the release build of embree is insanely slow in MSVC
# a single file will took about 2-10 min
vcpkg_cmake_install()
vcpkg_copy_pdbs()
# these cmake files do not seem to contain helpful configuration for find libs, just remove them
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/embree-config.cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/embree-config-version.cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/embree-config.cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/embree-config-version.cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/uninstall.command" "${CURRENT_PACKAGES_DIR}/debug/uninstall.command")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/models")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/models")
if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
endif()
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/embree2")
file(RENAME "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/share/embree2/doc")
file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@ -1,15 +0,0 @@
{
"name": "embree2",
"version-semver": "2.17.7",
"port-version": 4,
"description": "High Performance Ray Tracing Kernels.",
"homepage": "https://github.com/embree/embree",
"supports": "!arm",
"dependencies": [
"tbb",
{
"name": "vcpkg-cmake",
"host": true
}
]
}

443
ports/gazebo/fix-tbb.patch Normal file
View File

@ -0,0 +1,443 @@
diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake
index af56ee4..8583740 100644
--- a/cmake/SearchForStuff.cmake
+++ b/cmake/SearchForStuff.cmake
@@ -301,7 +301,7 @@ if (PKG_CONFIG_FOUND)
#################################################
# Find TBB
- pkg_check_modules(TBB tbb<2021)
+ pkg_check_modules(TBB tbb)
set (TBB_PKG_CONFIG "tbb")
if (NOT TBB_FOUND)
message(STATUS "TBB not found, attempting to detect manually")
@@ -325,6 +325,12 @@ if (PKG_CONFIG_FOUND)
endif(tbb_library)
endif (NOT TBB_FOUND)
endif (NOT TBB_FOUND)
+ set(HAVE_TBB_GREATER_OR_EQUAL_2021 OFF)
+ if (DEFINED TBB_VERSION AND NOT ${TBB_VERSION} STREQUAL "")
+ if (${TBB_VERSION} VERSION_GREATER_EQUAL "2021.0")
+ set(HAVE_TBB_GREATER_OR_EQUAL_2021 ON)
+ endif()
+ endif()
#################################################
# Find OGRE
diff --git a/cmake/gazebo-config.cmake.in b/cmake/gazebo-config.cmake.in
index 36bb341..6bb8e51 100644
--- a/cmake/gazebo-config.cmake.in
+++ b/cmake/gazebo-config.cmake.in
@@ -223,3 +223,11 @@ list(APPEND @PKG_NAME@_LIBRARIES ${IGNITION-FUEL_TOOLS_LIBRARIES})
list(APPEND @PKG_NAME@_LDFLAGS -Wl,-rpath,${GAZEBO_INSTALL_LIB_DIR}/gazebo-@GAZEBO_MAJOR_VERSION@/plugins)
list(APPEND @PKG_NAME@_LDFLAGS -L${GAZEBO_INSTALL_LIB_DIR})
list(APPEND @PKG_NAME@_LDFLAGS -L${GAZEBO_INSTALL_LIB_DIR}/gazebo-@GAZEBO_MAJOR_VERSION@/plugins)
+
+set (GAZEBO_HAS_TBB_GREATER_OR_EQUAL_2021 @HAVE_TBB_GREATER_OR_EQUAL_2021@)
+if (GAZEBO_HAS_TBB_GREATER_OR_EQUAL_2021)
+ find_package(TBB CONFIG)
+ if (TARGET tbb::tbb)
+ list(APPEND @PKG_NAME@_LIBRARIES TBB::tbb)
+ endif ()
+endif ()
diff --git a/gazebo/transport/CMakeLists.txt b/gazebo/transport/CMakeLists.txt
index 8e59020..a72d49b 100644
--- a/gazebo/transport/CMakeLists.txt
+++ b/gazebo/transport/CMakeLists.txt
@@ -29,6 +29,7 @@ set (headers
SubscribeOptions.hh
Subscriber.hh
SubscriptionTransport.hh
+ TaskGroup.hh
TopicManager.hh
TransportIface.hh
TransportTypes.hh
@@ -70,6 +71,12 @@ if (WIN32)
target_link_libraries(gazebo_transport ws2_32 Iphlpapi)
endif()
+if(${CMAKE_VERSION} VERSION_LESS "3.13.0")
+ link_directories(${TBB_LIBRARY_DIRS})
+else()
+ target_link_directories(gazebo_transport PUBLIC ${TBB_LIBRARY_DIRS})
+endif()
+
if (USE_PCH)
add_pch(gazebo_transport transport_pch.hh ${Boost_PKGCONFIG_CFLAGS} "-I${PROTOBUF_INCLUDE_DIR}" "-I${TBB_INCLUDEDIR}")
endif()
diff --git a/gazebo/transport/Connection.hh b/gazebo/transport/Connection.hh
index 0e7d88a..cbcd7af 100644
--- a/gazebo/transport/Connection.hh
+++ b/gazebo/transport/Connection.hh
@@ -17,7 +17,16 @@
#ifndef _CONNECTION_HH_
#define _CONNECTION_HH_
+#undef emit
#include <tbb/task.h>
+#define emit
+
+// If TBB_VERSION_MAJOR is not defined, this means that
+// tbb >= 2021 and we can include the tbb/version.h header
+#ifndef TBB_VERSION_MAJOR
+#include <tbb/version.h>
+#endif
+
#include <google/protobuf/message.h>
#include <boost/asio.hpp>
@@ -37,6 +46,9 @@
#include "gazebo/common/Console.hh"
#include "gazebo/common/Exception.hh"
#include "gazebo/common/WeakBind.hh"
+#if TBB_VERSION_MAJOR >= 2021
+#include "gazebo/transport/TaskGroup.hh"
+#endif
#include "gazebo/util/system.hh"
#define HEADER_LENGTH 8
@@ -54,7 +66,11 @@ namespace gazebo
/// \cond
/// \brief A task instance that is created when data is read from
/// a socket and used by TBB
+#if TBB_VERSION_MAJOR < 2021
class GZ_TRANSPORT_VISIBLE ConnectionReadTask : public tbb::task
+#else
+ class GZ_TRANSPORT_VISIBLE ConnectionReadTask
+#endif
{
/// \brief Constructor
/// \param[_in] _func Boost function pointer, which is the function
@@ -68,6 +84,7 @@ namespace gazebo
{
}
+#if TBB_VERSION_MAJOR < 2021
/// \bried Overridden function from tbb::task that exectues the data
/// callback.
public: tbb::task *execute()
@@ -75,6 +92,11 @@ namespace gazebo
this->func(this->data);
return NULL;
}
+#else
+ /// \brief Execute the data callback
+ public: void operator()() const
+ { this->func(this->data); }
+#endif
/// \brief The boost function pointer
private: boost::function<void (const std::string &)> func;
@@ -310,12 +332,16 @@ namespace gazebo
if (!_e && !transport::is_stopped())
{
+#if TBB_VERSION_MAJOR < 2021
ConnectionReadTask *task = new(tbb::task::allocate_root())
ConnectionReadTask(boost::get<0>(_handler), data);
tbb::task::enqueue(*task);
// Non-tbb version:
// boost::get<0>(_handler)(data);
+#else
+ this->taskGroup.run<ConnectionReadTask>(boost::get<0>(_handler), data);
+#endif
}
}
@@ -465,6 +491,11 @@ namespace gazebo
/// \brief True if the connection is open.
private: bool isOpen;
+
+#if TBB_VERSION_MAJOR >= 2021
+ /// \brief For managing asynchronous tasks with tbb
+ private: TaskGroup taskGroup;
+#endif
};
/// \}
}
diff --git a/gazebo/transport/ConnectionManager.cc b/gazebo/transport/ConnectionManager.cc
index b0546e5..17016a4 100644
--- a/gazebo/transport/ConnectionManager.cc
+++ b/gazebo/transport/ConnectionManager.cc
@@ -27,6 +27,7 @@
using namespace gazebo;
using namespace transport;
+#if TBB_VERSION_MAJOR < 2021
/// TBB task to process nodes.
class TopicManagerProcessTask : public tbb::task
{
@@ -37,20 +38,30 @@ class TopicManagerProcessTask : public tbb::task
return NULL;
}
};
+#endif
/// TBB task to establish subscriber to publisher connection.
+#if TBB_VERSION_MAJOR < 2021
class TopicManagerConnectionTask : public tbb::task
+#else
+class TopicManagerConnectionTask
+#endif
{
/// \brief Constructor.
/// \param[in] _pub Publish message
public: explicit TopicManagerConnectionTask(msgs::Publish _pub) : pub(_pub) {}
/// Implements the necessary execute function
+#if TBB_VERSION_MAJOR < 2021
public: tbb::task *execute()
{
TopicManager::Instance()->ConnectSubToPub(pub);
return NULL;
}
+#else
+ public: void operator()() const
+ { TopicManager::Instance()->ConnectSubToPub(pub); }
+#endif
/// \brief Publish message
private: msgs::Publish pub;
@@ -273,11 +284,6 @@ void ConnectionManager::RunUpdate()
if (this->masterConn)
this->masterConn->ProcessWriteQueue();
- // Use TBB to process nodes. Need more testing to see if this makes
- // a difference.
- // TopicManagerProcessTask *task = new(tbb::task::allocate_root())
- // TopicManagerProcessTask();
- // tbb::task::enqueue(*task);
boost::recursive_mutex::scoped_lock lock(this->connectionMutex);
TopicManager::Instance()->ProcessNodes();
@@ -403,9 +409,13 @@ void ConnectionManager::ProcessMessage(const std::string &_data)
if (pub.host() != this->serverConn->GetLocalAddress() ||
pub.port() != this->serverConn->GetLocalPort())
{
+#if TBB_VERSION_MAJOR < 2021
TopicManagerConnectionTask *task = new(tbb::task::allocate_root())
TopicManagerConnectionTask(pub);
tbb::task::enqueue(*task);
+#else
+ this->taskGroup.run<TopicManagerConnectionTask>(pub);
+#endif
}
}
// publisher_subscribe. This occurs when we try to subscribe to a topic, and
diff --git a/gazebo/transport/ConnectionManager.hh b/gazebo/transport/ConnectionManager.hh
index ef80eaf..6dc212b 100644
--- a/gazebo/transport/ConnectionManager.hh
+++ b/gazebo/transport/ConnectionManager.hh
@@ -27,8 +27,11 @@
#include "gazebo/msgs/msgs.hh"
#include "gazebo/common/SingletonT.hh"
-#include "gazebo/transport/Publisher.hh"
#include "gazebo/transport/Connection.hh"
+#include "gazebo/transport/Publisher.hh"
+#if TBB_VERSION_MAJOR >= 2021
+#include "gazebo/transport/TaskGroup.hh"
+#endif
#include "gazebo/util/system.hh"
/// \brief Explicit instantiation for typed SingletonT.
@@ -194,6 +197,11 @@ namespace gazebo
/// \brief Condition used for synchronization
private: boost::condition_variable namespaceCondition;
+#if TBB_VERSION_MAJOR >= 2021
+ /// \brief For managing asynchronous tasks with tbb
+ private: TaskGroup taskGroup;
+#endif
+
// Singleton implementation
private: friend class SingletonT<ConnectionManager>;
};
diff --git a/gazebo/transport/Node.hh b/gazebo/transport/Node.hh
index b7d37f7..7248b72 100644
--- a/gazebo/transport/Node.hh
+++ b/gazebo/transport/Node.hh
@@ -18,7 +18,12 @@
#ifndef GAZEBO_TRANSPORT_NODE_HH_
#define GAZEBO_TRANSPORT_NODE_HH_
+#undef emit
#include <tbb/task.h>
+#define emit
+#ifndef TBB_VERSION_MAJOR
+#include <tbb/version.h>
+#endif
#include <boost/bind/bind.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <map>
@@ -26,6 +31,9 @@
#include <string>
#include <vector>
+#if TBB_VERSION_MAJOR >= 2021
+#include "gazebo/transport/TaskGroup.hh"
+#endif
#include "gazebo/transport/TransportTypes.hh"
#include "gazebo/transport/TopicManager.hh"
#include "gazebo/util/system.hh"
@@ -36,7 +44,11 @@ namespace gazebo
{
/// \cond
/// \brief Task used by Node::Publish to publish on a one-time publisher
+#if TBB_VERSION_MAJOR < 2021
class GZ_TRANSPORT_VISIBLE PublishTask : public tbb::task
+#else
+ class GZ_TRANSPORT_VISIBLE PublishTask
+#endif
{
/// \brief Constructor
/// \param[in] _pub Publisher to publish the message on.
@@ -49,16 +61,23 @@ namespace gazebo
this->msg->CopyFrom(_message);
}
+#if TBB_VERSION_MAJOR < 2021
/// \brief Overridden function from tbb::task that exectues the
/// publish task.
public: tbb::task *execute()
+#else
+ /// \brief Executes the publish task.
+ public: void operator()() const
+#endif
{
this->pub->WaitForConnection();
this->pub->Publish(*this->msg, true);
this->pub->SendMessage();
delete this->msg;
+#if TBB_VERSION_MAJOR < 2021
this->pub.reset();
return NULL;
+#endif
}
/// \brief Pointer to the publisher.
@@ -159,11 +178,15 @@ namespace gazebo
const google::protobuf::Message &_message)
{
transport::PublisherPtr pub = this->Advertise<M>(_topic);
+#if TBB_VERSION_MAJOR < 2021
PublishTask *task = new(tbb::task::allocate_root())
PublishTask(pub, _message);
tbb::task::enqueue(*task);
return;
+#else
+ this->taskGroup.run<PublishTask>(pub, _message);
+#endif
}
/// \brief Advertise a topic
@@ -420,6 +443,10 @@ namespace gazebo
/// \brief List of newly arrive messages
private: std::map<std::string, std::list<MessagePtr> > incomingMsgsLocal;
+#if TBB_VERSION_MAJOR >= 2021
+ /// \brief For managing asynchronous tasks with tbb
+ private: TaskGroup taskGroup;
+#endif
private: boost::mutex publisherMutex;
private: boost::mutex publisherDeleteMutex;
diff --git a/gazebo/transport/TaskGroup.hh b/gazebo/transport/TaskGroup.hh
new file mode 100644
index 0000000..b95b5d8
--- /dev/null
+++ b/gazebo/transport/TaskGroup.hh
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2021 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+#ifndef GAZEBO_TRANSPORT_TASKGROUP_HH_
+#define GAZEBO_TRANSPORT_TASKGROUP_HH_
+
+#include <utility>
+
+// Emit is both a macro in Qt and a function defined by tbb
+#undef emit
+#include <tbb/tbb.h>
+#define emit
+
+namespace gazebo {
+ namespace transport {
+ class TaskGroup
+ {
+ public: ~TaskGroup() noexcept
+ {
+ // Wait for running tasks to finish
+ this->taskGroup.wait();
+ }
+
+ public: template<class Functor, class... Args> void run(Args&&... args)
+ {
+ this->taskGroup.run(Functor(std::forward<Args>(args)...));
+ }
+
+ private: tbb::task_group taskGroup;
+ };
+ }
+}
+
+#endif
diff --git a/gazebo/transport/transport_pch.hh b/gazebo/transport/transport_pch.hh
index 0119d40..f288de2 100644
--- a/gazebo/transport/transport_pch.hh
+++ b/gazebo/transport/transport_pch.hh
@@ -21,6 +21,7 @@
* To get a starting list for this file, I use the command:
* grep --include="*.hh" --include="*.cc" --no-filename -r "#include <" | sort -u
*/
+
#include <boost/algorithm/string.hpp>
#include <boost/asio.hpp>
#include <boost/bind/bind.hpp>
@@ -44,8 +45,18 @@
#include <stdio.h>
#include <stdlib.h>
#include <string>
+#include <tbb/task.h>
+#ifndef TBB_VERSION_MAJOR
+#include <tbb/version.h>
+#endif
+#if TBB_VERSION_MAJOR < 2021
#include <tbb/blocked_range.h>
#include <tbb/parallel_for.h>
#include <tbb/task.h>
+#else
+#undef emit
+#include <tbb/tbb.h>
+#define emit
+#endif
#include <utility>
#include <vector>
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 5f2c112..6d09a11 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -49,6 +49,7 @@ target_link_libraries(gz
gazebo_gui
gazebo_physics
gazebo_sensors
+ gazebo_transport
${Qt5Core_LIBRARIES}
${Qt5Widgets_LIBRARIES}
${Boost_LIBRARIES}

View File

@ -12,7 +12,8 @@ vcpkg_from_github(
HEAD_REF gazebo11
PATCHES
0001-Fix-deps.patch
${gazebo3211}
"${gazebo3211}"
fix-tbb.patch # Effectively https://github.com/osrf/gazebo/pull/3174 with merge conflict resolutions
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
@ -33,7 +34,7 @@ vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DUSE_EXTERNAL_TINY_PROCESS_LIBRARY=ON
-DPKG_CONFIG_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/pkgconf/pkgconf${VCPKG_HOST_EXECUTABLE_SUFFIX}
"-DPKG_CONFIG_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/pkgconf/pkgconf${VCPKG_HOST_EXECUTABLE_SUFFIX}"
${FEATURE_OPTIONS}
-DBUILD_TESTING=OFF # Not enabled by default, but to be sure
)

View File

@ -1,7 +1,7 @@
{
"name": "gazebo",
"version-date": "2022-01-20",
"port-version": 3,
"port-version": 4,
"description": "Open source robotics simulator.",
"homepage": "http://gazebosim.org",
"license": "Apache-2.0",

View File

@ -1,13 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 96653ba..1afaafa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -80,7 +80,7 @@ endif()
if(YACMA_COMPILER_IS_MSVC)
# Disable the idiotic minmax macros on MSVC, some annoying warnings,
# enable the bigobj option and the WIN32_LEAN_AND_MEAN definition.
- list(APPEND PAGMO_CXX_FLAGS_DEBUG "-DNOMINMAX" "/wd4459" "/wd4127" "/wd4702" "/wd4251" "/bigobj" "-DWIN32_LEAN_AND_MEAN")
+ list(APPEND PAGMO_CXX_FLAGS_DEBUG "-DNOMINMAX" "/wd4459" "/wd4127" "/wd4702" "/wd4251" "/wd4701" "/bigobj" "-DWIN32_LEAN_AND_MEAN")
list(APPEND PAGMO_CXX_FLAGS_RELEASE "-DNOMINMAX" "/wd4459" "/wd4127" "/wd4702" "/wd4251" "/bigobj" "-DWIN32_LEAN_AND_MEAN")
# Enable strict conformance mode, if supported.
set(CMAKE_REQUIRED_QUIET TRUE)

View File

@ -1,20 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 96653ba..549d9d4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -141,6 +141,7 @@ endif()
# Boost setup.
include(PagmoFindBoost)
+if(0)
# Explanation: on MSVC, when building static libraries, it is good practice to link
# to the static runtime. CMake, however, is hard-coded to link to the dynamic runtime.
# Hence we hackishly replace the /MD flag with /MT. This is the approach suggested
@@ -161,6 +162,7 @@ if(YACMA_COMPILER_IS_MSVC AND PAGMO_BUILD_STATIC_LIBRARY)
endif()
endforeach()
endif()
+endif()
# List of source files.
set(PAGMO_SRC_FILES

View File

@ -0,0 +1,20 @@
diff --git a/cmake_modules/yacma/YACMACompilerLinkerSettings.cmake b/cmake_modules/yacma/YACMACompilerLinkerSettings.cmake
index 7d7aa1b..81c8bf6 100644
--- a/cmake_modules/yacma/YACMACompilerLinkerSettings.cmake
+++ b/cmake_modules/yacma/YACMACompilerLinkerSettings.cmake
@@ -95,7 +95,6 @@ if(NOT _YACMACompilerLinkerSettingsRun)
# NOTE: enable unconditionally, as it seems like the CMake
# machinery for detecting this fails. Perhaps the source code
# used for checking the flag emits warnings?
- list(APPEND _YACMA_CXX_FLAGS_DEBUG "-Werror")
# New warnings in clang 8.
# NOTE: a few issues with macros here, let's disable for now.
# _YACMA_CHECK_ENABLE_DEBUG_CXX_FLAG(-Wextra-semi-stmt)
@@ -180,7 +179,6 @@ if(NOT _YACMACompilerLinkerSettingsRun)
# Enable higher warning level than usual.
_YACMA_CHECK_ENABLE_DEBUG_CXX_FLAG(/W4)
# Treat warnings as errors.
- _YACMA_CHECK_ENABLE_DEBUG_CXX_FLAG(/WX)
endif()
# Set the cache variables.

View File

@ -0,0 +1,15 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 34bad69..dfb942d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -398,8 +398,8 @@ endif()
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/include/pagmo/config.hpp" @ONLY)
# Configure the doc files.
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen/Doxyfile.in" "${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen/Doxyfile" @ONLY)
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/sphinx/conf.py.in" "${CMAKE_CURRENT_SOURCE_DIR}/doc/sphinx/conf.py" @ONLY)
+# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen/Doxyfile.in" "${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen/Doxyfile" @ONLY)
+# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/sphinx/conf.py.in" "${CMAKE_CURRENT_SOURCE_DIR}/doc/sphinx/conf.py" @ONLY)
# This is just a simple counter variable, internal use only.
set(_PAGMO_TEST_NUM "0")

View File

@ -2,11 +2,12 @@ diff --git a/pagmo-config.cmake.in b/pagmo-config.cmake.in
index 9553fc8..cb5e90b 100644
--- a/pagmo-config.cmake.in
+++ b/pagmo-config.cmake.in
@@ -8,6 +8,7 @@ set(THREADS_PREFER_PTHREAD_FLAG YES)
@@ -8,6 +8,8 @@ set(THREADS_PREFER_PTHREAD_FLAG YES)
find_package(Threads REQUIRED)
unset(THREADS_PREFER_PTHREAD_FLAG)
include(PagmoFindBoost)
+find_package(TBB REQUIRED)
+include(CMakeFindDependencyMacro)
+find_dependency(TBB CONFIG)
@_PAGMO_CONFIG_OPTIONAL_DEPS@
# Restore original module path.
set(CMAKE_MODULE_PATH "${_PAGMO_CONFIG_OLD_MODULE_PATH}")

View File

@ -1,13 +1,13 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO esa/pagmo2
REF v2.16.1
SHA512 dac85a8525316e827df809d187d40f14dc20db7119796b7384d7855f83ba37e0bb595f6d8199053aac857460816929dd599c9d43802f2ed920a6f42dd2f16a03
REF v2.18.0
SHA512 026f038e979bb884bdc4e465bd60ffe60d3d74d38159a70897da7c890230450a0457a943e25c8bdb3f17bafdaa388a6a21f6d44502b4d08860dae6cb4e75a477
HEAD_REF master
PATCHES
"disable-C4701.patch"
"disable-md-override.patch"
"find-tbb.patch"
doxygen.patch
find-tbb.patch
disable-werror.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
@ -15,22 +15,23 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
nlopt PAGMO_WITH_NLOPT
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PAGMO_BUILD_STATIC_LIBRARY)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
${FEATURE_OPTIONS}
-DPAGMO_BUILD_TESTS=OFF
-DPAGMO_BUILD_BENCHMARKS=OFF
-DPAGMO_BUILD_TUTORIALS=OFF
-DPAGMO_WITH_EIGEN3=ON
-DPAGMO_BUILD_STATIC_LIBRARY=${PAGMO_BUILD_STATIC_LIBRARY}
)
vcpkg_install_cmake()
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/pagmo)
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/pagmo")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(INSTALL ${SOURCE_PATH}/COPYING.lgpl3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.lgpl3" "${SOURCE_PATH}/COPYING.gpl3")

View File

@ -1,14 +1,23 @@
{
"name": "pagmo2",
"version": "2.16.1",
"description": "A C++ platform to perform parallel computations of optimisation tasks (global and local) via the asynchronous generalized island model.",
"version": "2.18.0",
"description": "A C++ platform to perform parallel computations of optimization tasks (global and local) via the asynchronous generalized island model.",
"homepage": "https://esa.github.io/pagmo2/",
"license": "GPL-3.0-or-later OR LGPL-3.0-or-later",
"dependencies": [
"boost-any",
"boost-graph",
"boost-serialization",
"eigen3",
"tbb"
"tbb",
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
],
"features": {
"nlopt": {

View File

@ -1,40 +0,0 @@
project(tbb CXX)
file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*)
file(COPY ${SOURCES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/src)
include(${CMAKE_CURRENT_BINARY_DIR}/src/cmake/TBBBuild.cmake REQUIRED)
if(NOT BUILD_SHARED_LIBS)
set(TBB_STATIC_INCLUDE extra_inc=big_iron.inc)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(FORWARD_SDK_ROOT "SDKROOT=${CMAKE_OSX_SYSROOT}")
if(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
set(arch "arch=arm64")
endif()
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL CMAKE_SYSTEM_PROCESSOR)
set(arch "arch=${CMAKE_SYSTEM_PROCESSOR}")
if(CMAKE_CXX_COMPILER)
set(CPLUS "CPLUS=${CMAKE_CXX_COMPILER}")
endif()
if(CMAKE_C_COMPILER)
set(CONLY "CONLY=${CMAKE_C_COMPILER}")
endif()
endif()
endif()
tbb_build(TBB_ROOT ${CMAKE_CURRENT_BINARY_DIR}/src MAKE_ARGS ${arch} ${CPLUS} ${CONLY} ${TBB_STATIC_INCLUDE} ${FORWARD_SDK_ROOT})
set(SUBDIR ${CMAKE_CURRENT_BINARY_DIR}/tbb_cmake_build/tbb_cmake_build_subdir)
if(CMAKE_BUILD_TYPE STREQUAL "Release")
set(SUBDIR "${SUBDIR}_release")
else()
set(SUBDIR "${SUBDIR}_debug")
endif()
file(GLOB OUTPUTS ${SUBDIR}/*.so.* ${SUBDIR}/*.so ${SUBDIR}/*.a ${SUBDIR}/*.dylib ${SUBDIR}/*.dylib.*)
install(FILES ${OUTPUTS} DESTINATION lib)

View File

@ -1,13 +0,0 @@
diff --git a/src/tbb/cilk-tbb-interop.h b/src/tbb/cilk-tbb-interop.h
index 295734b..f35531e 100644
--- a/src/tbb/cilk-tbb-interop.h
+++ b/src/tbb/cilk-tbb-interop.h
@@ -29,6 +29,8 @@
#else
#ifdef IN_CILK_RUNTIME
#define CILK_EXPORT __declspec(dllexport)
+#elif defined(IN_CILK_STATIC)
+#define CILK_EXPORT /* nothing */
#else
#define CILK_EXPORT __declspec(dllimport)
#endif // IN_CILK_RUNTIME

View File

@ -3,136 +3,36 @@ set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO oneapi-src/oneTBB
REF eca91f16d7490a8abfdee652dadf457ec820cc37 # 2020_U3
SHA512 7144e1dc68304b5358e6ea330431b6f0c61fadb147efa353a5b242777d6fabf7b8cf99b79cffb51b49b911dd17a9f1879619d6eebdf319f23ec3235c89cffc25
HEAD_REF tbb_2019
PATCHES
fix-static-build.patch
terminate-when-buildtool-notfound.patch
REF v2021.5.0
SHA512 0e7b71022e397a6d7abb0cea106847935ae79a1e12a6976f8d038668c6eca8775ed971202c5bd518f7e517092b67af805cc5feb04b5c3a40e9fbf972cc703a46
HEAD_REF onetbb_2021
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
if (NOT VCPKG_TARGET_IS_WINDOWS)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
)
vcpkg_install_cmake()
# Settings for TBBConfigInternal.cmake.in
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(TBB_LIB_EXT a)
else()
if (VCPKG_TARGET_IS_LINUX)
set(TBB_LIB_EXT "so.2")
elseif(VCPKG_TARGET_IS_OSX)
set(TBB_LIB_EXT "dylib")
else()
set(TBB_LIB_EXT "so")
endif()
endif()
set(TBB_LIB_PREFIX lib)
else()
if (VCPKG_CRT_LINKAGE STREQUAL static)
set(RELEASE_CONFIGURATION Release-MT)
set(DEBUG_CONFIGURATION Debug-MT)
else()
set(RELEASE_CONFIGURATION Release)
set(DEBUG_CONFIGURATION Debug)
endif()
macro(CONFIGURE_PROJ_FILE arg)
set(CONFIGURE_FILE_NAME ${arg})
set(CONFIGURE_BAK_FILE_NAME ${arg}.bak)
if (NOT EXISTS ${CONFIGURE_BAK_FILE_NAME})
configure_file(${CONFIGURE_FILE_NAME} ${CONFIGURE_BAK_FILE_NAME} COPYONLY)
endif()
configure_file(${CONFIGURE_BAK_FILE_NAME} ${CONFIGURE_FILE_NAME} COPYONLY)
file(READ ${CONFIGURE_FILE_NAME} SLN_CONFIGURE)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
string(REPLACE "<ConfigurationType>DynamicLibrary<\/ConfigurationType>"
"<ConfigurationType>StaticLibrary<\/ConfigurationType>" SLN_CONFIGURE "${SLN_CONFIGURE}")
string(REPLACE "\/D_CRT_SECURE_NO_DEPRECATE"
"\/D_CRT_SECURE_NO_DEPRECATE \/DIN_CILK_STATIC" SLN_CONFIGURE "${SLN_CONFIGURE}")
else()
string(REPLACE "\/D_CRT_SECURE_NO_DEPRECATE"
"\/D_CRT_SECURE_NO_DEPRECATE \/DIN_CILK_RUNTIME" SLN_CONFIGURE "${SLN_CONFIGURE}")
endif()
file(WRITE ${CONFIGURE_FILE_NAME} "${SLN_CONFIGURE}")
endmacro()
CONFIGURE_PROJ_FILE(${SOURCE_PATH}/build/vs2013/tbb.vcxproj)
CONFIGURE_PROJ_FILE(${SOURCE_PATH}/build/vs2013/tbbmalloc.vcxproj)
CONFIGURE_PROJ_FILE(${SOURCE_PATH}/build/vs2013/tbbmalloc_proxy.vcxproj)
vcpkg_install_msbuild(
SOURCE_PATH ${SOURCE_PATH}
PROJECT_SUBPATH build/vs2013/makefile.sln
RELEASE_CONFIGURATION ${RELEASE_CONFIGURATION}
DEBUG_CONFIGURATION ${DEBUG_CONFIGURATION}
)
# Settings for TBBConfigInternal.cmake.in
set(TBB_LIB_EXT lib)
set(TBB_LIB_PREFIX)
endif()
file(COPY
${SOURCE_PATH}/include/tbb
${SOURCE_PATH}/include/serial
DESTINATION ${CURRENT_PACKAGES_DIR}/include)
# Settings for TBBConfigInternal.cmake.in
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
set(TBB_DEFAULT_COMPONENTS tbb tbbmalloc)
else()
set(TBB_DEFAULT_COMPONENTS tbb tbbmalloc tbbmalloc_proxy)
endif()
file(READ "${SOURCE_PATH}/include/tbb/tbb_stddef.h" _tbb_stddef)
string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_stddef}")
string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_stddef}")
string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_stddef}")
set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}")
set(TBB_RELEASE_DIR "\${_tbb_root}/lib")
set(TBB_DEBUG_DIR "\${_tbb_root}/debug/lib")
configure_file(
${SOURCE_PATH}/cmake/templates/TBBConfigInternal.cmake.in
${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake
@ONLY
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DTBB_TEST=OFF
-DTBB_STRICT=OFF
)
configure_file(
${SOURCE_PATH}/cmake/templates/TBBConfigVersion.cmake.in
${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfigVersion.cmake
@ONLY
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/TBB")
vcpkg_fixup_pkgconfig()
vcpkg_copy_pdbs()
file(REMOVE_RECURSE
"${CURRENT_PACKAGES_DIR}/share/doc"
"${CURRENT_PACKAGES_DIR}/debug/include"
"${CURRENT_PACKAGES_DIR}/debug/share"
# These are duplicate libraries provided on Windows -- users should use the tbb12 libraries instead
"${CURRENT_PACKAGES_DIR}/lib/tbb.lib"
"${CURRENT_PACKAGES_DIR}/debug/lib/tbb_debug.lib"
)
file(READ ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake _contents)
string(REPLACE
"get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)"
"get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)\nget_filename_component(_tbb_root \"\${_tbb_root}\" PATH)"
_contents
"${_contents}"
)
string(REPLACE
"set(_tbb_release_lib \"/${TBB_LIB_PREFIX}"
"set(_tbb_release_lib \"\${_tbb_root}/lib/${TBB_LIB_PREFIX}"
_contents
"${_contents}"
)
string(REPLACE
"set(_tbb_debug_lib \"/${TBB_LIB_PREFIX}"
"set(_tbb_debug_lib \"\${_tbb_root}/debug/lib/${TBB_LIB_PREFIX}"
_contents
"${_contents}"
)
file(READ "${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake" _contents)
file(WRITE "${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake" "
include(CMakeFindDependencyMacro)
find_dependency(Threads)
${_contents}")
string(REPLACE "SHARED IMPORTED)" "UNKNOWN IMPORTED)" _contents "${_contents}")
file(WRITE ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake "${_contents}")
file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb)
# Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@ -1,13 +0,0 @@
diff --git a/cmake/TBBBuild.cmake b/cmake/TBBBuild.cmake
index a2222e3..756d85c 100644
--- a/cmake/TBBBuild.cmake
+++ b/cmake/TBBBuild.cmake
@@ -158,7 +158,7 @@ function(tbb_build)
mark_as_advanced(TBB_MAKE_TOOL)
if (NOT TBB_MAKE_TOOL)
- message(STATUS "Intel TBB can not be built: required make-tool (${make_tool_name}) was not found")
+ message(FATAL_ERROR "Intel TBB can not be built: required make-tool (${make_tool_name}) was not found")
set(${tbb_build_CONFIG_DIR} ${tbb_build_CONFIG_DIR}-NOTFOUND PARENT_SCOPE)
return()
endif()

View File

@ -1,4 +0,0 @@
The package tbb provides CMake targets:
find_package(TBB CONFIG REQUIRED)
target_link_libraries(main PRIVATE TBB::tbb)

View File

@ -1,8 +1,18 @@
{
"name": "tbb",
"version-string": "2020_U3",
"port-version": 8,
"version": "2021.5.0",
"description": "Intel's Threading Building Blocks.",
"homepage": "https://github.com/01org/tbb",
"supports": "!(uwp | arm | arm64) | linux | osx"
"license": "Apache-2.0",
"supports": "(windows & !uwp) | linux | osx",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}

View File

@ -1,6 +1,15 @@
# Don't file if the bin folder exists. We need exe and custom files.
SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)
message(STATUS [=[
The usd port does not work the the version of Threading Building Blocks (tbb) currently chosen by vcpkg's baselines,
and does not expect to be updated to work with current versions soon. See
https://github.com/PixarAnimationStudios/USD/issues/1600
If you must use this port in your project, pin a version of tbb of 2020_U3 or older via a manifest file.
See https://vcpkg.io/en/docs/examples/versioning.getting-started.html for instructions.
]=])
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO PixarAnimationStudios/USD

View File

@ -1,7 +1,7 @@
{
"name": "usd",
"version-string": "20.08",
"port-version": 2,
"port-version": 3,
"description": "Universal Scene Description (USD) is an efficient, scalable system for authoring, reading, and streaming time-sampled scene description for interchange between graphics applications.",
"homepage": "https://github.com/PixarAnimationStudios/USD",
"supports": "!x86",

View File

@ -222,15 +222,6 @@ ecsutil:x64-uwp=fail
# Checks for gnu extension so only works with gcc.
elfutils:x64-osx=fail
elfutils:arm64-osx=fail
# embree creates common conflicting static library names when built in static mode, reported upstream:
# https://github.com/embree/embree/issues/331
embree2:x64-windows-static=skip
embree2:x64-windows-static-md=skip
# embree2 conflicts with embree3
embree2:x64-linux=skip
embree2:x64-osx=skip
embree2:arm64-osx=skip
embree2:arm64-osx=skip
epsilon:arm-uwp=fail
epsilon:x64-uwp=fail
faiss:arm64-windows=fail
@ -813,7 +804,10 @@ openmesh:arm-uwp=fail
openmesh:x64-uwp=fail
openscap:x64-windows-static=fail
openscap:x64-osx=fail
openscap:arm64-osx=fail
# https://github.com/AcademySoftwareFoundation/openvdb/issues/1362
# openvdb\openvdb\libopenvdb.lib : fatal error LNK1248: image size (109A36020) exceeds maximum allowable size (FFFFFFFF)
openvdb:x64-windows-static=fail
openvdb:x64-windows-static-md=fail
openvpn3:x64-osx=fail
openvpn3:arm64-osx=fail
openvr:arm64-windows=fail
@ -1142,7 +1136,16 @@ unicorn-lib:x64-uwp=fail
unittest-cpp:arm64-windows=fail
unittest-cpp:arm-uwp=fail
unittest-cpp:x64-uwp=fail
usd:x86-windows=fail
# USD has set official policy that they will not update to be compatible with TBB in the near term (https://github.com/PixarAnimationStudios/USD/issues/1600)
usd:arm64-windows=skip
usd:arm-uwp=skip
usd:x64-uwp=skip
usd:x64-windows=skip
usd:x64-windows-static=skip
usd:x64-windows-static-md=skip
usd:x64-linux=skip
usd:x64-osx=skip
usd:x86-windows=skip
uthenticode:arm-uwp=fail
uthenticode:x64-uwp=fail
v8:arm64-windows=fail

View File

@ -1322,7 +1322,7 @@
},
"cctag": {
"baseline": "1.0.2",
"port-version": 1
"port-version": 2
},
"cctz": {
"baseline": "2.3",
@ -2128,10 +2128,6 @@
"baseline": "0.186",
"port-version": 4
},
"embree2": {
"baseline": "2.17.7",
"port-version": 4
},
"embree3": {
"baseline": "3.12.2",
"port-version": 2
@ -2514,7 +2510,7 @@
},
"gazebo": {
"baseline": "2022-01-20",
"port-version": 3
"port-version": 4
},
"gcem": {
"baseline": "1.14.1",
@ -5509,7 +5505,7 @@
"port-version": 2
},
"pagmo2": {
"baseline": "2.16.1",
"baseline": "2.18.0",
"port-version": 0
},
"paho-mqtt": {
@ -7153,8 +7149,8 @@
"port-version": 0
},
"tbb": {
"baseline": "2020_U3",
"port-version": 8
"baseline": "2021.5.0",
"port-version": 0
},
"tcb-span": {
"baseline": "2021-12-15",
@ -7526,7 +7522,7 @@
},
"usd": {
"baseline": "20.08",
"port-version": 2
"port-version": 3
},
"usockets": {
"baseline": "0.8.1",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "e9166dee873ce930a3c5e12b544dc47583343221",
"version-semver": "1.0.2",
"port-version": 2
},
{
"git-tree": "979f28c0cc646b1a4c057ee810772a6b8964b65a",
"version-semver": "1.0.2",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "b1f5088e196340aad31ea3700aceae72df1407ae",
"version-date": "2022-01-20",
"port-version": 4
},
{
"git-tree": "094ba2b47c08f30d45b33081f8b2b3790b2ec070",
"version-date": "2022-01-20",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "fa28deef736ea34bcc41143a960e8be97653ba1d",
"version": "2.18.0",
"port-version": 0
},
{
"git-tree": "ea29ee58051fba73e950597ca2b0109dd6df0dec",
"version": "2.16.1",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "e2d94c971f648a21fa3068485c590b70bfa8b716",
"version": "2021.5.0",
"port-version": 0
},
{
"git-tree": "016aeb70aa2dfba55a141a928863a0191314d4a9",
"version-string": "2020_U3",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "c241a36daa1c8695be5e0d4a8a29f2cc304dd6b1",
"version-string": "20.08",
"port-version": 3
},
{
"git-tree": "177f2af7397316cc1fa92a72ea8992f6acca8dfb",
"version-string": "20.08",