Marek Kotewicz
10 years ago
5 changed files with 70 additions and 20 deletions
@ -0,0 +1,24 @@ |
|||
# |
|||
# renames the file if it is different from its destination |
|||
include(CMakeParseArguments) |
|||
# |
|||
macro(replace_if_different SOURCE DST) |
|||
set(extra_macro_args ${ARGN}) |
|||
set(options CREATE) |
|||
set(one_value_args) |
|||
set(multi_value_args) |
|||
cmake_parse_arguments(REPLACE_IF_DIFFERENT "${options}" "${one_value_args}" "${multi_value_args}" "${extra_macro_args}") |
|||
|
|||
if (REPLACE_IF_DIFFERENT_CREATE AND (NOT (EXISTS "${DST}"))) |
|||
file(WRITE "${DST}" "") |
|||
endif() |
|||
|
|||
execute_process(COMMAND ${CMAKE_COMMAND} -E compare_files "${SOURCE}" "${DST}" RESULT_VARIABLE DIFFERENT) |
|||
|
|||
if (DIFFERENT) |
|||
execute_process(COMMAND ${CMAKE_COMMAND} -E rename "${SOURCE}" "${DST}") |
|||
else() |
|||
execute_process(COMMAND ${CMAKE_COMMAND} -E remove "${SOURCE}") |
|||
endif() |
|||
endmacro() |
|||
|
@ -0,0 +1,36 @@ |
|||
# generates JSONRPC Stub Server && Client |
|||
# |
|||
# this script expects |
|||
# ETH_SOURCE_DIR - main CMAKE_SOURCE_DIR |
|||
# ETH_SPEC_PATH |
|||
# ETH_SERVER_DIR |
|||
# ETH_CLIENT_DIR |
|||
# ETH_SERVER_NAME |
|||
# ETH_CLIENT_NAME |
|||
# ETH_JSON_RPC_STUB |
|||
# |
|||
# example usage: |
|||
# cmake -DETH_SPEC_PATH=spec.json -DETH_SERVER_DIR=libweb3jsonrpc -DETH_CLIENT_DIR=test |
|||
# -DETH_SERVER_NAME=AbstractWebThreeStubServer -DETH_CLIENT_NAME=WebThreeStubClient -DETH_JSON_RPC_STUB=/usr/local/bin/jsonrpcstub |
|||
|
|||
# by default jsonrpcstub produces files in lowercase, we want to stick to this |
|||
string(TOLOWER ${ETH_SERVER_NAME} ETH_SERVER_NAME_LOWER) |
|||
string(TOLOWER ${ETH_CLIENT_NAME} ETH_CLIENT_NAME_LOWER) |
|||
|
|||
# setup names |
|||
set(SERVER_TMPFILE "${ETH_SERVER_DIR}/${ETH_SERVER_NAME_LOWER}.h.tmp") |
|||
set(SERVER_OUTFILE "${ETH_SERVER_DIR}/${ETH_SERVER_NAME_LOWER}.h") |
|||
set(CLIENT_TMPFILE "${ETH_CLIENT_DIR}/${ETH_CLIENT_NAME_LOWER}.h.tmp") |
|||
set(CLIENT_OUTFILE "${ETH_CLIENT_DIR}/${ETH_CLIENT_NAME_LOWER}.h") |
|||
|
|||
# create tmp files |
|||
execute_process( |
|||
COMMAND ${ETH_JSON_RPC_STUB} ${ETH_SPEC_PATH} |
|||
--cpp-server=${ETH_SERVER_NAME} --cpp-server-file=${SERVER_TMPFILE} |
|||
--cpp-client=${ETH_CLIENT_NAME} --cpp-client-file=${CLIENT_TMPFILE} |
|||
) |
|||
|
|||
include("${ETH_SOURCE_DIR}/cmake/EthUtils.cmake") |
|||
replace_if_different("${SERVER_TMPFILE}" "${SERVER_OUTFILE}") |
|||
replace_if_different("${CLIENT_TMPFILE}" "${CLIENT_OUTFILE}") |
|||
|
Loading…
Reference in new issue