Closed Xenox003 closed 2 years ago
puh, weird, normally CMake should find it without problems, when it's in /usr/include. Just to make sure the header must be on your build system, it doesn't need to be present on the PI then, unless your PI is also your build system.
Building it directly on the PI, as you can see in the video the ladspa.h header is there and cmake cannot find it for some reason: https://streamable.com/wr0oiw
Also tested it on debian, same problem
hm... what if you remove the check in piejam/piejam_libs/audio/CMakeLists.txt just remove all those lines:
include(CheckIncludeFile) check_include_file("ladspa.h" LADSPA_HEADER) if(NOT LADSPA_HEADER) message(FATAL_ERROR "LADSPA header not found") endif()
i also would suggest not to build inside the source directory. create a build folder beside the source directory, e.g. piejam_build and then call inside the build folder:
cmake -DCMAKE_BUILD_TYPE=Release ../piejam
Hi, thanks for the suggestion of build the app in a seperate dir, i commented the lines doing the check. I needed to install some missing libs and boom, it was building.
Currently letting make run over that, lets see how that works out. Thanks!
Looks like theres soe problem with MIPP, anyone know whats wrong here?
Warning Long log incoming:
Scanning dependencies of target piejam_system
[ 0%] Building CXX object piejam_libs/system/CMakeFiles/piejam_system.dir/src/piejam/system/avg_cpu_load_tracker.cpp.o
[ 0%] Building CXX object piejam_libs/system/CMakeFiles/piejam_system.dir/src/piejam/system/cpu_load.cpp.o
[ 1%] Building CXX object piejam_libs/system/CMakeFiles/piejam_system.dir/src/piejam/system/cpu_temp.cpp.o
[ 1%] Building CXX object piejam_libs/system/CMakeFiles/piejam_system.dir/src/piejam/system/dll.cpp.o
[ 1%] Building CXX object piejam_libs/system/CMakeFiles/piejam_system.dir/src/piejam/system/device.cpp.o
[ 2%] Linking CXX static library libpiejam_system.a
[ 2%] Built target piejam_system
Scanning dependencies of target piejam_thread
[ 2%] Building CXX object piejam_libs/thread/CMakeFiles/piejam_thread.dir/src/piejam/thread/affinity.cpp.o
[ 2%] Building CXX object piejam_libs/thread/CMakeFiles/piejam_thread.dir/src/piejam/thread/configuration.cpp.o
[ 3%] Building CXX object piejam_libs/thread/CMakeFiles/piejam_thread.dir/src/piejam/thread/name.cpp.o
[ 3%] Building CXX object piejam_libs/thread/CMakeFiles/piejam_thread.dir/src/piejam/thread/priority.cpp.o
[ 3%] Building CXX object piejam_libs/thread/CMakeFiles/piejam_thread.dir/src/piejam/thread/semaphore.cpp.o
[ 4%] Linking CXX static library libpiejam_thread.a
[ 4%] Built target piejam_thread
Scanning dependencies of target piejam_numeric
[ 4%] Building CXX object piejam_libs/numeric/CMakeFiles/piejam_numeric.dir/src/piejam/numeric/dft.cpp.o
[ 5%] Linking CXX static library libpiejam_numeric.a
[ 5%] Built target piejam_numeric
Scanning dependencies of target piejam_audio
[ 5%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/alsa/get_pcm_io_descriptors.cpp.o
[ 5%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/alsa/get_set_hw_params.cpp.o
[ 6%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/alsa/pcm_io.cpp.o
[ 6%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/alsa/process_step.cpp.o
[ 6%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/components/amplifier.cpp.o
[ 7%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/components/level_meter.cpp.o
[ 7%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/components/pan.cpp.o
[ 7%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/components/stereo_balance.cpp.o
[ 8%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/cpu_load_meter.cpp.o
[ 8%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/device_manager.cpp.o
[ 8%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/audio_slice.cpp.o
[ 9%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/clip_processor.cpp.o
[ 9%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/dag.cpp.o
[ 9%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/event_to_audio_processor.cpp.o
[ 9%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/export_graph_as_dot.cpp.o
[ 10%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/graph.cpp.o
[ 10%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/graph_algorithms.cpp.o
[ 10%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/graph_to_dag.cpp.o
[ 11%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/identity_processor.cpp.o
[ 11%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/input_processor.cpp.o
[ 11%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/level_meter_processor.cpp.o
[ 12%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/mix_processor.cpp.o
In file included from /home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/slice_algorithms.h:13,
from /home/xenox003/PieJamTest/piejam/piejam_libs/audio/src/piejam/audio/engine/mix_processor.cpp:10:
/usr/include/boost/hof/capture.hpp: In instantiation of ‘constexpr decltype (boost::hof::detail::capture_invoke<F, Pack>(static_cast<F&&>(f), (Pack&&)(static_cast<const Pack&>((* boost::hof::always(declval<boost::hof::detail::capture_pack<Pack>::fit_const_this_type>())(f)))))) boost::hof::detail::capture_pack<Pack>::operator()(F) const [with F = std::plus<void>; Pack = boost::hof::detail::pack_base<boost::hof::detail::seq<0>, mipp::Reg<float> >; decltype (boost::hof::detail::capture_invoke<F, Pack>(static_cast<F&&>(f), (Pack&&)(static_cast<const Pack&>((* boost::hof::always(declval<boost::hof::detail::capture_pack<Pack>::fit_const_this_type>())(f)))))) = boost::hof::detail::capture_invoke<std::plus<void>, boost::hof::detail::pack_base<boost::hof::detail::seq<0>, mipp::Reg<float> > >; boost::hof::detail::capture_pack<Pack>::fit_const_this_type = const boost::hof::detail::capture_pack<boost::hof::detail::pack_base<boost::hof::detail::seq<0>, mipp::Reg<float> > >*]’:
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/slice_algorithms.h:48:53: required from ‘constexpr piejam::audio::engine::slice<T> piejam::audio::engine::detail::slice_add<T>::operator()(const typename piejam::audio::engine::slice<T>::span_t&, T) const [with T = float; typename piejam::audio::engine::slice<T>::span_t = std::span<const float, 4294967295>]’
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/slice_algorithms.h:60:23: required from ‘constexpr piejam::audio::engine::slice<T> piejam::audio::engine::detail::slice_add<T>::operator()(T, const typename piejam::audio::engine::slice<T>::span_t&) const [with T = float; typename piejam::audio::engine::slice<T>::span_t = std::span<const float, 4294967295>]’
/usr/include/c++/10/bits/invoke.h:60:36: required from ‘constexpr _Res std::__invoke_impl(std::__invoke_other, _Fn&&, _Args&& ...) [with _Res = piejam::audio::engine::slice<float>; _Fn = piejam::audio::engine::detail::slice_add<float>; _Args = {const float&, const std::span<const float, 4294967295>&}]’
/usr/include/c++/10/bits/invoke.h:95:40: required from ‘constexpr typename std::__invoke_result<_Functor, _ArgTypes>::type std::__invoke(_Callable&&, _Args&& ...) [with _Callable = piejam::audio::engine::detail::slice_add<float>; _Args = {const float&, const std::span<const float, 4294967295>&}; typename std::__invoke_result<_Functor, _ArgTypes>::type = piejam::audio::engine::slice<float>]’
/usr/include/c++/10/variant:1020:24: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/10/variant:955:48: recursively required from ‘static constexpr void std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...), __dimensions ...>, std::integer_sequence<unsigned int, _Idxs ...> >::_S_apply_single_alt(_Tp&, _Tp*) [with bool __do_cookie = false; unsigned int __index = 0; _Tp = std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<piejam::audio::engine::slice<float> > (*)(piejam::audio::engine::detail::slice_add<float>&&, const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&), 2>; _Result_type = std::__detail::__variant::__deduce_visit_result<piejam::audio::engine::slice<float> >; _Visitor = piejam::audio::engine::detail::slice_add<float>&&; unsigned int ...__dimensions = {2, 2}; _Variants = {const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&}; unsigned int ...__indices = {}]’
/usr/include/c++/10/variant:955:48: required from ‘constexpr const _Array_type std::__detail::__variant::__gen_vtable<std::__detail::__variant::__deduce_visit_result<piejam::audio::engine::slice<float> >, piejam::audio::engine::detail::slice_add<float>&&, const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&>::_S_vtable’
/usr/include/c++/10/variant:1699:45: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with _Result_type = std::__detail::__variant::__deduce_visit_result<piejam::audio::engine::slice<float> >; _Visitor = piejam::audio::engine::detail::slice_add<float>; _Variants = {const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&}]’
/usr/include/c++/10/variant:1718:35: required from ‘constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = piejam::audio::engine::detail::slice_add<float>; _Variants = {const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&}]’
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/slice_algorithms.h:323:22: required from ‘constexpr piejam::audio::engine::slice<T> piejam::audio::engine::add(const piejam::audio::engine::slice<T>&, const piejam::audio::engine::slice<T>&, const std::span<_Type, 4294967295>&) [with T = float]’
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/src/piejam/audio/engine/mix_processor.cpp:37:72: required from here
/usr/include/boost/hof/capture.hpp:152:20: note: parameter passing for argument of type ‘boost::hof::detail::capture_invoke<std::plus<void>, boost::hof::detail::pack_base<boost::hof::detail::seq<0>, mipp::Reg<float> > >’ when C++17 is enabled changed to match C++14 in GCC 10.1
152 | constexpr auto operator()(F f) const BOOST_HOF_SFINAE_RETURNS
| ^~~~~~~~
[ 12%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/multiply_processor.cpp.o
In file included from /home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/slice_algorithms.h:13,
from /home/xenox003/PieJamTest/piejam/piejam_libs/audio/src/piejam/audio/engine/multiply_processor.cpp:10:
/usr/include/boost/hof/capture.hpp: In instantiation of ‘constexpr decltype (boost::hof::detail::capture_invoke<F, Pack>(static_cast<F&&>(f), (Pack&&)(static_cast<const Pack&>((* boost::hof::always(declval<boost::hof::detail::capture_pack<Pack>::fit_const_this_type>())(f)))))) boost::hof::detail::capture_pack<Pack>::operator()(F) const [with F = std::multiplies<void>; Pack = boost::hof::detail::pack_base<boost::hof::detail::seq<0>, mipp::Reg<float> >; decltype (boost::hof::detail::capture_invoke<F, Pack>(static_cast<F&&>(f), (Pack&&)(static_cast<const Pack&>((* boost::hof::always(declval<boost::hof::detail::capture_pack<Pack>::fit_const_this_type>())(f)))))) = boost::hof::detail::capture_invoke<std::multiplies<void>, boost::hof::detail::pack_base<boost::hof::detail::seq<0>, mipp::Reg<float> > >; boost::hof::detail::capture_pack<Pack>::fit_const_this_type = const boost::hof::detail::capture_pack<boost::hof::detail::pack_base<boost::hof::detail::seq<0>, mipp::Reg<float> > >*]’:
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/slice_algorithms.h:102:53: required from ‘constexpr piejam::audio::engine::slice<T> piejam::audio::engine::detail::slice_multiply<T>::operator()(const typename piejam::audio::engine::slice<T>::span_t&, T) const [with T = float; typename piejam::audio::engine::slice<T>::span_t = std::span<const float, 4294967295>]’
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/slice_algorithms.h:114:23: required from ‘constexpr piejam::audio::engine::slice<T> piejam::audio::engine::detail::slice_multiply<T>::operator()(T, const typename piejam::audio::engine::slice<T>::span_t&) const [with T = float; typename piejam::audio::engine::slice<T>::span_t = std::span<const float, 4294967295>]’
/usr/include/c++/10/bits/invoke.h:60:36: required from ‘constexpr _Res std::__invoke_impl(std::__invoke_other, _Fn&&, _Args&& ...) [with _Res = piejam::audio::engine::slice<float>; _Fn = piejam::audio::engine::detail::slice_multiply<float>; _Args = {const float&, const std::span<const float, 4294967295>&}]’
/usr/include/c++/10/bits/invoke.h:95:40: required from ‘constexpr typename std::__invoke_result<_Functor, _ArgTypes>::type std::__invoke(_Callable&&, _Args&& ...) [with _Callable = piejam::audio::engine::detail::slice_multiply<float>; _Args = {const float&, const std::span<const float, 4294967295>&}; typename std::__invoke_result<_Functor, _ArgTypes>::type = piejam::audio::engine::slice<float>]’
/usr/include/c++/10/variant:1020:24: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/10/variant:955:48: recursively required from ‘static constexpr void std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...), __dimensions ...>, std::integer_sequence<unsigned int, _Idxs ...> >::_S_apply_single_alt(_Tp&, _Tp*) [with bool __do_cookie = false; unsigned int __index = 0; _Tp = std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<piejam::audio::engine::slice<float> > (*)(piejam::audio::engine::detail::slice_multiply<float>&&, const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&), 2>; _Result_type = std::__detail::__variant::__deduce_visit_result<piejam::audio::engine::slice<float> >; _Visitor = piejam::audio::engine::detail::slice_multiply<float>&&; unsigned int ...__dimensions = {2, 2}; _Variants = {const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&}; unsigned int ...__indices = {}]’
/usr/include/c++/10/variant:955:48: required from ‘constexpr const _Array_type std::__detail::__variant::__gen_vtable<std::__detail::__variant::__deduce_visit_result<piejam::audio::engine::slice<float> >, piejam::audio::engine::detail::slice_multiply<float>&&, const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&>::_S_vtable’
/usr/include/c++/10/variant:1699:45: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with _Result_type = std::__detail::__variant::__deduce_visit_result<piejam::audio::engine::slice<float> >; _Visitor = piejam::audio::engine::detail::slice_multiply<float>; _Variants = {const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&}]’
/usr/include/c++/10/variant:1718:35: required from ‘constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = piejam::audio::engine::detail::slice_multiply<float>; _Variants = {const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&}]’
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/slice_algorithms.h:334:22: required from ‘constexpr piejam::audio::engine::slice<T> piejam::audio::engine::multiply(const piejam::audio::engine::slice<T>&, const piejam::audio::engine::slice<T>&, const std::span<_Type, 4294967295>&) [with T = float]’
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/src/piejam/audio/engine/multiply_processor.cpp:39:77: required from here
/usr/include/boost/hof/capture.hpp:152:20: note: parameter passing for argument of type ‘boost::hof::detail::capture_invoke<std::multiplies<void>, boost::hof::detail::pack_base<boost::hof::detail::seq<0>, mipp::Reg<float> > >’ when C++17 is enabled changed to match C++14 in GCC 10.1
152 | constexpr auto operator()(F f) const BOOST_HOF_SFINAE_RETURNS
| ^~~~~~~~
[ 12%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/output_processor.cpp.o
[ 12%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/pan_balance_processor.cpp.o
[ 13%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/process.cpp.o
[ 13%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/processor_job.cpp.o
[ 13%] Building CXX object piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/stream_processor.cpp.o
In file included from /home/xenox003/PieJamTest/piejam/libs/MIPP/src/mipp.h:1321,
from /home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/stream_processor.h:10,
from /home/xenox003/PieJamTest/piejam/piejam_libs/audio/src/piejam/audio/engine/stream_processor.cpp:5:
/home/xenox003/PieJamTest/piejam/libs/MIPP/src/mipp_object.hxx: In instantiation of ‘void mipp::Regx2<T>::store(T*) const [with T = float]’:
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/simd.h:81:22: required from ‘void piejam::audio::simd::interleave(std::span<const T>, const T*, T*) [with T = float]’
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/slice_algorithms.h:309:25: required from ‘constexpr void piejam::audio::engine::detail::slice_interleave<T>::operator()(const typename piejam::audio::engine::slice<T>::span_t&, const typename piejam::audio::engine::slice<T>::span_t&) const [with T = float; typename piejam::audio::engine::slice<T>::span_t = std::span<const float>]’
/usr/include/c++/10/bits/invoke.h:60:36: required from ‘constexpr _Res std::__invoke_impl(std::__invoke_other, _Fn&&, _Args&& ...) [with _Res = void; _Fn = piejam::audio::engine::detail::slice_interleave<float>; _Args = {const std::span<const float, 4294967295>&, const std::span<const float, 4294967295>&}]’
/usr/include/c++/10/bits/invoke.h:95:40: required from ‘constexpr typename std::__invoke_result<_Functor, _ArgTypes>::type std::__invoke(_Callable&&, _Args&& ...) [with _Callable = piejam::audio::engine::detail::slice_interleave<float>; _Args = {const std::span<const float, 4294967295>&, const std::span<const float, 4294967295>&}; typename std::__invoke_result<_Functor, _ArgTypes>::type = void]’
/usr/include/c++/10/variant:1020:24: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/10/variant:955:48: recursively required from ‘static constexpr void std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<_Result_type (*)(_Visitor, _Variants ...), __dimensions ...>, std::integer_sequence<unsigned int, _Idxs ...> >::_S_apply_single_alt(_Tp&, _Tp*) [with bool __do_cookie = false; unsigned int __index = 1; _Tp = std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<void> (*)(piejam::audio::engine::detail::slice_interleave<float>&&, const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&), 2>; _Result_type = std::__detail::__variant::__deduce_visit_result<void>; _Visitor = piejam::audio::engine::detail::slice_interleave<float>&&; unsigned int ...__dimensions = {2, 2}; _Variants = {const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&}; unsigned int ...__indices = {}]’
/usr/include/c++/10/variant:955:48: required from ‘constexpr const _Array_type std::__detail::__variant::__gen_vtable<std::__detail::__variant::__deduce_visit_result<void>, piejam::audio::engine::detail::slice_interleave<float>&&, const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&>::_S_vtable’
/usr/include/c++/10/variant:1699:45: required from ‘constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with _Result_type = std::__detail::__variant::__deduce_visit_result<void>; _Visitor = piejam::audio::engine::detail::slice_interleave<float>; _Variants = {const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&}]’
/usr/include/c++/10/variant:1718:35: required from ‘constexpr decltype(auto) std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = piejam::audio::engine::detail::slice_interleave<float>; _Variants = {const std::variant<float, std::span<const float, 4294967295> >&, const std::variant<float, std::span<const float, 4294967295> >&}]’
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/include/piejam/audio/engine/slice_algorithms.h:384:15: required from ‘constexpr auto piejam::audio::engine::interleave(const piejam::audio::engine::slice<T>&, const piejam::audio::engine::slice<T>&, const std::span<_Type, 4294967295>&) [with T = float]’
/home/xenox003/PieJamTest/piejam/piejam_libs/audio/src/piejam/audio/engine/stream_processor.cpp:66:61: required from here
/home/xenox003/PieJamTest/piejam/libs/MIPP/src/mipp_object.hxx:622:70: error: cannot convert ‘const mipp::Reg<float>’ to ‘float’ in assignment
622 | inline void store (T* data ) const { data[0] = val[0]; data[1] = val[1]; }
| ~~~^
| |
| const mipp::Reg<float>
/home/xenox003/PieJamTest/piejam/libs/MIPP/src/mipp_object.hxx:622:88: error: cannot convert ‘const mipp::Reg<float>’ to ‘float’ in assignment
622 | oid store (T* data ) const { data[0] = val[0]; data[1] = val[1]; }
| ~~~^
| |
| const mipp::Reg<float>
make[2]: *** [piejam_libs/audio/CMakeFiles/piejam_audio.dir/build.make:433: piejam_libs/audio/CMakeFiles/piejam_audio.dir/src/piejam/audio/engine/stream_processor.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:727: piejam_libs/audio/CMakeFiles/piejam_audio.dir/all] Error 2
make: *** [Makefile:149: all] Error 2
Tried it on debian, there it works fine but i cannot run the program on my pi. "Could not execute binary file"
probably because i need 32 bit debian, not sure tho
What machine do you build it on?
The error in MIPP might come from an outdated compiler. The project requires C++20, so you must make sure that the compiler is quite up to date.
For the PI i'm crosscompiling it using buildroot. The whole buildsystem is in the PieJamOS project.
You can also build and run it on a x86 system, for testing this should work too.
The project also using submodules, you must clone it with submodules:
git clone --recursive https://github.com/nooploop/piejam.git
i guess you did this?
Yep its cloned recursively
Edit: didnt see the first message, ill set up an x86 linux vm to try build it
Update: exactly same issues with make on Debian 11 x86
Update: Does not appear to be a C++ version problem, exactly same version of C++ on x64 and x86 versions of Debian
hm, gcc10 might be not enough. The image is built using gcc11 cross compiler. And on my development system, i'm using gcc12 already.
Which system are you running on? ARM based x86?
I guess i will try building it on the PI directly since my pc can only run i386 as VM's cause its not ARM based
I'm using a x86 system for development, running Arch Linux.
But for raspi it needs to be cross-compiled to ARM (32bit) of course.
I guess i'll just setup an Arch Linux VM for development, just like you.
How did you get cross compilation for the PI running with QT Creator? Cause i cannot seem to figure that out.
I don't cross compile with QtCreator. Cross-compilation happens inside the PieJamOS project. It's a buildroot
based Linux system.
Just realised Arch Linux runs on ARM meaning i have literally no way to cross compile at all, i need to compile it on my pi.
Seems like i resolved the issues with MIPP above by using the command line option (from this issue) -DCMAKE_CXX_FLAGS="-mfpu=neon-fp-armv8"
on the cmake
command, it was building properly now.
Took a little time to build on the pi but ig that does not matter.
I wrote a little batch script to automatically install all dependencies and create a basic folder setup (also contains content from the issue mentioned above): setup.sh:
rm -f -R ./build
rm -f -R ./piejam
mkdir build
git clone --recursive https://github.com/nooploop/piejam
sudo bash ./build.sh
build.sh
apt-get update
apt-get -y full-upgrade
apt-get -y install tzdata
cp /usr/share/zoneinfo/America/New_York /etc/localtime
apt-get -y install git cmake build-essential libboost-system-dev libboost-thread-dev ladspa-sdk libspdlog-dev libfmt-dev nlohmann-json3-dev pkg-config
apt-get -y install qtbase5-dev qtdeclarative5-dev qtquickcontrols2-5-dev libqt5quickcontrols2-5 libqt5svg5-dev libqt5virtualkeyboard5-dev
apt-get -y install libfftw3-dev
apt-get -y install libsndfile-dev
apt-get -y install lasdpa-sdk
cd build
cmake -DCMAKE_CXX_FLAGS="-mfpu=neon-fp-armv8" -DCMAKE_BUILD_TYPE=Release ../piejam
make
There are some issues with running the app tho:
xenox003@raspberrypi:~/Development/PieJam/build/piejam_app $ sudo ./piejam_app
[2022-06-22 08:57:07.297] [warning] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' (:0, )
[2022-06-22 08:57:07.868] [warning] QQmlApplicationEngine failed to load component (:0, )
[2022-06-22 08:57:07.868] [warning] qrc:/Main.qml:10:1: Type MainWindow unavailable (qrc:/Main.qml:10, )
[2022-06-22 08:57:07.869] [warning] qrc:/PieJam/Views/MainWindow.qml:22:5: Type RootView unavailable (qrc:/PieJam/Views/MainWindow.qml:22, )
[2022-06-22 08:57:07.869] [warning] qrc:/PieJam/Views/RootView.qml:127:5: Type InputPanel unavailable (qrc:/PieJam/Views/RootView.qml:127, )
[2022-06-22 08:57:07.869] [warning] qrc:/QtQuick/VirtualKeyboard/content/InputPanel.qml:127:5: Type Keyboard unavailable (qrc:/QtQuick/VirtualKeyboard/content/InputPanel.qml:127, )
[2022-06-22 08:57:07.869] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39:1: module "Qt.labs.folderlistmodel" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39, )
[2022-06-22 08:57:07.869] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38:1: module "QtQuick.VirtualKeyboard.Plugins" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38, )
[2022-06-22 08:57:07.869] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39:1: module "Qt.labs.folderlistmodel" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39, )
[2022-06-22 08:57:07.869] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38:1: module "QtQuick.VirtualKeyboard.Plugins" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38, )
Looks like some dependencie issues but i should have all of them installed, i'll experiment a little. When i try running it without sudo i get this:
xenox003@raspberrypi:~/Development/PieJam/build/piejam_app $ ./piejam_app
terminate called after throwing an instance of 'std::system_error'
what(): Operation not permitted
Aborted
The QtKeyboard plugin needs to be activated, run first:
export QT_IM_MODULE=qtvirtualkeyboard
You also might need to create the folder /piejam
Also those variables must be set:
export QT_QPA_EGLFS_PHYSICAL_WIDTH=155
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=86
I executed following now:
sudo mkdir /piejam
export QT_IM_MODULE=qtvirtualkeyboard
export QT_QPA_EGLFS_PHYSICAL_WIDTH=155
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=86
And this is the output when trying to run the app now:
xenox003@raspberrypi:~/Development/PieJam/build/piejam_app $ sudo ./piejam_app
[2022-06-22 09:14:30.720] [warning] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' (:0, )
[2022-06-22 09:14:30.920] [warning] QQmlApplicationEngine failed to load component (:0, )
[2022-06-22 09:14:30.920] [warning] qrc:/Main.qml:10:1: Type MainWindow unavailable (qrc:/Main.qml:10, )
[2022-06-22 09:14:30.920] [warning] qrc:/PieJam/Views/MainWindow.qml:22:5: Type RootView unavailable (qrc:/PieJam/Views/MainWindow.qml:22, )
[2022-06-22 09:14:30.920] [warning] qrc:/PieJam/Views/RootView.qml:127:5: Type InputPanel unavailable (qrc:/PieJam/Views/RootView.qml:127, )
[2022-06-22 09:14:30.920] [warning] qrc:/QtQuick/VirtualKeyboard/content/InputPanel.qml:127:5: Type Keyboard unavailable (qrc:/QtQuick/VirtualKeyboard/content/InputPanel.qml:127, )
[2022-06-22 09:14:30.920] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39:1: module "Qt.labs.folderlistmodel" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39, )
[2022-06-22 09:14:30.920] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38:1: module "QtQuick.VirtualKeyboard.Plugins" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38, )
[2022-06-22 09:14:30.920] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39:1: module "Qt.labs.folderlistmodel" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39, )
[2022-06-22 09:14:30.921] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38:1: module "QtQuick.VirtualKeyboard.Plugins" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38, )
It also takes about 30 seconds before it does anything at all, not sure if thats because of my PI's performance or its something with the application itself
hm, maybe install also libqt5virtualkeyboard5
I got both the -dev
and the "normal" version installed:
xenox003@raspberrypi:~/Development/PieJam/build/piejam_app $ sudo apt-get install libqt5virtualkeyboard5
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libqt5virtualkeyboard5 is already the newest version (5.15.2+dfsg-2).
libqt5virtualkeyboard5 set to manually installed.
The following packages were automatically installed and are no longer required:
libbasicusageenvironment1 libfuse2 libgroupsock8 liblivemedia77
libusageenvironment3
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
xenox003@raspberrypi:~/Development/PieJam/build/piejam_app $ sudo apt-get install libqt5virtualkeyboard5-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libqt5virtualkeyboard5-dev is already the newest version (5.15.2+dfsg-2).
The following packages were automatically installed and are no longer required:
libbasicusageenvironment1 libfuse2 libgroupsock8 liblivemedia77
libusageenvironment3
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Something isn't right with Qt installation, it can't find the installed plugins. There are some variables which can alter the path, maybe this can help, e.g. QT_PLUGIN_PATH
or QML2_IMPORT_PATH
.
Both of those are not defined:
By any chance do you know what those are supposed to be set to?
Depends where the package manager installs the files on your system. Can you list the installed file of libqt5virtualkeyboard5
package?
Looks like /usr/lib is what we are looking for
There must be some qt/plugins
and qt/qml
subfolders.
After using the magical find command i've found those directories and set those vars
xenox003@raspberrypi:/usr/lib/arm-linux-gnueabihf/qt5 $ export QML2_IMPORT_PATH=/usr/lib/arm-linux-gnueabihf/qt5/qml
xenox003@raspberrypi:/usr/lib/arm-linux-gnueabihf/qt5 $ export QT_PLUGIN_PATH=/usr/lib/arm-linux-gnueabihf/qt5/plugins
After launching the application i get those messages:
xenox003@raspberrypi:~/Development/PieJam/build/piejam_app $ sudo ./piejam_app
[2022-06-22 11:44:56.474] [warning] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' (:0, )
[2022-06-22 11:44:56.662] [warning] QQmlApplicationEngine failed to load component (:0, )
[2022-06-22 11:44:56.662] [warning] qrc:/Main.qml:10:1: Type MainWindow unavailable (qrc:/Main.qml:10, )
[2022-06-22 11:44:56.662] [warning] qrc:/PieJam/Views/MainWindow.qml:22:5: Type RootView unavailable (qrc:/PieJam/Views/MainWindow.qml:22, )
[2022-06-22 11:44:56.662] [warning] qrc:/PieJam/Views/RootView.qml:127:5: Type InputPanel unavailable (qrc:/PieJam/Views/RootView.qml:127, )
[2022-06-22 11:44:56.662] [warning] qrc:/QtQuick/VirtualKeyboard/content/InputPanel.qml:127:5: Type Keyboard unavailable (qrc:/QtQuick/VirtualKeyboard/content/InputPanel.qml:127, )
[2022-06-22 11:44:56.662] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39:1: module "Qt.labs.folderlistmodel" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39, )
[2022-06-22 11:44:56.662] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38:1: module "QtQuick.VirtualKeyboard.Plugins" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38, )
[2022-06-22 11:44:56.662] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39:1: module "Qt.labs.folderlistmodel" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:39, )
[2022-06-22 11:44:56.662] [warning] qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38:1: module "QtQuick.VirtualKeyboard.Plugins" is not installed (qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38, )
hm, you might also try to set: export QTDIR=/usr/lib/arm-linux-gnueabihf/qt5
otherwise, i'm out of ideas
Ok seems like this does not work either, google is also out of ideas so i guess i will just take my raspberry pi and throw it out of the window
because for some fucking reason everything i touch breaks so fucking bad
hehe, not so fast :) try the prebuilt image again, i think i found a solution there, look here: https://github.com/nooploop/piejam_os/issues/1#issuecomment-1163218821
I guess i'll take a look at that later
Issues above resolved by settint the QT_IM_MODULE
Variable to qtvirtualkeyboard
This solution worked on my debian machine, did not test it on my PI
When trying to build the piejam application via cmake i get following error:
CMake Error at piejam_libs/audio/CMakeLists.txt:8 (message): LADSPA header not found
I got the ladspa sdk running on my PI, is there any other packages i need to install? Or do i need to add anything special to PATH?
Update: my ladspa.h is located in /usr/include but the compiler does not seem to find it for some reason