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_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}) | list(APPEND CMAKE_MODULE_PATH ${ETH_CMAKE_DIR}) | ||||||
| 
 | 
 | ||||||
| # A place where we should look for ethereum libraries  | # Set cmake_policies | ||||||
| set(CMAKE_LIBRARY_PATH ${ETH_BUILD_DIR}) | 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 | # Let's find our dependencies | ||||||
| include(EthDependencies) | include(EthDependencies) | ||||||
| @ -40,16 +20,8 @@ include(EthCompilerSettings) | |||||||
| # Include helper macros | # Include helper macros | ||||||
| include(EthExecutableHelper) | include(EthExecutableHelper) | ||||||
| 
 | 
 | ||||||
| # Include a directory with BuildInfo.h | # Include utils | ||||||
| include_directories(${ETH_BUILD_DIR}) | include(EthUtils) | ||||||
| 
 |  | ||||||
| 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}) |  | ||||||
| 
 | 
 | ||||||
| add_subdirectory(libsolidity) | add_subdirectory(libsolidity) | ||||||
| add_subdirectory(solc) | add_subdirectory(solc) | ||||||
|  | |||||||
| @ -10,15 +10,12 @@ set(EXECUTABLE solidity) | |||||||
| file(GLOB HEADERS "*.h")  | file(GLOB HEADERS "*.h")  | ||||||
| 
 | 
 | ||||||
| include_directories(BEFORE ..) | include_directories(BEFORE ..) | ||||||
|  | include_directories(BEFORE ${JSONCPP_INCLUDE_DIRS}) | ||||||
| add_library(${EXECUTABLE} ${SRC_LIST} ${HEADERS}) | 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} ${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( TARGETS ${EXECUTABLE} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) | ||||||
| install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) | install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) | ||||||
|  | |||||||
| @ -13,11 +13,10 @@ set(EXECUTABLE solc) | |||||||
| file(GLOB HEADERS "*.h") | file(GLOB HEADERS "*.h") | ||||||
| add_executable(${EXECUTABLE} ${SRC_LIST} ${HEADERS}) | 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} solidity) | ||||||
|  | target_link_libraries(${EXECUTABLE} ${Boost_PROGRAM_OPTIONS_LIBRARIES}) | ||||||
| 
 | 
 | ||||||
| if (APPLE) | if (APPLE) | ||||||
| 	install(TARGETS ${EXECUTABLE} DESTINATION bin) | 	install(TARGETS ${EXECUTABLE} DESTINATION bin) | ||||||
|  | |||||||
| @ -39,14 +39,17 @@ foreach(file ${SRC_LIST}) | |||||||
| endforeach(file) | endforeach(file) | ||||||
| 
 | 
 | ||||||
| file(GLOB HEADERS "*.h") | 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}) | eth_use(${EXECUTABLE} REQUIRED EthCore) | ||||||
| target_link_libraries(test ${ETH_ETHEREUM_LIBRARY}) | 
 | ||||||
| target_link_libraries(test ${ETH_ETHCORE_LIBRARY}) | include_directories(BEFORE ..) | ||||||
| target_link_libraries(test solidity) | 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() | enable_testing() | ||||||
| set(CTEST_OUTPUT_ON_FAILURE TRUE) | set(CTEST_OUTPUT_ON_FAILURE TRUE) | ||||||
| 
 |  | ||||||
| include(EthUtils) |  | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user