From e4257ee378f8f5ccd857b930537db1f300fe070c Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Mon, 21 Jul 2014 15:14:44 +0200 Subject: [PATCH] Move JS setup code up into lib macro. Remove a few redundant messages from build. --- alethzero/MainWin.cpp | 19 +------------------ libethcore/CMakeLists.txt | 2 -- libethential/CMakeLists.txt | 2 -- libethereum/CMakeLists.txt | 2 -- libevm/CMakeLists.txt | 2 -- libevmface/CMakeLists.txt | 2 -- liblll/CMakeLists.txt | 2 -- libpyserpent/CMakeLists.txt | 2 -- libqethereum/QEthereum.h | 20 ++++++++++++++++++++ libserpent/CMakeLists.txt | 2 -- 10 files changed, 21 insertions(+), 34 deletions(-) diff --git a/alethzero/MainWin.cpp b/alethzero/MainWin.cpp index 3f437abd6..3488b4f50 100644 --- a/alethzero/MainWin.cpp +++ b/alethzero/MainWin.cpp @@ -157,24 +157,7 @@ Main::Main(QWidget *parent) : f->disconnect(SIGNAL(javaScriptWindowObjectCleared())); eth->setup(f); f->addToJavaScriptWindowObject("env", this, QWebFrame::QtOwnership); - connect(f, &QWebFrame::javaScriptWindowObjectCleared, [f, eth, this]() - { - f->disconnect(); - f->addToJavaScriptWindowObject("env", this, QWebFrame::QtOwnership); - f->addToJavaScriptWindowObject("eth", eth, QWebFrame::ScriptOwnership); - f->evaluateJavaScript("eth.watch = function(a, s, f) { eth.changed.connect(f ? f : s) }"); - f->evaluateJavaScript("eth.newBlock = function(f) { eth.changed.connect(f) }"); - - f->evaluateJavaScript("eth.create = function(s, v, c, g, p, f) { var v = eth.doCreate(s, v, c, g, p); if (f) f(v) }"); - f->evaluateJavaScript("eth.transact = function(s, v, t, d, g, p, f) { eth.doTransact(s, v, t, d, g, p); if (f) f() }"); - f->evaluateJavaScript("eth.transactions = function(a) { return JSON.parse(eth.getTransactions(JSON.stringify(a))); }"); - f->evaluateJavaScript("String.prototype.pad = function(l, r) { return eth.pad(this, l, r) }"); - f->evaluateJavaScript("String.prototype.bin = function() { return eth.toBinary(this) }"); - f->evaluateJavaScript("String.prototype.unbin = function(l) { return eth.fromBinary(this) }"); - f->evaluateJavaScript("String.prototype.unpad = function(l) { return eth.unpad(this) }"); - f->evaluateJavaScript("String.prototype.dec = function() { return eth.toDecimal(this) }"); - f->evaluateJavaScript("String.prototype.sha3 = function() { return eth.sha3(this) }"); - }); + connect(f, &QWebFrame::javaScriptWindowObjectCleared, QETH_INSTALL_JS_NAMESPACE); }); connect(ui->webView, &QWebView::loadFinished, [=]() diff --git a/libethcore/CMakeLists.txt b/libethcore/CMakeLists.txt index 01171a613..e10f6a481 100644 --- a/libethcore/CMakeLists.txt +++ b/libethcore/CMakeLists.txt @@ -54,8 +54,6 @@ else () target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) endif () -message("Installation path: ${CMAKE_INSTALL_PREFIX}") - install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) diff --git a/libethential/CMakeLists.txt b/libethential/CMakeLists.txt index 08db75f3e..139e80ce4 100644 --- a/libethential/CMakeLists.txt +++ b/libethential/CMakeLists.txt @@ -46,8 +46,6 @@ else () target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) endif () -message("Installation path: ${CMAKE_INSTALL_PREFIX}") - install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) diff --git a/libethereum/CMakeLists.txt b/libethereum/CMakeLists.txt index abdd44b46..f50e709fb 100644 --- a/libethereum/CMakeLists.txt +++ b/libethereum/CMakeLists.txt @@ -57,8 +57,6 @@ else () target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) endif () -message("Installation path: ${CMAKE_INSTALL_PREFIX}") - install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) diff --git a/libevm/CMakeLists.txt b/libevm/CMakeLists.txt index 6b0f64f90..2365821b4 100644 --- a/libevm/CMakeLists.txt +++ b/libevm/CMakeLists.txt @@ -57,8 +57,6 @@ else () target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) endif () -message("Installation path: ${CMAKE_INSTALL_PREFIX}") - install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) diff --git a/libevmface/CMakeLists.txt b/libevmface/CMakeLists.txt index 00e9a4ee0..93b33b66b 100644 --- a/libevmface/CMakeLists.txt +++ b/libevmface/CMakeLists.txt @@ -38,8 +38,6 @@ else () target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) endif () -message("Installation path: ${CMAKE_INSTALL_PREFIX}") - install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) diff --git a/liblll/CMakeLists.txt b/liblll/CMakeLists.txt index b220d8e91..98bebdfed 100644 --- a/liblll/CMakeLists.txt +++ b/liblll/CMakeLists.txt @@ -45,8 +45,6 @@ else () target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) endif () -message("Installation path: ${CMAKE_INSTALL_PREFIX}") - install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) diff --git a/libpyserpent/CMakeLists.txt b/libpyserpent/CMakeLists.txt index 98c2650fb..8c986c77a 100644 --- a/libpyserpent/CMakeLists.txt +++ b/libpyserpent/CMakeLists.txt @@ -44,8 +44,6 @@ else () target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) endif () -message("Installation path: ${CMAKE_INSTALL_PREFIX}") - install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) diff --git a/libqethereum/QEthereum.h b/libqethereum/QEthereum.h index ae0e051be..3b0eb34de 100644 --- a/libqethereum/QEthereum.h +++ b/libqethereum/QEthereum.h @@ -449,3 +449,23 @@ private: eth::Client* m_client; QList m_accounts; }; + +#define QETH_INSTALL_JS_NAMESPACE [f, eth, this]() \ +{ \ + f->disconnect(); \ + f->addToJavaScriptWindowObject("env", this, QWebFrame::QtOwnership); \ + f->addToJavaScriptWindowObject("eth", eth, QWebFrame::ScriptOwnership); \ + f->evaluateJavaScript("eth.watch = function(a, s, f) { eth.changed.connect(f ? f : s) }"); \ + f->evaluateJavaScript("eth.newBlock = function(f) { eth.changed.connect(f) }"); \ + \ + f->evaluateJavaScript("eth.create = function(s, v, c, g, p, f) { var v = eth.doCreate(s, v, c, g, p); if (f) f(v) }"); \ + f->evaluateJavaScript("eth.transact = function(s, v, t, d, g, p, f) { eth.doTransact(s, v, t, d, g, p); if (f) f() }"); \ + f->evaluateJavaScript("eth.transactions = function(a) { return JSON.parse(eth.getTransactions(JSON.stringify(a))); }"); \ + f->evaluateJavaScript("String.prototype.pad = function(l, r) { return eth.pad(this, l, r) }"); \ + f->evaluateJavaScript("String.prototype.bin = function() { return eth.toBinary(this) }"); \ + f->evaluateJavaScript("String.prototype.unbin = function(l) { return eth.fromBinary(this) }"); \ + f->evaluateJavaScript("String.prototype.unpad = function(l) { return eth.unpad(this) }"); \ + f->evaluateJavaScript("String.prototype.dec = function() { return eth.toDecimal(this) }"); \ + f->evaluateJavaScript("String.prototype.sha3 = function() { return eth.sha3(this) }"); \ +} + diff --git a/libserpent/CMakeLists.txt b/libserpent/CMakeLists.txt index 3f8aea172..0d392bd49 100644 --- a/libserpent/CMakeLists.txt +++ b/libserpent/CMakeLists.txt @@ -41,8 +41,6 @@ else () target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) endif () -message("Installation path: ${CMAKE_INSTALL_PREFIX}") - install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) #install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libserpent.so DESTINATION lib )