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

Issue with building DART example #46

Closed
hzyjerry opened this issue May 16, 2019 · 2 comments

Comments

Projects
2 participants
@hzyjerry
Copy link

commented May 16, 2019

When building DART example with magnum-integration, I encountered the following issue

CMake Error at /usr/local/Cellar/cmake/3.14.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find MagnumIntegration (missing: Dart) Call Stack (most recent call first): /usr/local/Cellar/cmake/3.14.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE) /Users/jerryhe/Desktop/Projects/habitat/magnum-examples/modules/FindMagnumIntegration.cmake (find_package_handle_standard_args)

I use magnum-integration installed from brew on MacOS.

I also tried building magnum-integration from source, and got the same issue.

My DART example's cmake file looks like the following:

#   This file is part of Magnum.
#
#   Original authors — credit is appreciated but not required:
#
#       2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 —
#           Vladimír Vondruš <mosra@centrum.cz>
#       2019 — Konstantinos Chatzilygeroudis <costashatz@gmail.com>
#
#   This is free and unencumbered software released into the public domain.
#
#   Anyone is free to copy, modify, publish, use, compile, sell, or distribute
#   this software, either in source code form or as a compiled binary, for any
#   purpose, commercial or non-commercial, and by any means.
#
#   In jurisdictions that recognize copyright laws, the author or authors of
#   this software dedicate any and all copyright interest in the software to
#   the public domain. We make this dedication for the benefit of the public
#   at large and to the detriment of our heirs and successors. We intend this
#   dedication to be an overt act of relinquishment in perpetuity of all
#   present and future rights to this software under copyright law.
#
#   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
#   THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
#   IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
#   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#

cmake_minimum_required(VERSION 3.1)

project(MagnumDartExample)

# Add module path in case this is project root
if(PROJECT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
    set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/../../modules/")
endif()

if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID)
    set(DARTEXAMPLE_DIR ".")
else()
    set(DARTEXAMPLE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
endif()

# We need the URDF loader of DART for this example
find_package(DART 6.0.0 CONFIG REQUIRED OPTIONAL_COMPONENTS io-urdf utils-urdf)

if(NOT (DART_utils-urdf_FOUND OR DART_io-urdf_FOUND) OR (DART_VERSION STRLESS 6.0.0))
    message(FATAL_ERROR "DART version >= 6 and DART urdf library are required for this example!")
endif()

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake
               ${CMAKE_CURRENT_BINARY_DIR}/configure.h)

find_package(Magnum REQUIRED
    GL
    MeshTools
    Primitives
    SceneGraph
    Sdl2Application
    Shaders
    Trade)
find_package(MagnumIntegration REQUIRED Dart)


set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS ON)

add_executable(magnum-dart DartExample.cpp)
target_include_directories(magnum-dart PUBLIC ${DART_INCLUDE_DIRS} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
# target_compile_options(magnum-dart PUBLIC -march=native -faligned-new)
target_link_libraries(magnum-dart PRIVATE
    Magnum::Application
    Magnum::MeshTools
    Magnum::Magnum
    Magnum::SceneGraph
    Magnum::Primitives
    Magnum::Shaders
    MagnumIntegration::Dart
    ${DART_LIBRARIES})

install(TARGETS magnum-dart DESTINATION ${MAGNUM_BINARY_INSTALL_DIR})

I wonder if there's anything that I'm missing. Thanks for the help!

@hzyjerry

This comment has been minimized.

Copy link
Author

commented May 16, 2019

@mosra mosra added this to the 2019.0b milestone May 17, 2019

@mosra mosra added this to TODO in Physics via automation May 17, 2019

@mosra mosra self-assigned this May 17, 2019

@mosra

This comment has been minimized.

Copy link
Owner

commented May 17, 2019

Uh oh, sorry about that -- when the integration was contributed, the dartsim Homebrew package was not in an usable state so we couldn't depend on it. Now it is, so I enabled the DartIntegration in the package (see 5d55699). All you should need to do now is to run

brew update
brew install --HEAD mosra/magnum/magnum-integration

again. If everything goes well, it will pull in the new DART-related dependencies (there's quite a lot of them) and put MagnumDartIntegration.dylib into /usr/local/lib.

@mosra mosra closed this May 17, 2019

Physics automation moved this from TODO to Done May 17, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.