2

I want to have a clean install of the turbo ethereum C++ clients and command line tools without any GUI dependencies (Qt, etc.) - How to build C++ Ethereum without GUI/Qt?

I see AlethZero and AlethOne are pulling them in, but how can I tell the build process to exclude all GUI applications?

Are there any ways to configure cmake to only build CLI tools or any specific make targets I should know about?

7

in your build folder you cmake .. -DGUI=0

3

So there are two phases. CMake generates makefiles (or Visual Studio solutions or xcode projects), and then you build those with make, or MSBuild, etc.

During the CMake phase you can pass parameters to exclude particular applications from the build process. Here are the main properties: TOOL, TEST, GUI, EVMJIT, which will all be "on" by default, but can be turned off. For example, excluding EVMJIT means you don't need to have LLVM installed (but you will only get the interpreter, not the JIT). Excluding GUI means you won't get AlethZero or Mix, but also means you don't need Qt5 installed.

Then when it gets to the make phase, doing an unqualified "make" will build everything. You can also "make install". You can also build only specific applications, ie. "make eth", "make ethminer", "make mix".

Here's a big diagram of all the modules:

http://doublethinkco.github.io/cpp-ethereum-cross/images/dependency_graph.svg

And the target diagram for how that will look after we finish the pending repo reorg (https://github.com/ethereum/webthree-umbrella/issues/251), which is being dry-run at https://github.com/bobsummerwill/cpp-ethereum/tree/merge_repos right now):

http://doublethinkco.github.io/cpp-ethereum-cross/images/target_dependency_graph.svg

2

Depends on how you're installing it. In OS X you would run

brew install cpp-ethereum

because by default it comes without those.

Now if you wanted to do that in Ubuntu you would probably do something like this:

git clone --recursive https://github.com/ethereum/webthree-umbrella.git
cd webtree-umbrella
./webthree-helpers/scripts/ethupdate.sh --no-push --simple-pull --project webthree
./webthree-helpers/scripts/ethbuild.sh --no-git --project webthree

highly recommend changing the --core flag otherwise you'll be waiting forever.

  • Interesting, wasn't aware about the helper scipts. the brew install does not pull in mix and alethzero? – Waqar Lim Apr 13 '16 at 10:21
  • You need to run it with the flags --with-gui to pull them in. – VoR0220 Apr 13 '16 at 19:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.