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