mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Use imported CMake targets.
This commit is contained in:
		
							parent
							
								
									8d3617b7c5
								
							
						
					
					
						commit
						2f698b6efe
					
				| @ -1,3 +1,8 @@ | |||||||
| find_library(CLN_LIBRARY NAMES cln) | find_library(CLN_LIBRARY NAMES cln) | ||||||
| include(FindPackageHandleStandardArgs) | include(FindPackageHandleStandardArgs) | ||||||
| find_package_handle_standard_args(CLN DEFAULT_MSG CLN_LIBRARY) | find_package_handle_standard_args(CLN DEFAULT_MSG CLN_LIBRARY) | ||||||
|  | 
 | ||||||
|  | if(CLN_FOUND AND NOT TARGET CLN::CLN) | ||||||
|  |     add_library(CLN::CLN UNKNOWN IMPORTED) | ||||||
|  |     set_property(TARGET CLN::CLN PROPERTY IMPORTED_LOCATION ${CLN_LIBRARY}) | ||||||
|  | endif() | ||||||
|  | |||||||
| @ -14,12 +14,19 @@ if (USE_CVC4) | |||||||
|         set(CVC4_LIBRARIES ${CVC4_LIBRARY}) |         set(CVC4_LIBRARIES ${CVC4_LIBRARY}) | ||||||
| 
 | 
 | ||||||
|         if (CLN_FOUND) |         if (CLN_FOUND) | ||||||
|             set(CVC4_LIBRARIES ${CVC4_LIBRARIES} ${CLN_LIBRARY}) |             set(CVC4_LIBRARIES ${CVC4_LIBRARIES} CLN::CLN) | ||||||
|         endif () |         endif () | ||||||
| 
 | 
 | ||||||
|         if (GMP_FOUND) |         if (GMP_FOUND) | ||||||
|             set(CVC4_LIBRARIES ${CVC4_LIBRARIES} ${GMP_LIBRARY}) |             set(CVC4_LIBRARIES ${CVC4_LIBRARIES} GMP::GMP) | ||||||
|         endif () |         endif () | ||||||
|  | 
 | ||||||
|  |         if (NOT TARGET CVC4::CVC4) | ||||||
|  |             add_library(CVC4::CVC4 UNKNOWN IMPORTED) | ||||||
|  |             set_property(TARGET CVC4::CVC4 PROPERTY IMPORTED_LOCATION ${CVC4_LIBRARY}) | ||||||
|  |             set_property(TARGET CVC4::CVC4 PROPERTY INTERFACE_LINK_LIBRARIES ${CVC4_LIBRARIES}) | ||||||
|  |             set_property(TARGET CVC4::CVC4 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CVC4_INCLUDE_DIR}) | ||||||
|  |         endif() | ||||||
|     endif() |     endif() | ||||||
| else() | else() | ||||||
|     set(CVC4_FOUND FALSE) |     set(CVC4_FOUND FALSE) | ||||||
|  | |||||||
| @ -1,3 +1,8 @@ | |||||||
| find_library(GMP_LIBRARY NAMES gmp ) | find_library(GMP_LIBRARY NAMES gmp) | ||||||
| include(FindPackageHandleStandardArgs) | include(FindPackageHandleStandardArgs) | ||||||
| find_package_handle_standard_args(GMP DEFAULT_MSG GMP_LIBRARY) | find_package_handle_standard_args(GMP DEFAULT_MSG GMP_LIBRARY) | ||||||
|  | 
 | ||||||
|  | if(GMP_FOUND AND NOT TARGET GMP::GMP) | ||||||
|  |     add_library(GMP::GMP UNKNOWN IMPORTED) | ||||||
|  |     set_property(TARGET GMP::GMP PROPERTY IMPORTED_LOCATION ${GMP_LIBRARY}) | ||||||
|  | endif() | ||||||
|  | |||||||
| @ -1,9 +1,14 @@ | |||||||
| if (USE_Z3) | if (USE_Z3) | ||||||
|     find_path(Z3_INCLUDE_DIR NAMES z3++.h PATH_SUFFIXES z3) |     find_path(Z3_INCLUDE_DIR NAMES z3++.h PATH_SUFFIXES z3) | ||||||
|     find_library(Z3_LIBRARY NAMES z3 ) |     find_library(Z3_LIBRARY NAMES z3) | ||||||
|     include(FindPackageHandleStandardArgs) |     include(FindPackageHandleStandardArgs) | ||||||
|     find_package_handle_standard_args(Z3 DEFAULT_MSG Z3_LIBRARY Z3_INCLUDE_DIR) |     find_package_handle_standard_args(Z3 DEFAULT_MSG Z3_LIBRARY Z3_INCLUDE_DIR) | ||||||
|  | 
 | ||||||
