py-solc-x icon indicating copy to clipboard operation
py-solc-x copied to clipboard

cross-platform installation

Open gsalzer opened this issue 3 years ago • 1 comments

Overview

It seems that solcx is tied to the platform it is running on, meaning that it will load and install binaries for the current platform. For cross-platform use, it would be useful to request binaries for another platform, e.g. when preparing mounts for a virtual machine, or a docker image.

The following code achieves what I want (assuming that the target platform is Linux):

import solcx.install
solcx.install._get_os_name.__code__ = (lambda:"linux").__code__

The assignment patches the internal function _get_os_name to return always "linux". Obviously, this not a clean solution, as it breaks when the private function is changed. Is there a better solution?

gsalzer avatar Mar 01 '22 18:03 gsalzer

Commit 486481dc461005d10e39660496720f8b11c75100 adds a function set_target_os. If the target os is different from the current host os, the images for the target os will be pulled, stored in .solx-targetos, and used.

gsalzer avatar Apr 16 '22 20:04 gsalzer