Refactoreed CMakeLists for new module system

This commit is contained in:
arkpar 2015-08-24 15:51:52 +02:00
parent 289b814670
commit 3ea1a62fa9
4 changed files with 25 additions and 54 deletions

View File

@ -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)

View File

@ -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} )

View File

@ -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)

View File

@ -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)