Add support for solc's --include-path to compile_source
boxydog opened this issue · comments
Overview
I am trying to compile a file that has multiple includes from a node module.
My entire working command line is:
/Users/zzz/.solcx/solc-v0.8.10 solidity/contracts/MyContract.sol --combined-json abi,asm,ast,bin,bin-runtime,devdoc,function-debug,function-debug-runtime,generated-sources,generated-sources-runtime,hashes,metadata,opcodes,srcmap,srcmap-runtime,storage-layout,userdoc --include-path solidity/node_modules --base-path .
I added the --include-path
and --base-path
on the end to get it to work.
When I look at compile_files it doesn't have include_path, or a way to add arguments to the compile line.
Or maybe it does, and I just don't understand.
Personally, I'd add a way to add to the command line in general, so people can work around missing parameters without source modifications.
However, my use case just requires include_path. That flag can be added multiple times, see https://docs.soliditylang.org/en/v0.8.9/path-resolution.html#base-path-and-include-paths.
Specification
Add include_path
list.
Or, add extra_arguments
list where I can add my own arguments on the end.
Hi @boxydog , how are you ?
I've gone through the same issue as you and worked around bypassing the function. I'm sharing the code below, if it's still useful for anyone else:
from solcx.main import _compile_combined_json
compiled_fundme = _compile_combined_json(
source_files="FundMe.sol",
output_values=["abi", "bin"],
base_path=os.getcwd(),
include_path=f"{os.getcwd()}/node_modules"
)