|  |     if (NOT TARGET Z3::Z3) | ||||||
|  |         add_library(Z3::Z3 UNKNOWN IMPORTED) | ||||||
|  |         set_property(TARGET Z3::Z3 PROPERTY IMPORTED_LOCATION ${Z3_LIBRARY}) | ||||||
|  |         set_property(TARGET Z3::Z3 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Z3_INCLUDE_DIR}) | ||||||
|  |     endif() | ||||||
| else() | else() | ||||||
|     set(Z3_FOUND FALSE) |     set(Z3_FOUND FALSE) | ||||||
| endif() | endif() | ||||||
| # TODO: Create IMPORTED library for Z3. |  | ||||||
|  | |||||||
| @ -51,5 +51,6 @@ ExternalProject_Add(jsoncpp-project | |||||||
| add_library(jsoncpp STATIC IMPORTED) | add_library(jsoncpp STATIC IMPORTED) | ||||||
| file(MAKE_DIRECTORY ${JSONCPP_INCLUDE_DIR})  # Must exist. | file(MAKE_DIRECTORY ${JSONCPP_INCLUDE_DIR})  # Must exist. | ||||||
| set_property(TARGET jsoncpp PROPERTY IMPORTED_LOCATION ${JSONCPP_LIBRARY}) | set_property(TARGET jsoncpp PROPERTY IMPORTED_LOCATION ${JSONCPP_LIBRARY}) | ||||||
|  | set_property(TARGET jsoncpp PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES ${JSONCPP_INCLUDE_DIR}) | ||||||
| set_property(TARGET jsoncpp PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${JSONCPP_INCLUDE_DIR}) | set_property(TARGET jsoncpp PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${JSONCPP_INCLUDE_DIR}) | ||||||
| add_dependencies(jsoncpp jsoncpp-project) | add_dependencies(jsoncpp jsoncpp-project) | ||||||
|  | |||||||
| @ -12,7 +12,7 @@ set(sources | |||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| add_library(devcore ${sources}) | add_library(devcore ${sources}) | ||||||
| target_link_libraries(devcore PRIVATE jsoncpp ${Boost_FILESYSTEM_LIBRARIES} ${Boost_REGEX_LIBRARIES} ${Boost_SYSTEM_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) | target_link_libraries(devcore PUBLIC jsoncpp ${Boost_FILESYSTEM_LIBRARIES} ${Boost_REGEX_LIBRARIES} ${Boost_SYSTEM_LIBRARIES} Threads::Threads) | ||||||
| target_include_directories(devcore PUBLIC "${CMAKE_SOURCE_DIR}") | target_include_directories(devcore PUBLIC "${CMAKE_SOURCE_DIR}") | ||||||
| target_include_directories(devcore SYSTEM PUBLIC ${Boost_INCLUDE_DIRS}) | target_include_directories(devcore SYSTEM PUBLIC ${Boost_INCLUDE_DIRS}) | ||||||
| add_dependencies(devcore solidity_BuildInfo.h) | add_dependencies(devcore solidity_BuildInfo.h) | ||||||
|  | |||||||
| @ -50,7 +50,6 @@ set(sources | |||||||
| 
 | 
 | ||||||
| find_package(Z3 QUIET) | find_package(Z3 QUIET) | ||||||
| if (${Z3_FOUND}) | if (${Z3_FOUND}) | ||||||
|   include_directories(${Z3_INCLUDE_DIR}) |  | ||||||
|   add_definitions(-DHAVE_Z3) |   add_definitions(-DHAVE_Z3) | ||||||
|   message("Z3 SMT solver found. This enables optional SMT checking with Z3.") |   message("Z3 SMT solver found. This enables optional SMT checking with Z3.") | ||||||
|   set(z3_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/formal/Z3Interface.cpp") |   set(z3_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/formal/Z3Interface.cpp") | ||||||
| @ -60,7 +59,6 @@ endif() | |||||||
| 
 | 
 | ||||||
| find_package(CVC4 QUIET) | find_package(CVC4 QUIET) | ||||||
| if (${CVC4_FOUND}) | if (${CVC4_FOUND}) | ||||||
|   include_directories(${CVC4_INCLUDE_DIR}) |  | ||||||
|   add_definitions(-DHAVE_CVC4) |   add_definitions(-DHAVE_CVC4) | ||||||
|   message("CVC4 SMT solver found. This enables optional SMT checking with CVC4.") |   message("CVC4 SMT solver found. This enables optional SMT checking with CVC4.") | ||||||
|   set(cvc4_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/formal/CVC4Interface.cpp") |   set(cvc4_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/formal/CVC4Interface.cpp") | ||||||
| @ -77,9 +75,9 @@ add_library(solidity ${sources} ${z3_SRCS} ${cvc4_SRCS}) | |||||||
| target_link_libraries(solidity PUBLIC yul evmasm langutil devcore ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY}) | target_link_libraries(solidity PUBLIC yul evmasm langutil devcore ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY}) | ||||||
| 
 | 
 | ||||||
| if (${Z3_FOUND}) | if (${Z3_FOUND}) | ||||||
|   target_link_libraries(solidity PUBLIC ${Z3_LIBRARY}) |   target_link_libraries(solidity PUBLIC Z3::Z3) | ||||||
| endif() | endif() | ||||||
| 
 | 
 | ||||||
| if (${CVC4_FOUND}) | if (${CVC4_FOUND}) | ||||||
|   target_link_libraries(solidity PUBLIC ${CVC4_LIBRARIES}) |   target_link_libraries(solidity PUBLIC CVC4::CVC4) | ||||||
| endif() | endif() | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user