<
 
 
 
 
×
>
hide You are viewing an archived web page, collected at the request of Ethereum Foundation using Archive-It. This page was captured on 11:23:41 Jun 21, 2021, and is part of the Community collection. The information on this web page may be out of date. See All versions of this archived page. Loading media information

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.