-
Notifications
You must be signed in to change notification settings - Fork 0
/
conanfile.py
53 lines (43 loc) · 2.16 KB
/
conanfile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from conans import ConanFile, CMake, tools
class SolidityConan(ConanFile):
name = "solidity"
version = "v0.5.10"
license = "GPL-3.0"
author = "Andrey Bronin <jonnib@jandex.ru>"
url = "https://github.com/AndreyBronin/conan-solidity"
description = "Conan package for solidity"
topics = ("solidity", "etherium")
settings = "os", "compiler", "build_type", "arch"
options = {"shared": [True, False]}
default_options = "shared=True"
generators = "cmake"
requires = (
"boost/1.70.0@conan/stable",
"jsoncpp/1.8.4@theirix/stable"
)
def source(self):
git = tools.Git(folder=self.name)
git.clone(str("https://github.com/ethereum/solidity"), self.version)
tools.replace_in_file("solidity/CMakeLists.txt", "project(solidity VERSION ${PROJECT_VERSION} LANGUAGES CXX)",
'''project(solidity VERSION ${PROJECT_VERSION} LANGUAGES CXX)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()''')
tools.replace_in_file("solidity/CMakeLists.txt", "include(jsoncpp)", "")
tools.replace_in_file("solidity/cmake/EthCompilerSettings.cmake", "add_compile_options(-stdlib=libstdc++)", "")
def build(self):
cmake = CMake(self)
cmake.configure(source_folder=self.name, defs = {"USE_CVC4": "OFF", "USE_Z3": "OFF"})
cmake.build()
def package(self):
# self.copy("*.h", dst="include", src="solidity")
self.copy("*.h", dst="include/libsolidity/interface", src="solidity/libsolidity/interface")
self.copy("*.h", dst="include/libevmasm", src="solidity/libevmasm")
self.copy("*.h", dst="include/libdevcore", src="solidity/libdevcore")
self.copy("*.h", dst="include/liblangutil", src="solidity/liblangutil")
self.copy("*.dll", dst="bin", keep_path=False)
self.copy("*.so", dst="lib", keep_path=False)
self.copy("*.dylib", dst="lib", keep_path=False)
self.copy("*.a", dst="lib", keep_path=False)
def package_info(self):
# self.cpp_info.libs = ["solidity"]
self.cpp_info.libs = ["devcore", "evmasm", "langutil", "solc", "solidity", "yul", "yulInterpreter"]