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 · 6 comments
Closed

Issue with building DART example #46

hzyjerry opened this issue May 16, 2019 · 6 comments
Assignees
Projects
Milestone

Comments

@hzyjerry
Copy link

hzyjerry 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
Copy link
Author

The DART example I used is from: https://github.com/costashatz/magnum-examples/tree/dart/src/dart

@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
Copy link
Owner

mosra 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 as completed May 17, 2019
Physics automation moved this from TODO to Done May 17, 2019
@costashatz
Copy link
Contributor

@hzyjerry you should be able to find a newer (and hopefully) working example in mosra/magnum-examples#63..

@JhasketanYash
Copy link

Hi mosra,
I am trying to use DartIntegration for windows but could not find the DartIntegraiton files in Magnum.. is it available for window also ?

@mosra
Copy link
Owner

mosra commented Nov 4, 2019

@JhasketanYash can you elaborate on what's missing? The sources are inside this repository and DartIntegration gets built when you enable the WITH_DARTINTEGRATION CMake option. However, if you use the Vcpkg packages, then unfortunately DART is not available there, and thus neither DartIntegration -- you'd need to build DART, all its dependencies and the integration manually. This might be helpful -- https://dartsim.github.io/install_dart_on_windows.html -- but note they mark Windows support as experimental.

@JhasketanYash
Copy link

Thanks for the reply @mosra . I meant by vcpkg. It took me a while to figure out that I need to download compile Dart Integration in the Magnum. _

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Physics
  
Done
Development

No branches or pull requests

4 participants