aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-11-14 18:11:41 +0800
committerGitHub <noreply@github.com>2018-11-14 18:11:41 +0800
commit17e81c6ecabe3be8f0553e13ab93393d7315a4d0 (patch)
treeec9c1a0c5f4b2202e30b43106aa5f79cc86f2338
parentbf5b94587f5a6d4d631b91081608498a71362cf1 (diff)
parent74553efb69cedbd5b24e6594df0fbf525718659d (diff)
downloaddexon-solidity-17e81c6ecabe3be8f0553e13ab93393d7315a4d0.tar
dexon-solidity-17e81c6ecabe3be8f0553e13ab93393d7315a4d0.tar.gz
dexon-solidity-17e81c6ecabe3be8f0553e13ab93393d7315a4d0.tar.bz2
dexon-solidity-17e81c6ecabe3be8f0553e13ab93393d7315a4d0.tar.lz
dexon-solidity-17e81c6ecabe3be8f0553e13ab93393d7315a4d0.tar.xz
dexon-solidity-17e81c6ecabe3be8f0553e13ab93393d7315a4d0.tar.zst
dexon-solidity-17e81c6ecabe3be8f0553e13ab93393d7315a4d0.zip
Merge pull request #5410 from ethereum/lll-build
Do not build LLL unless requested via the LLL cmake option
-rw-r--r--.circleci/config.yml2
-rw-r--r--CMakeLists.txt9
-rw-r--r--Changelog.md1
-rw-r--r--docs/lll.rst7
-rw-r--r--test/CMakeLists.txt13
-rw-r--r--test/boostTest.cpp2
-rw-r--r--test/liblll/LLL_ENS.cpp (renamed from test/contracts/LLL_ENS.cpp)0
-rw-r--r--test/liblll/LLL_ERC20.cpp (renamed from test/contracts/LLL_ERC20.cpp)0
8 files changed, 28 insertions, 6 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index cf9c9212..dd0011c1 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -146,6 +146,7 @@ jobs:
TERM: xterm
CC: /usr/bin/clang-7
CXX: /usr/bin/clang++-7
+ CMAKE_OPTIONS: -DLLL=ON
steps:
- checkout
- run:
@@ -167,6 +168,7 @@ jobs:
xcode: "10.0.0"
environment:
TERM: xterm
+ CMAKE_OPTIONS: -DLLL=ON
steps:
- checkout
- run:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e8a0e56d..86769672 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,9 +11,10 @@ eth_policy()
set(PROJECT_VERSION "0.5.1")
project(solidity VERSION ${PROJECT_VERSION})
+option(LLL "Build LLL" OFF)
option(SOLC_LINK_STATIC "Link solc executable statically on supported platforms" OFF)
option(LLLC_LINK_STATIC "Link lllc executable statically on supported platforms" OFF)
-option(INSTALL_LLLC "Include lllc executable in installation" OFF)
+option(INSTALL_LLLC "Include lllc executable in installation" ${LLL})
# Setup cccache.
include(EthCcache)
@@ -50,8 +51,10 @@ add_subdirectory(libsolc)
if (NOT EMSCRIPTEN)
add_subdirectory(solc)
- add_subdirectory(liblll)
- add_subdirectory(lllc)
+ if (LLL)
+ add_subdirectory(liblll)
+ add_subdirectory(lllc)
+ endif()
endif()
if (TESTS AND NOT EMSCRIPTEN)
diff --git a/Changelog.md b/Changelog.md
index bb97c35b..b5e7eed8 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -4,6 +4,7 @@ Language Features:
Compiler Features:
+ * Build System: LLL is not built anymore by default. Must configure it with CMake as `-DLLL=ON`.
Bugfixes:
diff --git a/docs/lll.rst b/docs/lll.rst
index d9409bf8..16be829e 100644
--- a/docs/lll.rst
+++ b/docs/lll.rst
@@ -9,6 +9,13 @@ LLL is a low-level language for the EVM with an s-expressions syntax.
The Solidity repository contains an LLL compiler, which shares the assembler subsystem with Solidity.
However, apart from maintaining that it still compiles, no other improvements are made to it.
+It is not built unless specifically requested:
+
+.. code-block:: bash
+
+ $ cmake -DLLL=ON ..
+ $ cmake --build .
+
.. warning::
The LLL codebase is deprecated and will be removed from the Solidity repository in the future.
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 91c1b200..3b674502 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -9,8 +9,10 @@ file(GLOB libevmasm_sources "libevmasm/*.cpp")
file(GLOB libevmasm_headers "libevmasm/*.h")
file(GLOB libyul_sources "libyul/*.cpp")
file(GLOB libyul_headers "libyul/*.h")
-file(GLOB liblll_sources "liblll/*.cpp")
-file(GLOB liblll_headers "liblll/*.h")
+if (LLL)
+ file(GLOB liblll_sources "liblll/*.cpp")
+ file(GLOB liblll_headers "liblll/*.h")
+endif()
file(GLOB libsolidity_sources "libsolidity/*.cpp")
file(GLOB libsolidity_headers "libsolidity/*.h")
@@ -22,7 +24,12 @@ add_executable(soltest ${sources} ${headers}
${liblll_sources} ${liblll_headers}
${libsolidity_sources} ${libsolidity_headers}
)
-target_link_libraries(soltest PRIVATE libsolc solidity lll evmasm devcore ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES})
+target_link_libraries(soltest PRIVATE libsolc solidity evmasm devcore ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES})
+
+if (LLL)
+ target_link_libraries(soltest PRIVATE lll)
+ target_compile_definitions(soltest PRIVATE HAVE_LLL=1)
+endif()
if (NOT Boost_USE_STATIC_LIBS)
target_compile_definitions(soltest PUBLIC -DBOOST_TEST_DYN_LINK)
diff --git a/test/boostTest.cpp b/test/boostTest.cpp
index 34eeaec9..5352ef85 100644
--- a/test/boostTest.cpp
+++ b/test/boostTest.cpp
@@ -160,9 +160,11 @@ test_suite* init_unit_test_suite( int /*argc*/, char* /*argv*/[] )
"SolidityAuctionRegistrar",
"SolidityFixedFeeRegistrar",
"SolidityWallet",
+#if HAVE_LLL
"LLLERC20",
"LLLENS",
"LLLEndToEndTest",
+#endif
"GasMeterTests",
"SolidityEndToEndTest",
"SolidityOptimizer"
diff --git a/test/contracts/LLL_ENS.cpp b/test/liblll/LLL_ENS.cpp
index cfd6970c..cfd6970c 100644
--- a/test/contracts/LLL_ENS.cpp
+++ b/test/liblll/LLL_ENS.cpp
diff --git a/test/contracts/LLL_ERC20.cpp b/test/liblll/LLL_ERC20.cpp
index 6c6762dd..6c6762dd 100644
--- a/test/contracts/LLL_ERC20.cpp
+++ b/test/liblll/LLL_ERC20.cpp