mirror of https://github.com/status-im/evmc.git
cmake: Add evmc::evmc_cpp INTERFACE library for evmc.hpp
This commit is contained in:
parent
63c2165d4a
commit
beb0d92c11
|
@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning].
|
|||
- In the Rust bindings added more type aliases (`MessageKind`, `MessageFlags`, `StatusCode`,
|
||||
`StorageStatus`, `Revision`).
|
||||
[#206](https://github.com/ethereum/evmc/pull/206)
|
||||
- In CMake the `evmc::evmc_cpp` target has been added which represents the C++ EVMC API.
|
||||
[#470](https://github.com/ethereum/evmc/pull/470)
|
||||
|
||||
### Changed
|
||||
|
||||
|
|
|
@ -71,7 +71,6 @@ configure_package_config_file(
|
|||
)
|
||||
|
||||
if(EVMC_INSTALL)
|
||||
install(TARGETS evmc EXPORT evmcTargets)
|
||||
install(DIRECTORY include/evmc DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
|
||||
install(
|
||||
|
|
|
@ -8,11 +8,11 @@ add_subdirectory(example_vm)
|
|||
add_subdirectory(example_precompiles_vm)
|
||||
|
||||
add_library(evmc-example-host STATIC example_host.cpp)
|
||||
target_link_libraries(evmc-example-host PRIVATE evmc)
|
||||
target_link_libraries(evmc-example-host PRIVATE evmc::evmc_cpp)
|
||||
|
||||
add_executable(evmc-example-static example.c)
|
||||
target_link_libraries(evmc-example-static PRIVATE evmc-example-host evmc::example-vm-static evmc)
|
||||
target_link_libraries(evmc-example-static PRIVATE evmc-example-host evmc::example-vm-static evmc::evmc)
|
||||
target_compile_definitions(evmc-example-static PRIVATE STATICALLY_LINKED_EXAMPLE)
|
||||
|
||||
add_executable(evmc-example example.c)
|
||||
target_link_libraries(evmc-example PRIVATE evmc-example-host evmc evmc::loader)
|
||||
target_link_libraries(evmc-example PRIVATE evmc-example-host evmc::loader)
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
add_library(example-precompiles-vm SHARED example_precompiles_vm.cpp example_precompiles_vm.h)
|
||||
add_library(evmc::example-precompiles-vm ALIAS example-precompiles-vm)
|
||||
target_link_libraries(example-precompiles-vm PRIVATE evmc)
|
||||
target_link_libraries(example-precompiles-vm PRIVATE evmc::evmc)
|
||||
|
||||
add_library(example-precompiles-vm-static STATIC example_precompiles_vm.cpp example_precompiles_vm.h)
|
||||
add_library(evmc::example-precompiles-vm-static ALIAS example-precompiles-vm-static)
|
||||
target_link_libraries(example-precompiles-vm-static PRIVATE evmc)
|
||||
target_link_libraries(example-precompiles-vm-static PRIVATE evmc::evmc)
|
||||
|
||||
set_source_files_properties(example_precompiles_vm.cpp PROPERTIES
|
||||
COMPILE_DEFINITIONS PROJECT_VERSION="${PROJECT_VERSION}")
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
add_library(example-vm SHARED example_vm.c example_vm.h)
|
||||
add_library(evmc::example-vm ALIAS example-vm)
|
||||
target_link_libraries(example-vm PRIVATE evmc)
|
||||
target_link_libraries(example-vm PRIVATE evmc::evmc)
|
||||
|
||||
add_library(example-vm-static STATIC example_vm.c example_vm.h)
|
||||
add_library(evmc::example-vm-static ALIAS example-vm-static)
|
||||
target_link_libraries(example-vm-static PRIVATE evmc)
|
||||
target_link_libraries(example-vm-static PRIVATE evmc::evmc)
|
||||
|
||||
set_source_files_properties(example_vm.cpp PROPERTIES
|
||||
COMPILE_DEFINITIONS PROJECT_VERSION="${PROJECT_VERSION}")
|
||||
|
|
|
@ -6,6 +6,15 @@ add_library(evmc INTERFACE)
|
|||
add_library(evmc::evmc ALIAS evmc)
|
||||
target_include_directories(evmc INTERFACE $<BUILD_INTERFACE:${include_dir}>$<INSTALL_INTERFACE:include>)
|
||||
|
||||
add_library(evmc_cpp INTERFACE)
|
||||
add_library(evmc::evmc_cpp ALIAS evmc_cpp)
|
||||
target_include_directories(evmc_cpp INTERFACE $<BUILD_INTERFACE:${include_dir}>$<INSTALL_INTERFACE:include>)
|
||||
target_link_libraries(evmc_cpp INTERFACE evmc::evmc)
|
||||
|
||||
add_subdirectory(instructions)
|
||||
add_subdirectory(loader)
|
||||
add_subdirectory(mocked_host)
|
||||
|
||||
if(EVMC_INSTALL)
|
||||
install(TARGETS evmc evmc_cpp EXPORT evmcTargets)
|
||||
endif()
|
||||
|
|
|
@ -13,10 +13,7 @@ set_target_properties(loader PROPERTIES
|
|||
OUTPUT_NAME evmc-loader
|
||||
POSITION_INDEPENDENT_CODE TRUE
|
||||
)
|
||||
target_include_directories(loader PUBLIC
|
||||
$<BUILD_INTERFACE:${include_dir}>$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
target_link_libraries(loader INTERFACE ${CMAKE_DL_LIBS})
|
||||
target_link_libraries(loader INTERFACE ${CMAKE_DL_LIBS} PUBLIC evmc::evmc)
|
||||
|
||||
if(EVMC_INSTALL)
|
||||
install(TARGETS loader EXPORT evmcTargets DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
|
|
@ -6,9 +6,7 @@ add_library(mocked_host INTERFACE)
|
|||
target_sources(mocked_host INTERFACE $<BUILD_INTERFACE:${include_dir}/evmc/mocked_host.hpp>)
|
||||
|
||||
add_library(evmc::mocked_host ALIAS mocked_host)
|
||||
target_include_directories(mocked_host INTERFACE
|
||||
$<BUILD_INTERFACE:${include_dir}>$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
target_link_libraries(mocked_host INTERFACE evmc::evmc_cpp)
|
||||
|
||||
if(EVMC_INSTALL)
|
||||
install(TARGETS mocked_host EXPORT evmcTargets)
|
||||
|
|
|
@ -11,7 +11,7 @@ find_package(GTest CONFIG REQUIRED)
|
|||
set_target_properties(GTest::gtest PROPERTIES INTERFACE_COMPILE_DEFINITIONS GTEST_HAS_TR1_TUPLE=0)
|
||||
|
||||
add_library(loader-mocked STATIC ${PROJECT_SOURCE_DIR}/lib/loader/loader.c)
|
||||
target_link_libraries(loader-mocked PRIVATE evmc)
|
||||
target_link_libraries(loader-mocked PRIVATE evmc::evmc)
|
||||
target_compile_definitions(loader-mocked PRIVATE EVMC_LOADER_MOCK=1)
|
||||
|
||||
add_executable(
|
||||
|
|
Loading…
Reference in New Issue