diff --git a/CHANGELOG.md b/CHANGELOG.md index 780ae4e82..c2f86d4ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/cmake/cable/CableBuildInfo.cmake b/cmake/cable/CableBuildInfo.cmake index ab19b219e..a03b481d6 100644 --- a/cmake/cable/CableBuildInfo.cmake +++ b/cmake/cable/CableBuildInfo.cmake @@ -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 $) set_target_properties( ${name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${output_dir} ARCHIVE_OUTPUT_DIRECTORY ${output_dir} - OUTPUT_NAME buildinfo ) endfunction() diff --git a/cmake/cable/bootstrap.cmake b/cmake/cable/bootstrap.cmake index dbfc2182d..9b01956b4 100644 --- a/cmake/cable/bootstrap.cmake +++ b/cmake/cable/bootstrap.cmake @@ -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) diff --git a/cmake/cable/buildinfo/buildinfo.cmake b/cmake/cable/buildinfo/buildinfo.cmake index 6fdec7f16..f4dbbc32d 100644 --- a/cmake/cable/buildinfo/buildinfo.cmake +++ b/cmake/cable/buildinfo/buildinfo.cmake @@ -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() diff --git a/cmake/cable/toolchains/cxx11-fpic.cmake b/cmake/cable/toolchains/cxx11-fpic.cmake new file mode 100644 index 000000000..52d4f972e --- /dev/null +++ b/cmake/cable/toolchains/cxx11-fpic.cmake @@ -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) diff --git a/cmake/cable/toolchains/cxx11-pic.cmake b/cmake/cable/toolchains/cxx11-pic.cmake new file mode 100644 index 000000000..db7d9e5b2 --- /dev/null +++ b/cmake/cable/toolchains/cxx11-pic.cmake @@ -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) diff --git a/lib/loader/CMakeLists.txt b/lib/loader/CMakeLists.txt index 4d06b9b55..cc4f5b49f 100644 --- a/lib/loader/CMakeLists.txt +++ b/lib/loader/CMakeLists.txt @@ -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 $$) +set_target_properties(loader PROPERTIES + OUTPUT_NAME evmc-loader + POSITION_INDEPENDENT_CODE TRUE +) +target_include_directories(loader PUBLIC + $$ +) 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})