I’m trying to add support for the Hailo8L module for my custom linux image made with Buildroot. I’m using the following hailort.mk file to tell buildroot how to configure and build the library, but I’m getting hung up on some of the error messages/how to configure CMake. Any pointer in the right direction is appreciated!
-- Target | Description
-- ---------+--------------------------------------------------------------
-- install | Install Eigen. Headers will be installed to:
-- | <CMAKE_INSTALL_PREFIX>/<INCLUDE_INSTALL_DIR>
-- | Using the following values:
-- | CMAKE_INSTALL_PREFIX: /usr
-- | INCLUDE_INSTALL_DIR: include/eigen3
-- | Change the install location of Eigen headers using:
-- | cmake . -DCMAKE_INSTALL_PREFIX=yourprefix
-- | Or:
-- | cmake . -DINCLUDE_INSTALL_DIR=yourdir
-- doc | Generate the API documentation, requires Doxygen & LaTeX
-- blas | Build BLAS library (not the same thing as Eigen)
-- uninstall| Remove files installed by the install target
-- ---------+--------------------------------------------------------------
--
-- Configuring done
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "hef_proto" that is not in any export set.
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "profiler_proto" that is not in any export set.
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "scheduler_mon_proto" that is not in any export set.
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "spdlog" that is not in any export set.
-- Generating done
CMake Generate step failed. Build files cannot be regenerated correctly.
make[1]: *** [package/pkg-generic.mk:279: /home/nerves/project/build/hailort-4.19.0/.stamp_configured] Error 1
make: *** [Makefile:23: _all] Error 2
The errors in your Buildroot integration for HailoRT indicate that some required targets (hef_proto, profiler_proto, scheduler_mon_proto, spdlog) are not correctly included in the CMake configuration.
Here’s how to address these issues step by step:
Include Dependencies: Ensure the missing dependencies are included in your Buildroot configuration as packages. For example:
BR2_PACKAGE_SPDLOG=y
If they are submodules in the HailoRT repository, make sure to fetch and initialize them.
Modify hailort.mk: Update your hailort.mk file to include the missing targets and dependencies. Here’s an example:
By following these steps and adjusting your Buildroot configuration, you should be able to resolve the integration issues and get HailoRT working smoothly.
Let me know if you have any further questions or need additional assistance!
Thanks for getting back to me! Unfortunately I tried these additional build flags and buildroot configurations and was not successful in getting the package to build.
For reference, I have added all of the dependencies to the buildroot defconfig:
And updated the .mk file as you suggested. One area I realize I was previously had a mistake was the git submodules, which I have fixed. However, the inclusion of the other build flags did not change the behavior of the build. The errors are still the same.
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/nerves/project/host/bin/aarch64-nerves-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/nerves/project/host/bin/aarch64-nerves-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building protobuf::protoc...
-- Found Protobuf: /home/nerves/project/build/hailort-v4.19.0/hailort/external/protobuf-install/bin/protoc-3.21.12.0 (found version "3.21.12.0")
--
-- 3.21.12.0
-- Performing Test protobuf_HAVE_LD_VERSION_SCRIPT
-- Performing Test protobuf_HAVE_LD_VERSION_SCRIPT - Success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test protobuf_HAVE_BUILTIN_ATOMICS
-- Performing Test protobuf_HAVE_BUILTIN_ATOMICS - Success
-- Build spdlog: 1.14.1
-- Build type: Release
CMake Warning (dev) at hailort/cmake/external/eigen.cmake:23 (option):
Policy CMP0077 is not set: option() honors normal variables. Run "cmake
--help-policy CMP0077" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
For compatibility with older versions of CMake, option is clearing the
normal variable 'CMAKE_Fortran_COMPILER'.
Call Stack (most recent call first):
hailort/libhailort/src/CMakeLists.txt:10 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Performing Test EIGEN_COMPILER_SUPPORT_CPP11
-- Performing Test EIGEN_COMPILER_SUPPORT_CPP11 - Success
-- Performing Test COMPILER_SUPPORT_std=cpp03
-- Performing Test COMPILER_SUPPORT_std=cpp03 - Success
-- Performing Test standard_math_library_linked_to_automatically
-- Performing Test standard_math_library_linked_to_automatically - Success
-- Standard libraries to link to explicitly: none
-- Performing Test COMPILER_SUPPORT_WERROR
-- Performing Test COMPILER_SUPPORT_WERROR - Success
-- Performing Test COMPILER_SUPPORT_pedantic
-- Performing Test COMPILER_SUPPORT_pedantic - Success
-- Performing Test COMPILER_SUPPORT_Wall
-- Performing Test COMPILER_SUPPORT_Wall - Success
-- Performing Test COMPILER_SUPPORT_Wextra
-- Performing Test COMPILER_SUPPORT_Wextra - Success
-- Performing Test COMPILER_SUPPORT_Wundef
-- Performing Test COMPILER_SUPPORT_Wundef - Success
-- Performing Test COMPILER_SUPPORT_Wcastalign
-- Performing Test COMPILER_SUPPORT_Wcastalign - Success
-- Performing Test COMPILER_SUPPORT_Wcharsubscripts
-- Performing Test COMPILER_SUPPORT_Wcharsubscripts - Success
-- Performing Test COMPILER_SUPPORT_Wnonvirtualdtor
-- Performing Test COMPILER_SUPPORT_Wnonvirtualdtor - Success
-- Performing Test COMPILER_SUPPORT_Wunusedlocaltypedefs
-- Performing Test COMPILER_SUPPORT_Wunusedlocaltypedefs - Success
-- Performing Test COMPILER_SUPPORT_Wpointerarith
-- Performing Test COMPILER_SUPPORT_Wpointerarith - Success
-- Performing Test COMPILER_SUPPORT_Wwritestrings
-- Performing Test COMPILER_SUPPORT_Wwritestrings - Success
-- Performing Test COMPILER_SUPPORT_Wformatsecurity
-- Performing Test COMPILER_SUPPORT_Wformatsecurity - Success
-- Performing Test COMPILER_SUPPORT_Wshorten64to32
-- Performing Test COMPILER_SUPPORT_Wshorten64to32 - Failed
-- Performing Test COMPILER_SUPPORT_Wlogicalop
-- Performing Test COMPILER_SUPPORT_Wlogicalop - Success
-- Performing Test COMPILER_SUPPORT_Wenumconversion
-- Performing Test COMPILER_SUPPORT_Wenumconversion - Success
-- Performing Test COMPILER_SUPPORT_Wcpp11extensions
-- Performing Test COMPILER_SUPPORT_Wcpp11extensions - Success
-- Performing Test COMPILER_SUPPORT_Wdoublepromotion
-- Performing Test COMPILER_SUPPORT_Wdoublepromotion - Success
-- Performing Test COMPILER_SUPPORT_Wshadow
-- Performing Test COMPILER_SUPPORT_Wshadow - Success
-- Performing Test COMPILER_SUPPORT_Wnopsabi
-- Performing Test COMPILER_SUPPORT_Wnopsabi - Success
-- Performing Test COMPILER_SUPPORT_Wnovariadicmacros
-- Performing Test COMPILER_SUPPORT_Wnovariadicmacros - Success
-- Performing Test COMPILER_SUPPORT_Wnolonglong
-- Performing Test COMPILER_SUPPORT_Wnolonglong - Success
-- Performing Test COMPILER_SUPPORT_fnochecknew
-- Performing Test COMPILER_SUPPORT_fnochecknew - Success
-- Performing Test COMPILER_SUPPORT_fnocommon
-- Performing Test COMPILER_SUPPORT_fnocommon - Success
-- Performing Test COMPILER_SUPPORT_fstrictaliasing
-- Performing Test COMPILER_SUPPORT_fstrictaliasing - Success
-- Performing Test COMPILER_SUPPORT_wd981
-- Performing Test COMPILER_SUPPORT_wd981 - Failed
-- Performing Test COMPILER_SUPPORT_wd2304
-- Performing Test COMPILER_SUPPORT_wd2304 - Failed
-- Performing Test COMPILER_SUPPORT_STRICTANSI
-- Performing Test COMPILER_SUPPORT_STRICTANSI - Failed
-- Performing Test COMPILER_SUPPORT_Qunusedarguments
-- Performing Test COMPILER_SUPPORT_Qunusedarguments - Failed
-- Performing Test COMPILER_SUPPORT_ansi
-- Performing Test COMPILER_SUPPORT_ansi - Success
-- Performing Test COMPILER_SUPPORT_OPENMP
-- Performing Test COMPILER_SUPPORT_OPENMP - Success
-- Found unsuitable Qt version "" from NOTFOUND
-- Qt4 not found, so disabling the mandelbrot and opengl demos
-- Could NOT find CHOLMOD (missing: CHOLMOD_INCLUDES CHOLMOD_LIBRARIES)
-- Could NOT find UMFPACK (missing: UMFPACK_INCLUDES UMFPACK_LIBRARIES)
-- Could NOT find KLU (missing: KLU_INCLUDES KLU_LIBRARIES)
-- Could NOT find SuperLU (missing: SUPERLU_INCLUDES SUPERLU_LIBRARIES SUPERLU_VERSION_OK) (Required is at least version "4.0")
-- Checking for one of the modules 'hwloc'
-- A version of Pastix has been found but pastix_nompi.h does not exist in the include directory. Because Eigen tests require a version without MPI, we disable the Pastix backend.
--
-- Configured Eigen 3.4.0
--
-- Available targets (use: make TARGET):
-- ---------+--------------------------------------------------------------
-- Target | Description
-- ---------+--------------------------------------------------------------
-- install | Install Eigen. Headers will be installed to:
-- | <CMAKE_INSTALL_PREFIX>/<INCLUDE_INSTALL_DIR>
-- | Using the following values:
-- | CMAKE_INSTALL_PREFIX: /usr
-- | INCLUDE_INSTALL_DIR: include/eigen3
-- | Change the install location of Eigen headers using:
-- | cmake . -DCMAKE_INSTALL_PREFIX=yourprefix
-- | Or:
-- | cmake . -DINCLUDE_INSTALL_DIR=yourdir
-- doc | Generate the API documentation, requires Doxygen & LaTeX
-- blas | Build BLAS library (not the same thing as Eigen)
-- uninstall| Remove files installed by the install target
-- ---------+--------------------------------------------------------------
--
-- Configuring done
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "hef_proto" that is not in any export set.
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "profiler_proto" that is not in any export set.
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "scheduler_mon_proto" that is not in any export set.
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "spdlog" that is not in any export set.
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
BUILD_DOC
BUILD_DOCS
BUILD_EXAMPLE
BUILD_EXAMPLES
BUILD_TEST
BUILD_TESTS
CMake Generate step failed. Build files cannot be regenerated correctly.
make[1]: *** [package/pkg-generic.mk:279: /home/nerves/project/build/hailort-v4.19.0/.stamp_configured] Error 1
make: *** [Makefile:23: _all] Error 2
It seems to me that the install does not include the protobuf files for some reason, I wonder if I need to add an additional build flag or something. Please let me know if you have any information on the next steps.
The errors are entirely the same, with the addition of a warning that the variables were not used.
# ...
# More above, but it is the same as log file in post above
# ...
-- Configuring done
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "hef_proto" that is not in any export set.
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "profiler_proto" that is not in any export set.
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "scheduler_mon_proto" that is not in any export set.
CMake Error: install(EXPORT "HailoRTTargets" ...) includes target "libhailort" which requires target "spdlog" that is not in any export set.
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
BUILD_DOC
BUILD_DOCS
BUILD_EXAMPLE
BUILD_EXAMPLES
BUILD_TEST
BUILD_TESTS
Eigen3_DIR
PROTOBUF_DIR
SPDLOG_DIR
CMake Generate step failed. Build files cannot be regenerated correctly.
make[1]: *** [package/pkg-generic.mk:279: /home/nerves/project/build/hailort-v4.19.0/.stamp_configured] Error 1
make: *** [Makefile:23: _all] Error