mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
# vim:syntax=dockerfile
 | 
						|
#------------------------------------------------------------------------------
 | 
						|
# Dockerfile for building and testing Solidity Compiler on CI
 | 
						|
# Target: Emscripten
 | 
						|
# URL: https://hub.docker.com/r/ethereum/solidity-buildpack-deps
 | 
						|
#
 | 
						|
# This file is part of solidity.
 | 
						|
#
 | 
						|
# solidity is free software: you can redistribute it and/or modify
 | 
						|
# it under the terms of the GNU General Public License as published by
 | 
						|
# the Free Software Foundation, either version 3 of the License, or
 | 
						|
# (at your option) any later version.
 | 
						|
#
 | 
						|
# solidity is distributed in the hope that it will be useful,
 | 
						|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
# GNU General Public License for more details.
 | 
						|
#
 | 
						|
# You should have received a copy of the GNU General Public License
 | 
						|
# along with solidity.  If not, see <http://www.gnu.org/licenses/>
 | 
						|
#
 | 
						|
# (c) 2016-2019 solidity contributors.
 | 
						|
#------------------------------------------------------------------------------
 | 
						|
#
 | 
						|
# The Emscripten SDK at https://github.com/emscripten-core/emsdk/
 | 
						|
# contains a Makefile in the docker/ subdirectory that can be used to create the
 | 
						|
# required base image using:
 | 
						|
#
 | 
						|
#   make version=2.0.12 build
 | 
						|
#
 | 
						|
FROM emscripten/emsdk:2.0.12 AS base
 | 
						|
LABEL version="4"
 | 
						|
 | 
						|
ADD emscripten.jam /usr/src
 | 
						|
RUN set -ex; \
 | 
						|
	cd /usr/src; \
 | 
						|
	git clone https://github.com/Z3Prover/z3.git -b z3-4.8.10 --depth 1 ; \
 | 
						|
	cd z3; \
 | 
						|
	mkdir build; \
 | 
						|
	cd build; \
 | 
						|
	emcmake cmake \
 | 
						|
		-DCMAKE_BUILD_TYPE=MinSizeRel \
 | 
						|
		-DCMAKE_INSTALL_PREFIX=/emsdk/upstream/emscripten/system \
 | 
						|
		-DZ3_BUILD_LIBZ3_SHARED=OFF \
 | 
						|
		-DZ3_ENABLE_EXAMPLE_TARGETS=OFF \
 | 
						|
		-DZ3_BUILD_TEST_EXECUTABLES=OFF \
 | 
						|
		-DZ3_BUILD_EXECUTABLE=OFF \
 | 
						|
		-DZ3_SINGLE_THREADED=ON \
 | 
						|
		-DCMAKE_CXX_FLAGS="-s DISABLE_EXCEPTION_CATCHING=0" \
 | 
						|
		..; \
 | 
						|
	make ; make install; \
 | 
						|
	rm -r /usr/src/z3; \
 | 
						|
	cd /usr/src; \
 | 
						|
	wget -q 'https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.bz2' -O boost.tar.bz2; \
 | 
						|
	test "$(sha256sum boost.tar.bz2)" = "953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb  boost.tar.bz2"; \
 | 
						|
	tar -xf boost.tar.bz2; \
 | 
						|
	rm boost.tar.bz2; \
 | 
						|
	cd boost_1_75_0; \
 | 
						|
	mv ../emscripten.jam .; \
 | 
						|
	./bootstrap.sh; \
 | 
						|
	echo "using emscripten : : em++ ;" >> project-config.jam ; \
 | 
						|
	./b2 toolset=emscripten link=static variant=release threading=single runtime-link=static \
 | 
						|
		--with-system --with-filesystem --with-test --with-program_options \
 | 
						|
		cxxflags="-s DISABLE_EXCEPTION_CATCHING=0 -Wno-unused-local-typedef -Wno-variadic-macros -Wno-c99-extensions -Wno-all" \
 | 
						|
	       --prefix=/emsdk/upstream/emscripten/system install; \
 | 
						|
	rm -r /usr/src/boost_1_75_0
 |