-
Notifications
You must be signed in to change notification settings - Fork 243
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Static linking #157
Static linking #157
Conversation
Thanks, @rainbeam! We're going to need to break this up a bit, and merge it in piece by piece. Also looks like we'll need some extra platform conditionals around this extra FindX.cmake. For my own http://github.com/doublethinkco/cpp-ethereum-cross cross-builds, it's quite a similar story. Static linkage and cross-builds require you to get ALL THE WAY to the end of your dependency chain. So let's start with the simplest changes. Please could you explain the reordering of the library and include paths? Is the ordering meaningful there? I am not very experienced with CMake specifically, so I honestly don't know. I am happy to do those reorderings if that is more idiomatic. Perhaps you could make a new PR with ONLY those reorderings, and we can merge that right away, to reduce the volume of diffs under review. |
The new files should also be independently mergable too, so how about making a second PR which only adds the following?
You could also include the edits to these files too at the same time:
As long as you REMOVE those lines in UseCURL.cmake which chain the dependencies onto SSH2, OpenSSL and SSH2. Then that merge wouldn't break anything. |
When those two PRs are merged, we would just be left with the "chained dependencies" to work through, which would probably need some extra platform and modal conditionals around them. And we would have to do the conditional-thing for switching mode (ie. something to do an equivalent of ethereum/webthree#163 and https://github.com/ethereum/webthree-umbrella/pull/493/files) but nicely. |
Thanks for the comments. Agree on splitting up. Edit: progress list moved to top ^ |
Hey @rainbeam! Looks at the diffs in this PR now. Want to make a third one for everything EXCEPT those 3 lines in UseCURL.cmake? |
OK will do. What does it take to trigger a build on here? I see it has 'triggered' but it doesn't seem to be doing anything. |
Nothing required. It's just backlogged, I think. See http://ethbuilds.com. |
That looks great. Why don't you just move the content of these diffs into 163 and squash it, and we can merge that? Then we're just missing the optional dependencies bit. |
@bobsummerwill: once #163 is merged shall I go ahead and make changes like in ethereum/webthree#163 across the whole umbrella? |
All sub-tasks are complete. Should just be a matter of modifying the CMake files for particular executables now, to switch them to the new macro. |
^ It's probably only worth doing eth and maybe ethminer, isn't it? What other executables did you have in mind? Full list of EXEs I know of:
|
Will do solc / soltest as well (as that's what started this whole thing off). |
Can see argument for not doing mix / alethzero. The others I'm ambivalent about. |
Yeah ... so I think soltest, solc, lllc would be a good set. ethminer too if that is easy? But yeah ... diminishing returns for everything else. Thanks! |
Relates to ethereum/webthree-umbrella#337.
Work towards having a
STATIC_LINKING
compile flag.Split into sub PRs:
UseCURL.cmake
add_executable
macro to enable static link options