mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Build jsoncpp from source using jsoncpp.cmake script
This commit is contained in:
parent
5875890576
commit
4bde0a2d36
@ -138,7 +138,6 @@ cache:
|
||||
- cryptopp
|
||||
- boost_1_57_0
|
||||
- build
|
||||
- jsoncpp
|
||||
|
||||
install:
|
||||
- test $TRAVIS_INSTALL_DEPS != On || ./scripts/install_deps.sh
|
||||
@ -164,7 +163,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:
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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()
|
@ -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")
|
||||
|
2
deps
2
deps
@ -1 +1 @@
|
||||
Subproject commit f2ede70f33633b26a27299ff39995914db2c6923
|
||||
Subproject commit ff0c567cc0fd57049b5c29c3b3428097e6ca4644
|
@ -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 )
|
||||
|
@ -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")
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
@ -107,8 +92,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 +101,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.
|
||||
|
@ -52,20 +52,6 @@ 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,8 +98,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 \
|
||||
|
@ -31,7 +31,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'\
|
||||
|
Loading…
Reference in New Issue
Block a user