aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2016-11-08 20:47:52 +0800
committerGitHub <noreply@github.com>2016-11-08 20:47:52 +0800
commit7a30e8cf6edd3749e908913794aa6b195ba7520b (patch)
tree4ed6b70b663c2b344f81d019f8764584b02b69c3
parentdd0879fe438af22d6db49826e800ccd14c3780e7 (diff)
parent598154ed17f4155406ec1c047f3294c316ebd658 (diff)
downloaddexon-solidity-7a30e8cf6edd3749e908913794aa6b195ba7520b.tar.gz
dexon-solidity-7a30e8cf6edd3749e908913794aa6b195ba7520b.tar.zst
dexon-solidity-7a30e8cf6edd3749e908913794aa6b195ba7520b.zip
Merge pull request #1252 from ethereum/jsoncpp-from-source
Build jsoncpp from source using jsoncpp.cmake script
-rw-r--r--.travis.yml4
-rw-r--r--CMakeLists.txt1
-rw-r--r--cmake/FindJsoncpp.cmake50
-rw-r--r--cmake/UseJsoncpp.cmake10
-rw-r--r--cmake/UseSolidity.cmake3
m---------deps0
-rw-r--r--libdevcore/Common.h1
-rw-r--r--libevmasm/CMakeLists.txt3
-rw-r--r--liblll/CMakeLists.txt3
-rwxr-xr-xscripts/install_deps.sh10
-rwxr-xr-xscripts/release_ppa.sh21
-rwxr-xr-xscripts/travis-emscripten/build_emscripten.sh30
-rwxr-xr-xscripts/travis-emscripten/install_deps.sh2
13 files changed, 9 insertions, 129 deletions
diff --git a/.travis.yml b/.travis.yml
index 1f35a509..2748c460 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -135,10 +135,8 @@ git:
cache:
ccache: true
directories:
- - cryptopp
- boost_1_57_0
- build
- - jsoncpp
install:
- test $TRAVIS_INSTALL_DEPS != On || ./scripts/install_deps.sh
@@ -164,7 +162,7 @@ script:
# in Solidity's RPC setup and some will be in 'eth'. It seems unlikely that Solidity
# itself is broken from the failure messages which we are seeing.
#
- # More details on known issues at https://github.com/ethereum/solidity/issues/769
+ # More details on known issues at https://github.com/ethereum/solidity/issues/769
- test $TRAVIS_TESTS != On || (cd $TRAVIS_BUILD_DIR && (./scripts/tests.sh || ./scripts/tests.sh || ./scripts/tests.sh) )
env:
global:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4a3437df..20c96869 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,6 +13,7 @@ project(solidity VERSION ${PROJECT_VERSION})
# Let's find our dependencies
include(EthDependencies)
+include(deps/jsoncpp.cmake)
# Figure out what compiler and system are we using
include(EthCompilerSettings)
diff --git a/cmake/FindJsoncpp.cmake b/cmake/FindJsoncpp.cmake
deleted file mode 100644
index e8258b71..00000000
--- a/cmake/FindJsoncpp.cmake
+++ /dev/null
@@ -1,50 +0,0 @@
-# Find jsoncpp
-#
-# Find the jsoncpp includes and library
-#
-# if you nee to add a custom library search path, do it via via CMAKE_PREFIX_PATH
-#
-# This module defines
-# JSONCPP_INCLUDE_DIRS, where to find header, etc.
-# JSONCPP_LIBRARIES, the libraries needed to use jsoncpp.
-# JSONCPP_FOUND, If false, do not try to use jsoncpp.
-
-# only look in default directories
-find_path(
- JSONCPP_INCLUDE_DIR
- NAMES json/json.h
- PATH_SUFFIXES jsoncpp
- DOC "jsoncpp include dir"
-)
-
-find_library(
- JSONCPP_LIBRARY
- NAMES jsoncpp
- DOC "jsoncpp library"
-)
-
-set(JSONCPP_INCLUDE_DIRS ${JSONCPP_INCLUDE_DIR})
-set(JSONCPP_LIBRARIES ${JSONCPP_LIBRARY})
-
-# debug library on windows
-# same naming convention as in qt (appending debug library with d)
-# boost is using the same "hack" as us with "optimized" and "debug"
-if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
-
- find_library(
- JSONCPP_LIBRARY_DEBUG
- NAMES jsoncppd
- DOC "jsoncpp debug library"
- )
-
- set(JSONCPP_LIBRARIES optimized ${JSONCPP_LIBRARIES} debug ${JSONCPP_LIBRARY_DEBUG})
-
-endif()
-
-# handle the QUIETLY and REQUIRED arguments and set JSONCPP_FOUND to TRUE
-# if all listed variables are TRUE, hide their existence from configuration view
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(jsoncpp DEFAULT_MSG
- JSONCPP_LIBRARY JSONCPP_INCLUDE_DIR)
-mark_as_advanced (JSONCPP_INCLUDE_DIR JSONCPP_LIBRARY)
-
diff --git a/cmake/UseJsoncpp.cmake b/cmake/UseJsoncpp.cmake
deleted file mode 100644
index 6f605283..00000000
--- a/cmake/UseJsoncpp.cmake
+++ /dev/null
@@ -1,10 +0,0 @@
-function(eth_apply TARGET REQUIRED)
- find_package (Jsoncpp 0.60)
- eth_show_dependency(JSONCPP JsonCpp)
- if (JSONCPP_FOUND)
- target_include_directories(${TARGET} SYSTEM BEFORE PUBLIC ${JSONCPP_INCLUDE_DIRS})
- target_link_libraries(${TARGET} ${JSONCPP_LIBRARIES})
- elseif (NOT ${REQUIRED} STREQUAL "OPTIONAL")
- message(FATAL_ERROR "Jsoncpp library not found")
- endif()
-endfunction()
diff --git a/cmake/UseSolidity.cmake b/cmake/UseSolidity.cmake
index 9780464c..5080f71b 100644
--- a/cmake/UseSolidity.cmake
+++ b/cmake/UseSolidity.cmake
@@ -15,8 +15,7 @@ function(eth_apply TARGET REQUIRED SUBMODULE)
target_include_directories(${TARGET} PUBLIC ${Solidity_INCLUDE_DIRS})
if (${SUBMODULE} STREQUAL "solevmasm")
- eth_use(${TARGET} ${REQUIRED} Jsoncpp)
- target_link_libraries(${TARGET} ${Solidity_SOLEVMASM_LIBRARIES})
+ target_link_libraries(${TARGET} ${Solidity_SOLEVMASM_LIBRARIES} jsoncpp)
endif()
if (${SUBMODULE} STREQUAL "lll")
diff --git a/deps b/deps
-Subproject f2ede70f33633b26a27299ff39995914db2c692
+Subproject 03f3b63826b8b6e88355b30b725aa1b8df760f2
diff --git a/libdevcore/Common.h b/libdevcore/Common.h
index 43ae7162..d65cfeac 100644
--- a/libdevcore/Common.h
+++ b/libdevcore/Common.h
@@ -70,7 +70,6 @@
#include "vector_ref.h"
-// CryptoPP defines byte in the global namespace, so must we.
using byte = uint8_t;
// Quote a given token stream to turn it into a string.
diff --git a/libevmasm/CMakeLists.txt b/libevmasm/CMakeLists.txt
index 14800f41..9cc3e93e 100644
--- a/libevmasm/CMakeLists.txt
+++ b/libevmasm/CMakeLists.txt
@@ -8,6 +8,7 @@ file(GLOB HEADERS "*.h")
include_directories(BEFORE ..)
add_library(${EXECUTABLE} ${SRC_LIST} ${HEADERS})
-eth_use(${EXECUTABLE} REQUIRED Jsoncpp Dev::soldevcore)
+eth_use(${EXECUTABLE} REQUIRED Dev::soldevcore)
+target_link_libraries(${EXECUTABLE} jsoncpp)
install( TARGETS ${EXECUTABLE} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib )
diff --git a/liblll/CMakeLists.txt b/liblll/CMakeLists.txt
index b9d220ab..db90025a 100644
--- a/liblll/CMakeLists.txt
+++ b/liblll/CMakeLists.txt
@@ -5,9 +5,6 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTATICLIB")
aux_source_directory(. SRC_LIST)
-#include_directories(BEFORE ${JSONCPP_INCLUDE_DIRS})
-#include_directories(${Boost_INCLUDE_DIRS})
-
set(EXECUTABLE lll)
file(GLOB HEADERS "*.h")
diff --git a/scripts/install_deps.sh b/scripts/install_deps.sh
index 334c62d4..c9f82769 100755
--- a/scripts/install_deps.sh
+++ b/scripts/install_deps.sh
@@ -105,7 +105,6 @@ case $(uname -s) in
brew install boost
brew install cmake
- brew install jsoncpp
# We should really 'brew install' our eth client here, but at the time of writing
# the bottle is known broken, so we will just cheat and use a hardcoded ZIP for
@@ -164,7 +163,7 @@ case $(uname -s) in
# See https://pkgs.alpinelinux.org/
apk update
- apk add boost-dev build-base cmake jsoncpp-dev
+ apk add boost-dev build-base cmake
;;
@@ -219,7 +218,6 @@ case $(uname -s) in
gcc \
git \
libboost-all-dev \
- libjsoncpp-dev \
unzip
;;
@@ -321,8 +319,7 @@ case $(uname -s) in
build-essential \
cmake \
git \
- libboost-all-dev \
- libjsoncpp-dev
+ libboost-all-dev
# Install 'eth', for use in the Solidity Tests-over-IPC.
sudo add-apt-repository -y ppa:ethereum/ethereum
@@ -363,9 +360,6 @@ case $(uname -s) in
sudo yum -y remove boost-devel
sudo wget http://repo.enetres.net/enetres.repo -O /etc/yum.repos.d/enetres.repo
sudo yum install boost-devel
-
- # And finally jsoncpp
- sudo yum -y install jsoncpp-devel
else
echo "Aborted CentOS Solidity Dependency Installation";
exit 1
diff --git a/scripts/release_ppa.sh b/scripts/release_ppa.sh
index 7231f582..39003795 100755
--- a/scripts/release_ppa.sh
+++ b/scripts/release_ppa.sh
@@ -76,21 +76,6 @@ cp /tmp/${packagename}_${debversion}.orig.tar.gz ../
# Create debian package information
-case $distribution in
- trusty)
- jsoncpplib=libjsoncpp0
- ;;
- vivid)
- jsoncpplib=libjsoncpp0
- ;;
- wily)
- jsoncpplib=libjsoncpp0v5
- ;;
- *)
- jsoncpplib=libjsoncpp1
- ;;
-esac
-
mkdir debian
echo 9 > debian/compat
cat <<EOF > debian/control
@@ -99,7 +84,6 @@ Section: science
Priority: extra
Maintainer: Christian (Buildserver key) <builds@ethereum.org>
Build-Depends: debhelper (>= 9.0.0),
- libcryptopp-dev,
cmake,
g++-4.8,
git,
@@ -107,8 +91,7 @@ Build-Depends: debhelper (>= 9.0.0),
libboost-all-dev,
automake,
libtool,
- scons,
- libjsoncpp-dev
+ scons
Standards-Version: 3.9.5
Homepage: https://ethereum.org
Vcs-Git: git://github.com/ethereum/solidity.git
@@ -117,7 +100,7 @@ Vcs-Browser: https://github.com/ethereum/solidity
Package: solc
Architecture: any-i386 any-amd64
Multi-Arch: same
-Depends: \${shlibs:Depends}, \${misc:Depends}, $jsoncpplib
+Depends: \${shlibs:Depends}, \${misc:Depends}
Replaces: lllc (<< 1:0.3.6)
Conflicts: libethereum (<= 1.2.9)
Description: Solidity compiler.
diff --git a/scripts/travis-emscripten/build_emscripten.sh b/scripts/travis-emscripten/build_emscripten.sh
index 285c6338..f5374a33 100755
--- a/scripts/travis-emscripten/build_emscripten.sh
+++ b/scripts/travis-emscripten/build_emscripten.sh
@@ -40,32 +40,6 @@ apt-get -y install git-core
export WORKSPACE=/src
-# CryptoPP
-echo -en 'travis_fold:start:compiling_cryptopp\\r'
-cd "$WORKSPACE/cryptopp"
-# if .git exists, it is a fresh checkout, otherwise it comes from the cache
-# and is already compiled
-test -e .git && (
-emcmake cmake -DCRYPTOPP_LIBRARY_TYPE=STATIC -DCRYPTOPP_RUNTIME_TYPE=STATIC && emmake make -j 4
-ln -s . src/cryptopp || true
-rm -rf .git
-)
-echo -en 'travis_fold:end:compiling_cryptopp\\r'
-
-# Json-CPP
-echo -en 'travis_fold:start:compiling_jsoncpp\\r'
-cd "$WORKSPACE/jsoncpp"
-# if .git exists, it is a fresh checkout, otherwise it comes from the cache
-# and is already compiled
-test -e .git && (
-emcmake cmake -DJSONCPP_LIB_BUILD_STATIC=ON -DJSONCPP_LIB_BUILD_SHARED=OFF \
- -DJSONCPP_WITH_TESTS=OFF -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF \
- -G "Unix Makefiles" .
-emmake make -j 4
-rm -rf .git
-)
-echo -en 'travis_fold:end:compiling_jsoncpp\\r'
-
# Boost
echo -en 'travis_fold:start:compiling_boost\\r'
cd "$WORKSPACE"/boost_1_57_0
@@ -112,10 +86,6 @@ emcmake cmake \
-DBoost_THREAD_LIBRARIES="$WORKSPACE"/boost_1_57_0/libboost_thread.a \
-DBoost_UNIT_TEST_FRAMEWORK_LIBRARY="$WORKSPACE"/boost_1_57_0/libboost_unit_test_framework.a \
-DBoost_UNIT_TEST_FRAMEWORK_LIBRARIES="$WORKSPACE"/boost_1_57_0/libboost_unit_test_framework.a \
- -DJSONCPP_LIBRARY="$WORKSPACE"/jsoncpp/src/lib_json/libjsoncpp.a \
- -DJSONCPP_INCLUDE_DIR="$WORKSPACE"/jsoncpp/include/ \
- -DCRYPTOPP_LIBRARY="$WORKSPACE"/cryptopp/src/libcryptlib.a \
- -DCRYPTOPP_INCLUDE_DIR="$WORKSPACE"/cryptopp/src/ \
-DDev_DEVCORE_LIBRARY="$WORKSPACE"/solidity/build/libdevcore/libsoldevcore.a \
-DEth_EVMASM_LIBRARY="$WORKSPACE"/solidity/build/libevmasm/libsolevmasm.a \
-DETH_STATIC=1 -DTESTS=0 \
diff --git a/scripts/travis-emscripten/install_deps.sh b/scripts/travis-emscripten/install_deps.sh
index 2c0e9f26..252c74b0 100755
--- a/scripts/travis-emscripten/install_deps.sh
+++ b/scripts/travis-emscripten/install_deps.sh
@@ -30,8 +30,6 @@
set -ev
echo -en 'travis_fold:start:installing_dependencies\\r'
-test -e cryptopp -a -e cryptopp/src || git clone https://github.com/mmoss/cryptopp.git
-test -e jsoncpp -a -e jsoncpp/include || git clone https://github.com/open-source-parsers/jsoncpp.git
test -e boost_1_57_0 -a -e boost_1_57_0/boost || (
wget 'http://downloads.sourceforge.net/project/boost/boost/'\
'1.57.0/boost_1_57_0.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2F'\