Hi Ali,
since CMake is the default build system we use both for our OOT templates (as used by
gr_modtool) and by the C++ code generated throug GRC, I'd say:
just use the existing work as template.
What you're doing here is mixing modern CMake, i.e. a config/target-based method of
defining the compiler and linker properties of your compilation units, with manual
"include_directories" things. Probably not a great idea! If you compare that with what
`gr_modtool` generates in its lib/CMakeLists.txt, you'll find how we'd, as a project,
would recommend you do it.
Best,
Marcus
On 01.08.24 11:17, Ali G. Dezfuli wrote:
Hi all,
I want to work with simple gnuradio objects in a C++ IDE (e.g. Qtcreator) using CMake
build system.
I am running ubuntu 22.04 and gnuradio 3.10.11.0.
How can I write its cmakelists.txt?
For example, to just test these PMT lines:
#include<pmt/pmt.h>// [...]
pmt::pmt_tP=pmt::from_long(23);std::cout<<P<<std::endl;pmt::pmt_tP2=pmt::from_complex(0,1);std::cout<<P2<<std::endl;std::cout<<pmt::is_complex(P2)<<std::endl;
I add the following lines to its cmakelists.tx
# Find GNU Radio package, specifying required components
find_package(Gnuradio "3.10" REQUIRED COMPONENTS pmt) # Adjust the version and components
as needed
# Check if GNU Radio is found
if(Gnuradio_FOUND)
message(STATUS "GNU Radio found.")
message(STATUS "GNU Radio include dirs: ${Gnuradio_INCLUDE_DIRS}")
message(STATUS "GNU Radio libraries: ${Gnuradio_LIBRARIES}")
else()
message(FATAL_ERROR "GNU Radio not found!")
endif()
# Include directories for your project
include_directories(
${Gnuradio_INCLUDE_DIRS} # GNU Radio include directories
${CMAKE_SOURCE_DIR}/include # Your custom include directories
)
# Define the executable
add_executable(myproject${SOURCES})
# Link the executable with GNU Radio libraries
target_link_libraries(myproject ${GNURADIO_LIBRARIES})
but it doesn't work.
I'd be grateful if someone help me write working cmakelists.txt.
Thanks!