You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First of all, not sure if this belongs to the Core or to the Plotters repo, but since it looks like an issue that affects usage of Spuce by the whole tree, I will post it here.
Compiling latest master on Linux with in-tree Spuce (and out-of-tree Poco, not sure if that detail is important) gives following error:
[ 97%] Building CXX object plotters/Periodogram/CMakeFiles/Periodogram.dir/Periodogram_autogen/mocs_compilation.cpp.o
cd /home/user/projects/PothosCore-build/plotters/Periodogram && /usr/bin/c++ -DPOCO_ENABLE_CPP11 -DPOCO_ENABLE_CPP14 -DPOCO_HAVE_FD_EPOLL -DPOCO_OS_FAMILY_UNIX -DPOCO_UNBUNDLED -DPeriodogram_EXPORTS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQWT_DLL -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT -D_THREAD_SAFE -D_XOPEN_SOURCE=500 -I/home/user/projects/PothosCore-build/plotters/Periodogram/Periodogram_autogen/include -I/home/user/projects/PothosCore/include -I/home/user/projects/PothosCore/plotters/qwt6/src -I/home/user/projects/PothosCore/plotters/PlotterUtils -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -O3 -DNDEBUG -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wnon-virtual-dtor -fPIC -std=gnu++14 -MD -MT plotters/Periodogram/CMakeFiles/Periodogram.dir/Periodogram_autogen/mocs_compilation.cpp.o -MF CMakeFiles/Periodogram.dir/Periodogram_autogen/mocs_compilation.cpp.o.d -o CMakeFiles/Periodogram.dir/Periodogram_autogen/mocs_compilation.cpp.o -c /home/user/projects/PothosCore-build/plotters/Periodogram/Periodogram_autogen/mocs_compilation.cpp
In file included from /home/user/projects/PothosCore-build/plotters/Periodogram/Periodogram_autogen/EWIEGA46WW/../../../../../PothosCore/plotters/Periodogram/PeriodogramDisplay.hpp:13,
from /home/user/projects/PothosCore-build/plotters/Periodogram/Periodogram_autogen/EWIEGA46WW/moc_PeriodogramDisplay.cpp:10,
from /home/user/projects/PothosCore-build/plotters/Periodogram/Periodogram_autogen/mocs_compilation.cpp:3:
/home/user/projects/PothosCore/plotters/PlotterUtils/PothosPlotterFFTUtils.hpp:12:10: fatal error: spuce/filters/design_window.h: No such file or directory
12 | #include <spuce/filters/design_window.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
From what I see, above happens because include directories of Spuce are not passed to the compiler when an in-tree Spuce is used.
That happens because Plotters component relies on spuce target having INTERFACE_INCLUDE_DIRECTORIES property set on it, and that is not the case when:
Plotters component is built as part of PothosCore
In-tree Spuce is used
When Plotters component is built in a standalone fashion, discovers and creates spuce CMake target by itself, property is set correctly (./plotters/CMakeLists.txt:30):
When Plotters is built as part of PothosCore and an in-tree Spuce is used, we get spuce target that is created by spuce submodule itself (./CMakeLists.txt:152):
if(NOT ENABLE_INTERNAL_SPUCE)
find_package(Spuce CONFIG)
endif()
cmake_dependent_option(ENABLE_INTERNAL_SPUCE "Enable Spuce filter design library" ON "NOT Spuce_FOUND" OFF)
add_feature_info(Spuce ENABLE_INTERNAL_SPUCE "Build internal Spuce filter design library")
if (ENABLE_INTERNAL_SPUCE)
message(STATUS "Spuce not found - using built-in Spuce")
if (EXISTS ${PROJECT_SOURCE_DIR}/spuce/CMakeLists.txt)
add_subdirectory(spuce)
set(SPUCE_IN_TREE TRUE)
set(Spuce_FOUND TRUE)
set(Spuce_VERSION "[submodule]")
set(Spuce_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/spuce)
set(Spuce_LIBRARIES spuce)
else ()
message(WARNING "spuce submodule not configured (git submodule update --init --recursive)")
endif ()
endif(ENABLE_INTERNAL_SPUCE)
That target does not have include_directories property set (./spuce/spuce/CMakeLists.txt:40):
First of all, not sure if this belongs to the Core or to the Plotters repo, but since it looks like an issue that affects usage of Spuce by the whole tree, I will post it here.
Compiling latest master on Linux with in-tree Spuce (and out-of-tree Poco, not sure if that detail is important) gives following error:
From what I see, above happens because include directories of Spuce are not passed to the compiler when an in-tree Spuce is used.
That happens because
Plotters
component relies onspuce
target having INTERFACE_INCLUDE_DIRECTORIES property set on it, and that is not the case when:Plotters
component is built as part of PothosCoreWhen Plotters component is built in a standalone fashion, discovers and creates
spuce
CMake target by itself, property is set correctly (./plotters/CMakeLists.txt:30):When Plotters is built as part of PothosCore and an in-tree Spuce is used, we get
spuce
target that is created byspuce
submodule itself (./CMakeLists.txt:152):That target does not have include_directories property set (./spuce/spuce/CMakeLists.txt:40):
For my own build, I've quickly hacked ./CMakeLists.txt to add include directories to the
spuce
target (./CMakeLists.txt:174):But I'm not sure if this is a good solution for everyone.
The text was updated successfully, but these errors were encountered: