Skip to content
This repository was archived by the owner on Oct 28, 2021. It is now read-only.

Commit 3bcbae9

Browse files
committed
new files
1 parent d4ac540 commit 3bcbae9

File tree

14 files changed

+3449
-39
lines changed

14 files changed

+3449
-39
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ build_xc
3333
*~
3434

3535
# build system
36-
bin/
3736
build.*/
3837
extdep/install
3938
extdep/download

.travis.yml

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
#------------------------------------------------------------------------------
2+
# TravisCI configuration file for cpp-ethereum.
3+
#
4+
# The documentation for cpp-ethereum is hosted at:
5+
#
6+
# http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/
7+
#
8+
# ------------------------------------------------------------------------------
9+
# This file is part of cpp-ethereum.
10+
#
11+
# cpp-ethereum is free software: you can redistribute it and/or modify
12+
# it under the terms of the GNU General Public License as published by
13+
# the Free Software Foundation, either version 3 of the License, or
14+
# (at your option) any later version.
15+
#
16+
# cpp-ethereum is distributed in the hope that it will be useful,
17+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
18+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19+
# GNU General Public License for more details.
20+
#
21+
# You should have received a copy of the GNU General Public License
22+
# along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>
23+
#
24+
# (c) 2016 cpp-ethereum contributors.
25+
#------------------------------------------------------------------------------
26+
27+
language: cpp
28+
branches:
29+
only:
30+
- develop
31+
- merge_repos
32+
- release
33+
except:
34+
- /develop-v[0-9]/
35+
- /untagged/
36+
matrix:
37+
include:
38+
- os: linux
39+
dist: trusty
40+
sudo: required
41+
env:
42+
- TRAVIS_BUILD_TYPE=RelWithDebInfo
43+
- ZIP_SUFFIX=ubuntu-trusty
44+
- TESTS=On
45+
- os: osx
46+
osx_image: beta-xcode6.2
47+
env:
48+
- TRAVIS_BUILD_TYPE=RelWithDebInfo
49+
- ZIP_SUFFIX=osx-mavericks
50+
- TESTS=On
51+
- os: osx
52+
osx_image: xcode7.1
53+
env:
54+
- TRAVIS_BUILD_TYPE=RelWithDebInfo
55+
- ZIP_SUFFIX=osx-yosemite
56+
- TESTS=Off
57+
- os: osx
58+
osx_image: xcode7.3
59+
env:
60+
- TRAVIS_BUILD_TYPE=RelWithDebInfo
61+
- ZIP_SUFFIX=osx-elcapitan
62+
- TESTS=Off
63+
- os: osx
64+
osx_image: xcode8
65+
env:
66+
- TRAVIS_BUILD_TYPE=RelWithDebInfo
67+
- ZIP_SUFFIX=macos-sierra
68+
- TESTS=Off
69+
git:
70+
depth: 2
71+
cache:
72+
- ccache
73+
- directories: build
74+
install:
75+
- ./scripts/install_deps.sh
76+
before_script:
77+
- mkdir -p build
78+
- cd build
79+
- cmake .. -DCMAKE_BUILD_TYPE=$TRAVIS_BUILD_TYPE -DTESTS=$TESTS
80+
- make -j2
81+
- ../scripts/release.sh $ZIP_SUFFIX $TESTS
82+
script:
83+
# TODO - Move these steps into tests.sh too?
84+
- cd $TRAVIS_BUILD_DIR/..
85+
- git clone https://github.com/ethereum/tests.git
86+
- export ETHEREUM_TEST_PATH=$(pwd)/tests/
87+
- cd $TRAVIS_BUILD_DIR/build
88+
89+
# Workaround for fairly frequent timeout issue, as shown here, is to prepend
90+
# 'travis_wait' to your long-running command, which tells TravisCI not to panic
91+
# if a specific command does not update STDOUT for 20 minutes. Unsure at the
92+
# time of writing whether this will actually help anything, or whether this STDOUT
93+
# stall actually represents a real crash or hang.
94+
#
95+
# 'No output has been received in the last 10 minutes, this potentially indicates a stalled
96+
# build or something wrong with the build itself'
97+
#
98+
# See https://travis-ci.org/bobsummerwill/cpp-ethereum/jobs/148445495 for an instance
99+
# of this problem actually happening within a TravisCI automation step.
100+
#
101+
# See http://stackoverflow.com/questions/28746046/how-can-i-install-something-on-travis-ci-without-a-timeout/28833319#28833319
102+
103+
- travis_wait ../scripts/tests.sh
104+
105+
106+
# Release workflow for development ZIPs. Disabled for the time being, because we came
107+
# to the conclusion that it would just be overkill.
108+
#
109+
# TODO - Renable this flow, but within conditionals so that it is only invoked from
110+
# the release branch.
111+
112+
#deploy:
113+
# provider: releases
114+
# api_key:
115+
# secure: HHcAWFjVNwf8b83KVQnEa172Eo7aur+scVCq4BzgPDXnF+v4GDXT7PAaXyWBwIyrFoIJduPCojsiIBP8QZwtjaKgnywnREjaLc0syTCLSeUHcp/+jPRdickvfgHJWG06sU7ZST8/HnGmoOqV/BUlGhHiqma1oJfGEJ6aaG4oza77ZYAxLPxwq9NOuTHVGJwlphcfeevcU3F0C/mxDEEMEz66lDolp4DCP5L4muHlrOCZ+HSjRwz5/anVNVWNO/nM1I0wmI2TRAS0RPzwClVD8iiGJHhZ/WdgenG4nosBG9UQjd/56LLKI25bIJijz/tpe89pCRUJtMYtcXR5C7w8Is05a1GMedBAiT7Bu35qHbpxJeqcw26DJL4U3+IeHfymXpK/E3RAj16bj+mtxxYSEzaae7obCm1rDA1LnPTI94kAea2ZNOUucDK5FaROX/uBXk422xrQTdJpEpg4TLa7GmQGdtyJC0OnzaOTXWg87lbVMq1PndDLE3STqXT5J/wj/WfUtXlN38x9aX7wwrmyCXY3WJ1zzShAgRO9YjRRosMBkahGDj5l75w9KX8yW3C5txcxjPVGSxQIl+bv9FPrBJmU1WOOPYQlHm92JQJus8BXXQCuhg3mEsZQfmGpgrS82NUB15V1nZB3xCXniKcKnQirzbRXLg8wjlPbT9DKGbc=
116+
# file: $TRAVIS_BUILD_DIR/cpp-ethereum-develop-$ZIP_SUFFIX.zip
117+
# skip_cleanup: true
118+
# on:
119+
# repo: bobsummerwill/cpp-ethereum
120+
# branch: merge_repos

CMakeLists.txt

Lines changed: 49 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,68 @@
1-
#------------------------------------------------------------------------------
2-
# Top-level CMake file for the cpp-ethereum project.
3-
#
4-
# The documentation for cpp-ethereum is hosted at:
5-
#
6-
# http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/
7-
#
8-
# Copyright (c) 2014-2016 cpp-ethereum contributors
9-
#------------------------------------------------------------------------------
10-
11-
12-
# Define color codes
13-
if(NOT WIN32)
14-
string(ASCII 27 Esc)
15-
set(ColourReset "${Esc}[m")
16-
set(BoldRed "${Esc}[1;31m")
17-
set(BoldGreen "${Esc}[1;32m")
18-
endif()
191

202
cmake_minimum_required(VERSION 3.0.0)
213

22-
set(ETH_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}/webthree-helpers/cmake" CACHE PATH "The path to the cmake directory")
4+
set(ETH_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}/cmake" CACHE PATH "The path to the cmake directory")
235
list(APPEND CMAKE_MODULE_PATH ${ETH_CMAKE_DIR})
246

25-
set(UTILS_DIR "${CMAKE_CURRENT_LIST_DIR}/webthree-helpers/utils" CACHE PATH "The path to the utils libraries directory")
26-
set(DEV_DIR "${CMAKE_CURRENT_LIST_DIR}/libweb3core" CACHE PATH "The path to the dev libraries directory")
27-
set(ETH_DIR "${CMAKE_CURRENT_LIST_DIR}/libethereum" CACHE PATH "The path to the eth libraries directory")
28-
set(WEB3_DIR "${CMAKE_CURRENT_LIST_DIR}/webthree" CACHE PATH "The path to the webthree libraries directory")
7+
set(UTILS_DIR "${CMAKE_CURRENT_LIST_DIR}/utils" CACHE PATH "The path to the utils libraries directory")
8+
set(DEV_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "The path to the dev libraries directory")
9+
set(ETH_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "The path to the eth libraries directory")
10+
set(WEB3_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "The path to the webthree libraries directory")
11+
#set(SOL_DIR "${CMAKE_CURRENT_LIST_DIR}/solidity" CACHE PATH "The path to the solidity libraries directory")
2912

3013
# set cmake_policies
31-
32-
if (NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/webthree-helpers/cmake")
33-
message(FATAL_ERROR "${BoldRed}Could not find sub-modules ${BoldGreen}\nDid you use 'git clone --recursive' to checkout all repositories?${ColourReset}")
34-
endif()
35-
3614
include(EthPolicy)
3715
eth_policy()
3816

3917
# project name and version should be set after cmake_policy CMP0048
40-
project(cpp-ethereum VERSION "1.2.9")
18+
project(cpp-ethereum VERSION "1.3.0")
4119

4220
include(EthCompilerSettings)
43-
4421
include(EthExecutableHelper)
45-
4622
include(EthDependencies)
47-
4823
include(EthUtils)
49-
5024
include(EthOptions)
51-
configure_project()
25+
configure_project(CPUID CURL ETHASHCL EVMJIT FATDB GUI MINIUPNPC OLYMPIC ROCKSDB PARANOID SOLIDITY TESTS VMTRACE)
26+
27+
add_subdirectory(eth)
28+
add_subdirectory(libdevcore)
29+
add_subdirectory(libdevcrypto)
30+
add_subdirectory(libethash)
31+
add_subdirectory(libethashseal)
32+
add_subdirectory(libethcore)
33+
add_subdirectory(libethereum)
34+
add_subdirectory(libevm)
35+
add_subdirectory(libevmcore)
36+
if (NOT EMSCRIPTEN)
37+
add_subdirectory(libp2p)
38+
endif()
39+
add_subdirectory(libweb3jsonrpc)
40+
add_subdirectory(libwebthree)
41+
add_subdirectory(libwhisper)
5242

53-
add_subdirectory(webthree-helpers/utils)
43+
if (ETHASHCL)
44+
add_subdirectory(libethash-cl)
45+
endif()
5446

55-
add_subdirectory(libweb3core)
56-
add_subdirectory(libethereum)
57-
add_subdirectory(webthree)
47+
if (EVMJIT)
48+
add_subdirectory(evmjit)
49+
endif()
50+
51+
if (TOOLS)
52+
add_subdirectory(ethkey)
53+
add_subdirectory(ethminer)
54+
add_subdirectory(ethvm)
55+
if (NOT EMSCRIPTEN)
56+
add_subdirectory(rlp)
57+
add_subdirectory(bench)
58+
endif()
59+
endif()
60+
61+
if (TESTS)
62+
add_subdirectory(test/libethereum/test)
63+
add_subdirectory(test/libweb3core/test)
64+
add_subdirectory(test/webthree/test)
65+
endif()
66+
67+
# TODO - split out json_spirit, libscrypt and sec256k1
68+
add_subdirectory(utils)

appveyor.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#------------------------------------------------------------------------------
2+
# Appveyor configuration file for cpp-ethereum.
3+
#
4+
# The documentation for cpp-ethereum is hosted at:
5+
#
6+
# http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/
7+
#
8+
# TODO - Address the hardcoded paths in this file.
9+
# See https://github.com/ethereum/webthree-umbrella/issues/625.
10+
#
11+
# ------------------------------------------------------------------------------
12+
# This file is part of cpp-ethereum.
13+
#
14+
# cpp-ethereum is free software: you can redistribute it and/or modify
15+
# it under the terms of the GNU General Public License as published by
16+
# the Free Software Foundation, either version 3 of the License, or
17+
# (at your option) any later version.
18+
#
19+
# cpp-ethereum is distributed in the hope that it will be useful,
20+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
21+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22+
# GNU General Public License for more details.
23+
#
24+
# You should have received a copy of the GNU General Public License
25+
# along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>
26+
#
27+
# (c) 2016 cpp-ethereum contributors.
28+
#------------------------------------------------------------------------------
29+
30+
version: 1.3.0.{build}
31+
branches:
32+
only:
33+
- develop
34+
- merge_repos
35+
- release
36+
skip_tags: true
37+
os: Visual Studio 2015
38+
environment:
39+
TESTS: Off
40+
configuration:
41+
- RelWithDebInfo
42+
install:
43+
- git submodule update --init --recursive
44+
- scripts/install_deps.bat
45+
- set ETHEREUM_DEPS_PATH=%APPVEYOR_BUILD_FOLDER%\deps\install
46+
before_build:
47+
- if not exist build mkdir build
48+
- cd build
49+
- cmake -G "Visual Studio 14 2015 Win64" .. -DTESTS=%TESTS%
50+
build_script:
51+
- msbuild cpp-ethereum.sln /p:Configuration=%CONFIGURATION% /m:%NUMBER_OF_PROCESSORS% /v:minimal
52+
- cd %APPVEYOR_BUILD_FOLDER%
53+
- scripts\release.bat %CONFIGURATION% %ETHEREUM_DEPS_PATH% %TESTS%
54+
test_script:
55+
- cd %APPVEYOR_BUILD_FOLDER%
56+
- scripts\tests.bat %TESTS% %CONFIGURATION% %APPVEYOR_BUILD_FOLDER% %ETHEREUM_DEPS_PATH%
57+
artifacts:
58+
- path: cpp-ethereum-develop-windows.zip
59+
name: cpp-ethereum-develop-windows-zip
60+
deploy:
61+
release: cpp-ethereum-develop-v$(APPVEYOR_BUILD_VERSION)
62+
tag: develop-v$(APPVEYOR_BUILD_VERSION)
63+
description: 'Development build of cpp-ethereum at commit $(APPVEYOR_REPO_COMMIT).\n\n$(APPVEYOR_REPO_COMMIT_MESSAGE)\n\nCommitted by $(APPVEYOR_REPO_COMMIT_AUTHOR), $(APPVEYOR_REPO_COMMIT_TIMESTAMP).'
64+
prerelease: true
65+
provider: GitHub
66+
auth_token:
67+
secure: yukM9mHUbzuZSS5WSBLKSW0yGJerJEqAXkFhDhSHBBcKJE7GAryjQsdO9Kxh3yRv
68+
artifact: cpp-ethereum-develop-windows-zip
69+
on:
70+
branch: merge_repos

cmake/EthOptions.cmake

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ macro(configure_project)
2121
eth_default_option(TOOLS ON)
2222
eth_default_option(ETHASHCL ON)
2323
eth_default_option(EVMJIT OFF)
24+
eth_default_option(SOLIDITY ON)
2425

2526
# Resolve any clashes between incompatible options.
2627
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
@@ -39,6 +40,15 @@ macro(configure_project)
3940
set(SUPPORT_${FEATURE} TRUE)
4041
endforeach()
4142

43+
# Temporary pre-processor symbol used to indicate that we are building the
44+
# codebase using the post-repo-remerge "cpp-ethereum" directory. That just
45+
# affects a handful of include paths for including the generated BuildInfo.h
46+
# file, which is generated in a different location after the merger, because
47+
# we have no need for multiple versions anymore.
48+
#
49+
# TODO - When we are "over the transition" this needs to be stripped out again.
50+
add_definitions(-DETH_AFTER_REPOSITORY_MERGE)
51+
4252
# TODO: Eliminate this pre-processor symbol, which is a bad pattern.
4353
# Common code has no business knowing which application it is part of.
4454
add_definitions(-DETH_TRUE)
@@ -139,6 +149,9 @@ if (SUPPORT_ETHASHCL)
139149
endif()
140150
if (SUPPORT_EVMJIT)
141151
message("-- EVMJIT Build LLVM-based JIT EVM ${EVMJIT}")
152+
endif()
153+
if (SUPPORT_SOLIDITY)
154+
message("-- SOLIDITY Build Solidity ${SOLIDITY}")
142155
endif()
143156
message("------------------------------------------------------------------------")
144157
message("")

0 commit comments

Comments
 (0)