discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cmakelists.txt fot C++ IDE


From: Marcus Müller
Subject: Re: cmakelists.txt fot C++ IDE
Date: Thu, 1 Aug 2024 20:44:16 +0200
User-agent: Mozilla Thunderbird

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!




reply via email to

[Prev in Thread] Current Thread [Next in Thread]