cpp-ethereum dependencies breakdown

Is there a resource that could tell me what each dependency from the Building on Ubuntu page (https://github.com/ethereum/cpp-ethereum/wiki/Building-on-Ubuntu) or https://github.com/ethereum/webthree-umbrella/wiki/building corresponds to, in terms of the cmake flags, and which repo they come from (main vs llvm vs ethereum-*)?

Basically a break down of what is needed for what and what depends on what (repo:package) would be great, as it's a hard to tell as it is...

I got no response on the gitter chanel so I'm hoping I'll be more lucky here...

Thanks!

PS: I'm aware of the dot file that describes this: http://imgur.com/BwKjPZ6

Comments

  • gavofyorkgavofyork Member Posts: 14 ✭✭
    edited October 2015
    Hi acros,

    here's an overview:

    ethereum/webthree-helpers:
    Common build helpers for Ethereum Project's Web3 set of technologies

    github.com/ethereum/libweb3core:
    Common utility code for Ethereum Project's Web3 set of technologies (including p2p overlay networking)

    github.com/ethereum/libethereum:
    Ethereum blockchain and tools (ethkey, ethminer)

    github.com/ethereum/solidity:
    Solidity language components (the Ethereum contract-orientated programming language)

    github.com/ethereum/webthree,
    github.com/ethereum/web3.js:
    Ethereum Project's Web3 software set with a JSONRPC and JS interface
    (Whisper hybrid DHT/messaging system + Ethereum blockchain)

    github.com/ethereum/mix:
    Mix (the Web3 IDE)

    github.com/ethereum/alethzero:
    Ethereum/Web3 GUI clients & miners (Aleth* set of software)


    Gav.
  • acrosacros Member Posts: 63 ✭✭
    Hey @gavofyork , actually I meant more the specific packages, something like:

    [package] [from repo] [used by]
    libboost-all-dev main libethereum
    libgmp-dev ...
    libleveldb-dev
    libminiupnpc-dev
    libreadline-dev
    libncurses5-dev
    libcurl4-openssl-dev
    libcryptopp-dev
    libjson-rpc-cpp-dev
    libmicrohttpd-dev
    libjsoncpp-dev
    libargtable2-dev
    llvm-3.7-dev
    libedit-dev
    mesa-common-dev
    ocl-icd-libopencl1
    opencl-headers
    libgoogle-perftools-dev
    qtbase5-dev
    qt5-default
    qtdeclarative5-dev
    libqt5webkit5-dev
    libqt5webengine5-dev
    ocl-icd-dev
    libv8-dev
    (made up the first entry, it's just to convey the idea!)

    I really like the dot file (http://imgur.com/BwKjPZ6) actually, I would gladly augment it with that information later on!
  • gavofyorkgavofyork Member Posts: 14 ✭✭
    edited October 2015
    Core stuff (generally needed)
    libgmp-dev: libsecp256k1 -> libweb3core
    libboost-all-dev: libweb3core (though not all modules are needed)
    libcryptopp-dev: libweb3core, will be removed soon
    libleveldb-dev: libweb3core
    libminiupnpc-dev: libweb3core
    libjsoncpp-dev: libweb3core
    libcurl4-openssl-dev: webthree (i think - should check)
    libjson-rpc-cpp-dev: webthree
    libmicrohttpd-dev: webthree
    libreadline-dev: webthree
    libv8-dev: libjsconsole -> webthree
    libedit-dev: is this even needed?
    libargtable2-dev: is this even needed?

    EVMJIT stuff (not required if building -DEVMJIT=0)
    llvm-3.7-dev: libevmjit

    Open CL stuff (not required if building -DETHASHCL=0)
    mesa-common-dev
    ocl-icd-libopencl1
    opencl-headers
    ocl-icd-dev

    Performance stuff (not required if building -DPROFILING=0)
    libgoogle-perftools-dev

    GUI stuff (not required if building -DGUI=0)
    qtbase5-dev
    qt5-default
    qtdeclarative5-dev
    libqt5webkit5-dev
    libqt5webengine5-dev

    libncurses5-dev: not used.
  • PhonikGPhonikG Member Posts: 41 ✭✭
    Thanks @gavofyork this is what we were hoping for to continue! Great breakdown!
  • MrYukonCMrYukonC Member Posts: 627 ✭✭✭
    edited October 2015
    gavofyork said:

    libedit-dev: is this even needed?

    Unfortunately, yes.

    It appears to have been added as a new dependency to evmjit in the past week or so. My build was failing on that project trying to link the edit library.

    Finally, after Googling I found that libedit-dev is the source of that library. :|
  • acrosacros Member Posts: 63 ✭✭
    edited October 2015
    Thanks guys, where could I find which of the boost libraries are actually needed?

    EDIT: actually answering my own question, I'm getting errors from cmake that's telling me which ones are missing:

    thread
    date_time
    system
    regex
    chrono
    filesystem
    unit_test_framework
    program_options
    random
    Post edited by acros on
Sign In or Register to comment.