Conan Recipe: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
First step is to figure out which GR dependencies are already in conan-center and which aren't
These are notes for the process of getting a conan recipe for GNU Radio, the recipe is not yet fully functional


# '''libboost-all-dev''' - boost/1.65.1@conan/stable
conanfile.py:
# '''libgmp-dev''' - gmp/6.1.2
# '''doxygen''' - doxygen/1.8.18
# '''libfftw3-dev''' - fftw/3.3.8
# '''libsdl1.2-dev''' - libsdl2 has a recipe, but we might not need this anyway
# '''libgsl-dev''' - only needed for gr-wavelet which we could disable
# '''libqwt-qt5-dev''' - check out https://github.com/kenfred/conan-qwt not sure if it will work
# '''libqt5opengl5-dev''' - no idea if this is included in some other qt5 recipe
# '''liblog4cpp5-dev''' - log4cplus/2.0.4
# '''libzmq3-dev''' - zmq/4.2.5@bincrafters/stable
# '''gir1.2-gtk-3.0''' - (is this needed?)


I had to do:
from conans import ConanFile, CMake
conan profile update settings.compiler.libcxx=libstdc++11 default
from conans.tools import os_info, SystemPackageTool
class PocoTimerConan(ConanFile):
    settings = "os", "compiler", "build_type", "arch"
    requires = ["boost/1.73.0",
                "gmp/6.1.2",
                "fftw/3.3.8",
                "zmq/4.2.5@bincrafters/stable",
                "doxygen/1.8.17",
                "swig/4.0.1",
                "log4cplus/2.0.4",
                "qt/5.15.0@bincrafters/stable",
                "xorg/system"] # had to add this, conan yelled at me for not having it
    generators = "cmake"#, "gcc", "txt"
 
 
Stuff I had to do to get this to work:
 
* conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
* conan profile update settings.compiler.libcxx=libstdc++11 default
* edit ~/.conan/conan.conf and uncomment the line sysrequires_mode = enabled


The build process is the same except you do
The build process is the same except you do
conan install .. (which installs the dependencies and sets up cmake)
# conan install .. (which installs the dependencies and sets up cmake)
cmake ..
# cmake ..
make
# make
make install
# make install


When the "conan install .." command runs, settings in ~/.conan/profiles/default file are applied, which might get fishy.  you can also change stuff via cmd args
When the "conan install .." command runs, settings in ~/.conan/profiles/default file are applied, which might get fishy.  you can also change stuff via cmd args
Line 26: Line 36:


generate a pretty graph of dependency tree with:
generate a pretty graph of dependency tree with:
conan info .. --graph=file.html
conan info .. --graph=file.html


Search for recipes in conan-center with:
Search for recipes in conan-center with:
conan search "*xyz*" --remote=conan-center
conan search "*xyz*" --remote=conan-center

Latest revision as of 04:58, 27 July 2020

These are notes for the process of getting a conan recipe for GNU Radio, the recipe is not yet fully functional

conanfile.py:

from conans import ConanFile, CMake
from conans.tools import os_info, SystemPackageTool

class PocoTimerConan(ConanFile):
   settings = "os", "compiler", "build_type", "arch"
   requires = ["boost/1.73.0",
               "gmp/6.1.2", 
               "fftw/3.3.8",
               "zmq/4.2.5@bincrafters/stable",
               "doxygen/1.8.17",
               "swig/4.0.1",
               "log4cplus/2.0.4",
               "qt/5.15.0@bincrafters/stable",
               "xorg/system"] # had to add this, conan yelled at me for not having it
   generators = "cmake"#, "gcc", "txt"


Stuff I had to do to get this to work:

The build process is the same except you do

  1. conan install .. (which installs the dependencies and sets up cmake)
  2. cmake ..
  3. make
  4. make install

When the "conan install .." command runs, settings in ~/.conan/profiles/default file are applied, which might get fishy. you can also change stuff via cmd args "conan config install" is designed to share these settings/profiles with others

generate a pretty graph of dependency tree with:

conan info .. --graph=file.html

Search for recipes in conan-center with:

conan search "*xyz*" --remote=conan-center