From 6b4e564b7c8f2a47cafa743e786d8873f2c04078 Mon Sep 17 00:00:00 2001
From: chriseth <c@ethdev.com>
Date: Mon, 14 Sep 2015 18:36:39 +0200
Subject: [PATCH] Changes required to compile on emscripten target.

---
 CMakeLists.txt      |  4 +++-
 solc/CMakeLists.txt | 10 ++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 69cbe0cc7..c65383ec9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,6 +29,8 @@ print_config()
 
 add_subdirectory(libsolidity)
 add_subdirectory(solc)
-add_subdirectory(test)
+if (NOT EMSCRIPTEN)
+	add_subdirectory(test)
+endif()
 
 # TODO installation and packaging rules
diff --git a/solc/CMakeLists.txt b/solc/CMakeLists.txt
index 2d23dab10..40ab0e210 100644
--- a/solc/CMakeLists.txt
+++ b/solc/CMakeLists.txt
@@ -17,5 +17,11 @@ else()
 	eth_install_executable(${EXECUTABLE})
 endif()
 
-add_library(soljson jsonCompiler.cpp ${HEADERS})
-target_link_libraries(soljson solidity)
+if (EMSCRIPTEN)
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s EXPORTED_FUNCTIONS='[\"_compileJSON\",\"_version\"]'")
+	add_executable(soljson jsonCompiler.cpp ${HEADERS})
+	eth_use(soljson REQUIRED Solidity)
+else()
+	add_library(soljson jsonCompiler.cpp ${HEADERS})
+	target_link_libraries(soljson solidity)
+endif()