Thursday, August 1, 2024

Re: cmakelists.txt fot C++ IDE

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!
>

No comments:

Post a Comment