From 3ea1a62fa98e57cc2b882c8593c7d58cd8dd4701 Mon Sep 17 00:00:00 2001 From: arkpar Date: Mon, 24 Aug 2015 15:51:52 +0200 Subject: Refactoreed CMakeLists for new module system --- CMakeLists.txt | 50 ++++++++++------------------------------------ libsolidity/CMakeLists.txt | 9 +++------ solc/CMakeLists.txt | 5 ++--- test/CMakeLists.txt | 17 +++++++++------- 4 files changed, 26 insertions(+), 55 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5198adb4..49de37e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,35 +1,15 @@ -cmake_minimum_required(VERSION 2.8.12) - -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}") +cmake_minimum_required(VERSION 3.0.0) -# A place where should we look for *.cmake files +set(ETH_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}/../cpp-ethereum-cmake" CACHE PATH "The the path to the cmake directory") 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) diff --git a/libsolidity/CMakeLists.txt b/libsolidity/CMakeLists.txt index 159405a2..fa1fd233 100644 --- a/libsolidity/CMakeLists.txt +++ b/libsolidity/CMakeLists.txt @@ -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} ) diff --git a/solc/CMakeLists.txt b/solc/CMakeLists.txt index df72f52d..73dc4b6f 100644 --- a/solc/CMakeLists.txt +++ b/solc/CMakeLists.txt @@ -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) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 81053d82..a7e27414 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -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) -- cgit v1.2.3