mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Refactoreed CMakeLists for new module system
This commit is contained in:
parent
289b814670
commit
3ea1a62fa9
@ -1,35 +1,15 @@
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
cmake_minimum_required(VERSION 3.0.0)
|
||||
|
||||
cmake_policy(SET CMP0015 NEW)
|
||||
# let cmake autolink dependencies on windows
|
||||
cmake_policy(SET CMP0020 NEW)
|
||||
# this policy was introduced in cmake 3.0
|
||||
# remove if, once 3.0 will be used on unix
|
||||
if (${CMAKE_MAJOR_VERSION} GREATER 2)
|
||||
cmake_policy(SET CMP0043 OLD)
|
||||
endif()
|
||||
|
||||
# TODO use version from Version.h
|
||||
set(PROJECT_VERSION "0.9.42")
|
||||
if (${CMAKE_VERSION} VERSION_GREATER 3.0)
|
||||
cmake_policy(SET CMP0042 OLD) # fix MACOSX_RPATH
|
||||
cmake_policy(SET CMP0048 NEW) # allow VERSION argument in project()
|
||||
project(solidity VERSION ${PROJECT_VERSION})
|
||||
else()
|
||||
project(solidity)
|
||||
endif()
|
||||
|
||||
# Figure out environment.
|
||||
set(ETH_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}/../cpp-ethereum-cmake" CACHE PATH "The the path to the cmake directory")
|
||||
set(ETH_DIR "${CMAKE_CURRENT_LIST_DIR}/../cpp-ethereum" CACHE PATH "The path to the cpp-ethereum directory")
|
||||
set(BUILD_DIR_NAME "build" CACHE STRING "The name of the build directory in cpp-ethereum")
|
||||
set(ETH_BUILD_DIR "${ETH_DIR}/${BUILD_DIR_NAME}")
|
||||
|
||||
# A place where should we look for *.cmake files
|
||||
list(APPEND CMAKE_MODULE_PATH ${ETH_CMAKE_DIR})
|
||||
|
||||
# A place where we should look for ethereum libraries
|
||||
set(CMAKE_LIBRARY_PATH ${ETH_BUILD_DIR})
|
||||
# Set cmake_policies
|
||||
include(EthPolicy)
|
||||
eth_policy()
|
||||
|
||||
# project name and version should be set after cmake_policy CMP0048
|
||||
set(PROJECT_VERSION "0.1.0")
|
||||
project(solidity VERSION ${PROJECT_VERSION})
|
||||
|
||||
# Let's find our dependencies
|
||||
include(EthDependencies)
|
||||
@ -40,16 +20,8 @@ include(EthCompilerSettings)
|
||||
# Include helper macros
|
||||
include(EthExecutableHelper)
|
||||
|
||||
# Include a directory with BuildInfo.h
|
||||
include_directories(${ETH_BUILD_DIR})
|
||||
|
||||
find_package(Eth)
|
||||
|
||||
include_directories(BEFORE ${JSONCPP_INCLUDE_DIRS})
|
||||
include_directories(BEFORE .)
|
||||
include_directories(${Boost_INCLUDE_DIRS})
|
||||
include_directories(${ETH_DIR})
|
||||
include_directories(${CPPETHEREUM_BUILD})
|
||||
# Include utils
|
||||
include(EthUtils)
|
||||
|
||||
add_subdirectory(libsolidity)
|
||||
add_subdirectory(solc)
|
||||
|
@ -10,15 +10,12 @@ set(EXECUTABLE solidity)
|
||||
file(GLOB HEADERS "*.h")
|
||||
|
||||
include_directories(BEFORE ..)
|
||||
include_directories(BEFORE ${JSONCPP_INCLUDE_DIRS})
|
||||
add_library(${EXECUTABLE} ${SRC_LIST} ${HEADERS})
|
||||
add_dependencies(${EXECUTABLE} BuildInfo.h)
|
||||
|
||||
eth_use(${EXECUTABLE} REQUIRED EthCore)
|
||||
|
||||
target_link_libraries(${EXECUTABLE} ${JSONCPP_LIBRARIES})
|
||||
target_link_libraries(${EXECUTABLE} ${Boost_LIBRARIES})
|
||||
target_link_libraries(${EXECUTABLE} ${ETH_DEVCORE_LIBRARY})
|
||||
target_link_libraries(${EXECUTABLE} ${ETH_EVMCORE_LIBRARY})
|
||||
target_link_libraries(${EXECUTABLE} ${ETH_EVMASM_LIBRARY})
|
||||
target_link_libraries(${EXECUTABLE} ${ETH_DEVCRYPTO_LIBRARY})
|
||||
|
||||
install( TARGETS ${EXECUTABLE} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib )
|
||||
install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} )
|
||||
|
@ -13,11 +13,10 @@ set(EXECUTABLE solc)
|
||||
file(GLOB HEADERS "*.h")
|
||||
add_executable(${EXECUTABLE} ${SRC_LIST} ${HEADERS})
|
||||
|
||||
add_dependencies(${EXECUTABLE} BuildInfo.h)
|
||||
eth_use(${EXECUTABLE} REQUIRED EthCore)
|
||||
|
||||
target_link_libraries(${EXECUTABLE} ${Boost_FILESYSTEM_LIBRARIES})
|
||||
target_link_libraries(${EXECUTABLE} ${Boost_PROGRAM_OPTIONS_LIBRARIES})
|
||||
target_link_libraries(${EXECUTABLE} solidity)
|
||||
target_link_libraries(${EXECUTABLE} ${Boost_PROGRAM_OPTIONS_LIBRARIES})
|
||||
|
||||
if (APPLE)
|
||||
install(TARGETS ${EXECUTABLE} DESTINATION bin)
|
||||
|
@ -39,14 +39,17 @@ foreach(file ${SRC_LIST})
|
||||
endforeach(file)
|
||||
|
||||
file(GLOB HEADERS "*.h")
|
||||
add_executable(test ${SRC_LIST} ${HEADERS})
|
||||
set(EXECUTABLE soltest)
|
||||
add_executable(${EXECUTABLE} ${SRC_LIST} ${HEADERS})
|
||||
|
||||
target_link_libraries(test ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES})
|
||||
target_link_libraries(test ${ETH_ETHEREUM_LIBRARY})
|
||||
target_link_libraries(test ${ETH_ETHCORE_LIBRARY})
|
||||
target_link_libraries(test solidity)
|
||||
eth_use(${EXECUTABLE} REQUIRED EthCore)
|
||||
|
||||
include_directories(BEFORE ..)
|
||||
include_directories(BEFORE ${JSONCPP_INCLUDE_DIRS})
|
||||
target_link_libraries(${EXECUTABLE} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES})
|
||||
target_link_libraries(${EXECUTABLE} ${ETH_ETHEREUM_LIBRARY})
|
||||
target_link_libraries(${EXECUTABLE} ${ETH_ETHCORE_LIBRARY})
|
||||
target_link_libraries(${EXECUTABLE} solidity)
|
||||
|
||||
enable_testing()
|
||||
set(CTEST_OUTPUT_ON_FAILURE TRUE)
|
||||
|
||||
include(EthUtils)
|
||||
|
Loading…
Reference in New Issue
Block a user