Skip to content

Build from source without docker, missing:stdgpu::stdgpu #140

@JalmaGit

Description

@JalmaGit

Hi, I am trying to build from Source without docker. First time I got error due to stdgpu error. This was fixed with the given link nvidia-isaac/nvblox#69. I also had to go to the isaac_ros_nvblox/nvblox_ros CMakeList and change stdgpu to nvblox_stdgpu to make it build. Now the library fails with this error

CMake Error at /home/cerberus/Workspaces/isaac_ros_ws/install/nvblox_ros/share/nvblox_ros/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package):
  Found package configuration file:

    /home/cerberus/Workspaces/isaac_ros_ws/install/nvblox_ros/share/nvblox/cmake/nvbloxConfig.cmake

  but it set nvblox_FOUND to FALSE so package "nvblox" is considered to be
  NOT FOUND.  Reason given by package:

  The following imported targets are referenced, but are missing:
  stdgpu::stdgpu

Call Stack (most recent call first):
  /home/cerberus/Workspaces/isaac_ros_ws/install/nvblox_ros/share/nvblox_ros/cmake/nvblox_rosConfig.cmake:41 (include)
  /opt/ros/humble/share/ament_cmake_auto/cmake/ament_auto_find_build_dependencies.cmake:67 (find_package)
  CMakeLists.txt:22 (ament_auto_find_build_dependencies)

I then checked the nvbloxConfig.cmake and this is how it looks

# Generated by CMake

if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
   message(FATAL_ERROR "CMake >= 3.0.0 required")
endif()
if(CMAKE_VERSION VERSION_LESS "3.0.0")
   message(FATAL_ERROR "CMake >= 3.0.0 required")
endif()
cmake_policy(PUSH)
cmake_policy(VERSION 3.0.0...3.29)
#----------------------------------------------------------------
# Generated CMake target import file.
#----------------------------------------------------------------

# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)

# Protect against multiple inclusion, which would fail when already imported targets are added once more.
set(_cmake_targets_defined "")
set(_cmake_targets_not_defined "")
set(_cmake_expected_targets "")
foreach(_cmake_expected_target IN ITEMS nvblox::nvblox_lib nvblox::nvblox_gpu_hash nvblox::nvblox_datasets nvblox::nvblox_stdgpu nvblox::nvblox_eigen nvblox::fuse_3dmatch nvblox::fuse_replica)
  list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
  if(TARGET "${_cmake_expected_target}")
    list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
  else()
    list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
  endif()
endforeach()
unset(_cmake_expected_target)
if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
  unset(_cmake_targets_defined)
  unset(_cmake_targets_not_defined)
  unset(_cmake_expected_targets)
  unset(CMAKE_IMPORT_FILE_VERSION)
  cmake_policy(POP)
  return()
endif()
if(NOT _cmake_targets_defined STREQUAL "")
  string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
  string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
  message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
endif()
unset(_cmake_targets_defined)
unset(_cmake_targets_not_defined)
unset(_cmake_expected_targets)


# Compute the installation prefix relative to this file.
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
if(_IMPORT_PREFIX STREQUAL "/")
  set(_IMPORT_PREFIX "")
endif()

# Create imported target nvblox::nvblox_lib
add_library(nvblox::nvblox_lib SHARED IMPORTED)

set_target_properties(nvblox::nvblox_lib PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include/nvblox"
  INTERFACE_LINK_LIBRARIES "glog::glog;gflags;nvblox::nvblox_eigen;CUDA::cudart;nvblox::nvblox_gpu_hash"
)

# Create imported target nvblox::nvblox_gpu_hash
add_library(nvblox::nvblox_gpu_hash STATIC IMPORTED)

set_target_properties(nvblox::nvblox_gpu_hash PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/nvblox"
  INTERFACE_LINK_LIBRARIES "nvblox::nvblox_stdgpu;nvblox::nvblox_eigen;\$<LINK_ONLY:glog::glog>;\$<LINK_ONLY:gflags>"
)

# Create imported target nvblox::nvblox_datasets
add_library(nvblox::nvblox_datasets SHARED IMPORTED)

set_target_properties(nvblox::nvblox_datasets PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include/nvblox"
  INTERFACE_LINK_LIBRARIES "nvblox::nvblox_lib"
)

# Create imported target nvblox::nvblox_stdgpu
add_library(nvblox::nvblox_stdgpu INTERFACE IMPORTED)

set_target_properties(nvblox::nvblox_stdgpu PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/stdgpu;${_IMPORT_PREFIX}/include/nvblox"
  INTERFACE_LINK_LIBRARIES "stdgpu::stdgpu"
)

# Create imported target nvblox::nvblox_eigen
add_library(nvblox::nvblox_eigen INTERFACE IMPORTED)

set_target_properties(nvblox::nvblox_eigen PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/eigen3;${_IMPORT_PREFIX}/include/nvblox"
  INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "include/eigen3"
)

# Create imported target nvblox::fuse_3dmatch
add_executable(nvblox::fuse_3dmatch IMPORTED)

set_target_properties(nvblox::fuse_3dmatch PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/nvblox"
)

# Create imported target nvblox::fuse_replica
add_executable(nvblox::fuse_replica IMPORTED)

set_target_properties(nvblox::fuse_replica PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/nvblox"
)

# Load information for each installed configuration.
file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/nvbloxTargets-*.cmake")
foreach(_cmake_config_file IN LISTS _cmake_config_files)
  include("${_cmake_config_file}")
endforeach()
unset(_cmake_config_file)
unset(_cmake_config_files)

# Cleanup temporary variables.
set(_IMPORT_PREFIX)

# Loop over all imported files and verify that they actually exist
foreach(_cmake_target IN LISTS _cmake_import_check_targets)
  if(CMAKE_VERSION VERSION_LESS "3.28"
      OR NOT DEFINED _cmake_import_check_xcframework_for_${_cmake_target}
      OR NOT IS_DIRECTORY "${_cmake_import_check_xcframework_for_${_cmake_target}}")
    foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
      if(NOT EXISTS "${_cmake_file}")
        message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
   \"${_cmake_file}\"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   \"${CMAKE_CURRENT_LIST_FILE}\"
but not all the files it references.
")
      endif()
    endforeach()
  endif()
  unset(_cmake_file)
  unset("_cmake_import_check_files_for_${_cmake_target}")
endforeach()
unset(_cmake_target)
unset(_cmake_import_check_targets)

# Make sure the targets which have been exported in some other
# export set exist.
unset(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets)
foreach(_target "stdgpu::stdgpu" )
  if(NOT TARGET "${_target}" )
    set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets "${${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets} ${_target}")
  endif()
endforeach()

if(DEFINED ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets)
  if(CMAKE_FIND_PACKAGE_NAME)
    set( ${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
    set( ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "The following imported targets are referenced, but are missing: ${${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets}")
  else()
    message(FATAL_ERROR "The following imported targets are referenced, but are missing: ${${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets}")
  endif()
endif()
unset(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets)

# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)

Any ideas on how to fix this?

Hardware Info:
Jetson Orin Nano - Jetpack 6.2 - Ubuntu 22.04
Cuda 12.6

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions