diff options
author | chriseth <chris@ethereum.org> | 2018-11-14 18:11:41 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-14 18:11:41 +0800 |
commit | 17e81c6ecabe3be8f0553e13ab93393d7315a4d0 (patch) | |
tree | ec9c1a0c5f4b2202e30b43106aa5f79cc86f2338 | |
parent | bf5b94587f5a6d4d631b91081608498a71362cf1 (diff) | |
parent | 74553efb69cedbd5b24e6594df0fbf525718659d (diff) | |
download | dexon-solidity-17e81c6ecabe3be8f0553e13ab93393d7315a4d0.tar.gz 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.yml | 2 | ||||
-rw-r--r-- | CMakeLists.txt | 9 | ||||
-rw-r--r-- | Changelog.md | 1 | ||||
-rw-r--r-- | docs/lll.rst | 7 | ||||
-rw-r--r-- | test/CMakeLists.txt | 13 | ||||
-rw-r--r-- | test/boostTest.cpp | 2 | ||||
-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 |