Merge pull request #75 from ethereum/cmake

CMake of loader and Cable upgrade
This commit is contained in:
Paweł Bylica 2018-08-21 23:33:40 +02:00 committed by GitHub
commit 20093f75f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 42 additions and 14 deletions

View File

@ -14,6 +14,8 @@
Documentation has been extended.
- Improved: [[#59](https://github.com/ethereum/evmc/pull/59)]
Optional Result Storage helper module has been separated.
- Improved: [[#75](https://github.com/ethereum/evmc/pull/75)]
Cable upgraded to 0.2.11.
## [5.0.0] - 2018-08-10

View File

@ -77,13 +77,12 @@ function(cable_add_buildinfo_library)
# Add buildinfo library under given name.
# Make is static and do not build by default until some other target will actually use it.
add_library(${name} STATIC EXCLUDE_FROM_ALL ${source_file} ${header_file})
add_library(${name} STATIC ${source_file} ${header_file})
target_include_directories(${name} PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
target_include_directories(${name} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
set_target_properties(
${name} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${output_dir}
ARCHIVE_OUTPUT_DIRECTORY ${output_dir}
OUTPUT_NAME buildinfo
)
endfunction()

View File

@ -10,7 +10,7 @@
#
# This is internal variable automaticaly updated with external tools.
# Use CABLE_VERSION variable if you need this information.
set(version 0.2.9)
set(version 0.2.11)
# For conveniance, add the project CMake module dir to module path.
set(module_dir ${CMAKE_CURRENT_SOURCE_DIR}/cmake)

View File

@ -2,10 +2,10 @@
# Copyright 2018 Pawel Bylica.
# Licensed under the Apache License, Version 2.0. See the LICENSE file.
string(TOLOWER ${SYSTEM_NAME} SYSTEM_NAME)
string(TOLOWER ${SYSTEM_PROCESSOR} SYSTEM_PROCESSOR)
string(TOLOWER ${COMPILER_ID} COMPILER_ID)
string(TOLOWER ${BUILD_TYPE} BUILD_TYPE)
string(TOLOWER "${SYSTEM_NAME}" SYSTEM_NAME)
string(TOLOWER "${SYSTEM_PROCESSOR}" SYSTEM_PROCESSOR)
string(TOLOWER "${COMPILER_ID}" COMPILER_ID)
string(TOLOWER "${BUILD_TYPE}" BUILD_TYPE)
string(TIMESTAMP TIMESTAMP)
# Read the git info from a file. The gitinfo is suppose to update the file
@ -45,7 +45,11 @@ if(GIT_COMMIT_HASH)
endif()
endif()
if(${PROJECT_VERSION} STREQUAL "${GIT_LATEST_PROJECT_VERSION}")
if(NOT PROJECT_VERSION)
message(WARNING "PROJECT_VERSION not specified")
endif()
if(PROJECT_VERSION STREQUAL GIT_LATEST_PROJECT_VERSION)
if(${GIT_LATEST_PROJECT_VERSION_DISTANCE} GREATER 0)
set(PROJECT_VERSION "${PROJECT_VERSION}-${GIT_LATEST_PROJECT_VERSION_DISTANCE}${version_commit}")
endif()

View File

@ -0,0 +1,12 @@
# Cable: CMake Bootstrap Library.
# Copyright 2018 Pawel Bylica.
# Licensed under the Apache License, Version 2.0. See the LICENSE file.
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_CXX_FLAGS_INIT "-fPIC" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_INIT "-fPIC" CACHE STRING "" FORCE)

View File

@ -0,0 +1,9 @@
# Cable: CMake Bootstrap Library.
# Copyright 2018 Pawel Bylica.
# Licensed under the Apache License, Version 2.0. See the LICENSE file.
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

View File

@ -9,11 +9,13 @@ add_library(
)
add_library(evmc::loader ALIAS loader)
set_target_properties(loader PROPERTIES OUTPUT_NAME evmc-loader)
target_include_directories(loader PUBLIC $<BUILD_INTERFACE:${include_dir}>$<INSTALL_INTERFACE:include>)
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})
if(BUILD_SHARED_LIBS)
set_target_properties(loader PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
endif()
install(TARGETS loader EXPORT evmcTargets DESTINATION ${CMAKE_INSTALL_LIBDIR})