From 2d8adb765194464c2d37601530a13fa043427495 Mon Sep 17 00:00:00 2001 From: Mate Soos Date: Thu, 30 Jun 2022 03:22:04 +0800 Subject: [PATCH] Adding required stuff for static compilation --- CMakeLists.txt | 8 ++++++++ libsmtutil/CMakeLists.txt | 10 +++++----- libsolidity/CMakeLists.txt | 2 +- libyul/CMakeLists.txt | 2 +- tools/CMakeLists.txt | 3 +-- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 759f69a53..27923b1b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,6 +35,14 @@ endif() option(SOLC_LINK_STATIC "Link solc executable statically on supported platforms" OFF) option(SOLC_STATIC_STDLIBS "Link solc against static versions of libgcc and libstdc++ on supported platforms" OFF) option(STRICT_Z3_VERSION "Use the latest version of Z3" ON) +option(STATICCOMPILE "Compile to static executable" OFF) +if (STATICCOMPILE) + set(BUILD_SHARED_LIBS OFF) + set(Boost_USE_STATIC_LIBS ON) + set(SOLC_STATIC_STDLIBS ON) + set(SOLC_LINK_STATIC ON) + set(CMAKE_EXE_LINKER_FLAGS "-static") +endif() # Setup cccache. include(EthCcache) diff --git a/libsmtutil/CMakeLists.txt b/libsmtutil/CMakeLists.txt index af7f47b60..f839b546e 100644 --- a/libsmtutil/CMakeLists.txt +++ b/libsmtutil/CMakeLists.txt @@ -37,15 +37,15 @@ if (${USE_Z3_DLOPEN}) endif() add_library(smtutil ${sources} ${z3_SRCS} ${cvc4_SRCS}) -target_link_libraries(smtutil PUBLIC solutil Boost::boost) +target_link_libraries(smtutil LINK_PUBLIC solutil Boost::boost) if (${USE_Z3_DLOPEN}) - target_include_directories(smtutil PUBLIC ${Z3_HEADER_PATH}) - target_link_libraries(smtutil PUBLIC ${CMAKE_DL_LIBS}) + target_include_directories(smtutil LINK_PUBLIC ${Z3_HEADER_PATH}) + target_link_libraries(smtutil LINK_PUBLIC ${CMAKE_DL_LIBS}) elseif (${Z3_FOUND}) - target_link_libraries(smtutil PUBLIC z3::libz3) + target_link_libraries(smtutil LINK_PUBLIC z3::libz3) endif() if (${CVC4_FOUND}) - target_link_libraries(smtutil PUBLIC CVC4::CVC4) + target_link_libraries(smtutil LINK_PUBLIC CVC4::CVC4) endif() diff --git a/libsolidity/CMakeLists.txt b/libsolidity/CMakeLists.txt index 3d2845463..e316837b3 100644 --- a/libsolidity/CMakeLists.txt +++ b/libsolidity/CMakeLists.txt @@ -175,4 +175,4 @@ set(sources ) add_library(solidity ${sources}) -target_link_libraries(solidity PUBLIC yul evmasm langutil smtutil solutil Boost::boost fmt::fmt-header-only) +target_link_libraries(solidity LINK_PUBLIC yul evmasm langutil smtutil solutil Boost::boost fmt::fmt-header-only) diff --git a/libyul/CMakeLists.txt b/libyul/CMakeLists.txt index 806f094fe..69a2fe85f 100644 --- a/libyul/CMakeLists.txt +++ b/libyul/CMakeLists.txt @@ -223,4 +223,4 @@ add_library(yul optimiser/VarNameCleaner.h ) -target_link_libraries(yul PUBLIC evmasm solutil langutil smtutil fmt::fmt-header-only) +target_link_libraries(yul LINK_PUBLIC evmasm solutil langutil smtutil fmt::fmt-header-only) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 7415e0d01..2230cb4ab 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -50,9 +50,8 @@ target_link_libraries(yul-phaser PRIVATE phaser) install(TARGETS yul-phaser DESTINATION "${CMAKE_INSTALL_BINDIR}") - add_executable(satsolver satsolver-main.cpp) target_link_libraries(satsolver PUBLIC solidity range-v3 Boost::boost Boost::program_options) add_executable(solsmt solsmt.cpp) -target_link_libraries(solsmt PRIVATE smtutil solutil range-v3 Boost::boost Boost::program_options) +target_link_libraries(solsmt LINK_PRIVATE smtutil solutil range-v3 Boost::boost Boost::program_options)