mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #2836 from ethereum/cmake-toolchains
CMake: Use toolchain files
This commit is contained in:
commit
8d9186b785
@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 3.0.0)
|
|||||||
set(ETH_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}/cmake" CACHE PATH "The the path to the cmake directory")
|
set(ETH_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}/cmake" CACHE PATH "The the path to the cmake directory")
|
||||||
list(APPEND CMAKE_MODULE_PATH ${ETH_CMAKE_DIR})
|
list(APPEND CMAKE_MODULE_PATH ${ETH_CMAKE_DIR})
|
||||||
|
|
||||||
|
include(EthToolchains)
|
||||||
|
|
||||||
# Set cmake_policies
|
# Set cmake_policies
|
||||||
include(EthPolicy)
|
include(EthPolicy)
|
||||||
eth_policy()
|
eth_policy()
|
||||||
|
@ -24,10 +24,6 @@ endif()
|
|||||||
eth_add_cxx_compiler_flag_if_supported(-Wimplicit-fallthrough)
|
eth_add_cxx_compiler_flag_if_supported(-Wimplicit-fallthrough)
|
||||||
|
|
||||||
if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"))
|
if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"))
|
||||||
|
|
||||||
# Use ISO C++14 standard language.
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
|
||||||
|
|
||||||
# Enables all the warnings about constructions that some users consider questionable,
|
# Enables all the warnings about constructions that some users consider questionable,
|
||||||
# and that are easy to avoid. Also enable some extra warning flags that are not
|
# and that are easy to avoid. Also enable some extra warning flags that are not
|
||||||
# enabled by -Wall. Finally, treat at warnings-as-errors, which forces developers
|
# enabled by -Wall. Finally, treat at warnings-as-errors, which forces developers
|
||||||
@ -78,10 +74,8 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
|
|||||||
# into errors, which makes sense.
|
# into errors, which makes sense.
|
||||||
# http://stackoverflow.com/questions/21617158/how-to-silence-unused-command-line-argument-error-with-clang-without-disabling-i
|
# http://stackoverflow.com/questions/21617158/how-to-silence-unused-command-line-argument-error-with-clang-without-disabling-i
|
||||||
add_compile_options(-Qunused-arguments)
|
add_compile_options(-Qunused-arguments)
|
||||||
endif()
|
|
||||||
|
|
||||||
if (EMSCRIPTEN)
|
elseif(EMSCRIPTEN)
|
||||||
# Do not emit a separate memory initialiser file
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --memory-init-file 0")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --memory-init-file 0")
|
||||||
# Leave only exported symbols as public and aggressively remove others
|
# Leave only exported symbols as public and aggressively remove others
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections -Wl,--gc-sections -fvisibility=hidden")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections -Wl,--gc-sections -fvisibility=hidden")
|
||||||
|
8
cmake/EthToolchains.cmake
Normal file
8
cmake/EthToolchains.cmake
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
if(NOT CMAKE_TOOLCHAIN_FILE)
|
||||||
|
# Use default toolchain file if none is provided.
|
||||||
|
set(
|
||||||
|
CMAKE_TOOLCHAIN_FILE
|
||||||
|
"${CMAKE_CURRENT_LIST_DIR}/toolchains/default.cmake"
|
||||||
|
CACHE FILEPATH "The CMake toolchain file"
|
||||||
|
)
|
||||||
|
endif()
|
4
cmake/toolchains/default.cmake
Normal file
4
cmake/toolchains/default.cmake
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Require C++14.
|
||||||
|
set(CMAKE_CXX_STANDARD 14)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
|
||||||
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
2
cmake/toolchains/emscripten.cmake
Normal file
2
cmake/toolchains/emscripten.cmake
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/default.cmake")
|
||||||
|
include("$ENV{EMSCRIPTEN}/cmake/Modules/Platform/Emscripten.cmake")
|
@ -79,9 +79,8 @@ cd $WORKSPACE
|
|||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
cmake \
|
cmake \
|
||||||
-DCMAKE_TOOLCHAIN_FILE=$EMSCRIPTEN/cmake/Modules/Platform/Emscripten.cmake \
|
-DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/emscripten.cmake \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DEMSCRIPTEN=1 \
|
|
||||||
-DBoost_FOUND=1 \
|
-DBoost_FOUND=1 \
|
||||||
-DBoost_USE_STATIC_LIBS=1 \
|
-DBoost_USE_STATIC_LIBS=1 \
|
||||||
-DBoost_USE_STATIC_RUNTIME=1 \
|
-DBoost_USE_STATIC_RUNTIME=1 \
|
||||||
|
Loading…
Reference in New Issue
Block a user