aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2020-09-12 16:00:31 -0500
committerluigi1111 <luigi1111w@gmail.com>2020-09-12 16:00:31 -0500
commit31dbe7ea42ac16a787f7f9d3d365de78533980e4 (patch)
tree4458a638864a51bbd588a29ea9ef67407a46ffdd
parentf745670b3691638780f1bf83537d2e72a3d9a608 (diff)
parent6467333fe7e8cdb1856078298922153a5a0b108a (diff)
downloadmonzero-gui-31dbe7ea42ac16a787f7f9d3d365de78533980e4.tar.gz
monzero-gui-31dbe7ea42ac16a787f7f9d3d365de78533980e4.tar.xz
monzero-gui-31dbe7ea42ac16a787f7f9d3d365de78533980e4.zip
Merge pull request #3080
6467333 cmake: drop redundant CheckTrezor include (xiphon)
-rw-r--r--CMakeLists.txt3
-rw-r--r--cmake/CheckTrezor.cmake181
2 files changed, 2 insertions, 182 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d761cab4..e0786825 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -63,6 +63,8 @@ set(CMAKE_AUTOUIC ON)
set_property(TARGET wallet_merged PROPERTY FOLDER "monero")
get_directory_property(ARCH_WIDTH DIRECTORY "monero" DEFINITION ARCH_WIDTH)
get_directory_property(UNBOUND_LIBRARY DIRECTORY "monero" DEFINITION UNBOUND_LIBRARY)
+get_directory_property(DEVICE_TREZOR_READY DIRECTORY "monero" DEFINITION DEVICE_TREZOR_READY)
+get_directory_property(TREZOR_DEP_LIBS DIRECTORY "monero" DEFINITION TREZOR_DEP_LIBS)
if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions(-DQT_NO_DEBUG)
@@ -83,7 +85,6 @@ else()
add_definitions(-DDISABLE_PASS_STRENGTH_METER)
endif()
-include(CheckTrezor) # Trezor support check
include(CMakePackageConfigHelpers)
# force version update
diff --git a/cmake/CheckTrezor.cmake b/cmake/CheckTrezor.cmake
deleted file mode 100644
index cc7226bc..00000000
--- a/cmake/CheckTrezor.cmake
+++ /dev/null
@@ -1,181 +0,0 @@
-OPTION(USE_DEVICE_TREZOR "Trezor support compilation" ON)
-OPTION(USE_DEVICE_TREZOR_LIBUSB "Trezor LibUSB compilation" ON)
-OPTION(USE_DEVICE_TREZOR_UDP_RELEASE "Trezor UdpTransport in release mode" OFF)
-OPTION(USE_DEVICE_TREZOR_DEBUG "Trezor Debugging enabled" OFF)
-OPTION(TREZOR_DEBUG "Main trezor debugging switch" OFF)
-
-# Helper function to fix cmake < 3.6.0 FindProtobuf variables
-function(_trezor_protobuf_fix_vars)
- if(${CMAKE_VERSION} VERSION_LESS "3.6.0")
- foreach(UPPER
- PROTOBUF_SRC_ROOT_FOLDER
- PROTOBUF_IMPORT_DIRS
- PROTOBUF_DEBUG
- PROTOBUF_LIBRARY
- PROTOBUF_PROTOC_LIBRARY
- PROTOBUF_INCLUDE_DIR
- PROTOBUF_PROTOC_EXECUTABLE
- PROTOBUF_LIBRARY_DEBUG
- PROTOBUF_PROTOC_LIBRARY_DEBUG
- PROTOBUF_LITE_LIBRARY
- PROTOBUF_LITE_LIBRARY_DEBUG
- )
- if (DEFINED ${UPPER})
- string(REPLACE "PROTOBUF_" "Protobuf_" Camel ${UPPER})
- if (NOT DEFINED ${Camel})
- set(${Camel} ${${UPPER}} PARENT_SCOPE)
- endif()
- endif()
- endforeach()
- endif()
-endfunction()
-
-# Use Trezor master switch
-if (USE_DEVICE_TREZOR)
- # Protobuf is required to build protobuf messages for Trezor
- include(FindProtobuf OPTIONAL)
- find_package(Protobuf)
- _trezor_protobuf_fix_vars()
-
- # Protobuf handling the cache variables set in docker.
- if(NOT Protobuf_FOUND AND NOT Protobuf_LIBRARY AND NOT Protobuf_PROTOC_EXECUTABLE AND NOT Protobuf_INCLUDE_DIR)
- message(STATUS "Could not find Protobuf")
- elseif(NOT Protobuf_LIBRARY OR NOT EXISTS "${Protobuf_LIBRARY}")
- message(STATUS "Protobuf library not found: ${Protobuf_LIBRARY}")
- unset(Protobuf_FOUND)
- elseif(NOT Protobuf_PROTOC_EXECUTABLE OR NOT EXISTS "${Protobuf_PROTOC_EXECUTABLE}")
- message(STATUS "Protobuf executable not found: ${Protobuf_PROTOC_EXECUTABLE}")
- unset(Protobuf_FOUND)
- elseif(NOT Protobuf_INCLUDE_DIR OR NOT EXISTS "${Protobuf_INCLUDE_DIR}")
- message(STATUS "Protobuf include dir not found: ${Protobuf_INCLUDE_DIR}")
- unset(Protobuf_FOUND)
- else()
- message(STATUS "Protobuf lib: ${Protobuf_LIBRARY}, inc: ${Protobuf_INCLUDE_DIR}, protoc: ${Protobuf_PROTOC_EXECUTABLE}")
- set(Protobuf_INCLUDE_DIRS ${Protobuf_INCLUDE_DIR})
- set(Protobuf_FOUND 1) # override found if all rquired info was provided by variables
- endif()
-
- if(TREZOR_DEBUG)
- set(USE_DEVICE_TREZOR_DEBUG 1)
- endif()
-
- # Compile debugging support (for tests)
- if (USE_DEVICE_TREZOR_DEBUG)
- add_definitions(-DWITH_TREZOR_DEBUGGING=1)
- endif()
-else()
- message(STATUS "Trezor support disabled by USE_DEVICE_TREZOR")
-endif()
-
-if(Protobuf_FOUND AND USE_DEVICE_TREZOR)
- if (NOT "$ENV{TREZOR_PYTHON}" STREQUAL "")
- set(TREZOR_PYTHON "$ENV{TREZOR_PYTHON}" CACHE INTERNAL "Copied from environment variable TREZOR_PYTHON")
- else()
- find_package(Python QUIET COMPONENTS Interpreter) # cmake 3.12+
- if(Python_Interpreter_FOUND)
- set(TREZOR_PYTHON "${Python_EXECUTABLE}")
- endif()
- endif()
-
- if(NOT TREZOR_PYTHON)
- find_package(PythonInterp)
- if(PYTHONINTERP_FOUND AND PYTHON_EXECUTABLE)
- set(TREZOR_PYTHON "${PYTHON_EXECUTABLE}")
- endif()
- endif()
-
- if(NOT TREZOR_PYTHON)
- message(STATUS "Trezor: Python not found")
- endif()
-endif()
-
-# Protobuf compilation test
-if(Protobuf_FOUND AND USE_DEVICE_TREZOR AND TREZOR_PYTHON)
- execute_process(COMMAND ${Protobuf_PROTOC_EXECUTABLE} -I "${CMAKE_SOURCE_DIR}/cmake" -I "${Protobuf_INCLUDE_DIR}" "${CMAKE_SOURCE_DIR}/cmake/test-protobuf.proto" --cpp_out ${CMAKE_BINARY_DIR} RESULT_VARIABLE RET OUTPUT_VARIABLE OUT ERROR_VARIABLE ERR)
- if(RET)
- message(STATUS "Protobuf test generation failed: ${OUT} ${ERR}")
- endif()
-
- try_compile(Protobuf_COMPILE_TEST_PASSED
- "${CMAKE_BINARY_DIR}"
- SOURCES
- "${CMAKE_BINARY_DIR}/test-protobuf.pb.cc"
- "${CMAKE_SOURCE_DIR}/cmake/test-protobuf.cpp"
- CMAKE_FLAGS
- "-DINCLUDE_DIRECTORIES=${Protobuf_INCLUDE_DIR};${CMAKE_BINARY_DIR}"
- "-DCMAKE_CXX_STANDARD=11"
- LINK_LIBRARIES ${Protobuf_LIBRARY}
- OUTPUT_VARIABLE OUTPUT
- )
- if(NOT Protobuf_COMPILE_TEST_PASSED)
- message(STATUS "Protobuf Compilation test failed: ${OUTPUT}.")
- endif()
-endif()
-
-# Try to build protobuf messages
-if(Protobuf_FOUND AND USE_DEVICE_TREZOR AND TREZOR_PYTHON AND Protobuf_COMPILE_TEST_PASSED)
- set(ENV{PROTOBUF_INCLUDE_DIRS} "${Protobuf_INCLUDE_DIR}")
- set(ENV{PROTOBUF_PROTOC_EXECUTABLE} "${Protobuf_PROTOC_EXECUTABLE}")
- set(TREZOR_PROTOBUF_PARAMS "")
- if (USE_DEVICE_TREZOR_DEBUG)
- set(TREZOR_PROTOBUF_PARAMS "--debug")
- endif()
-
- execute_process(COMMAND ${TREZOR_PYTHON} tools/build_protob.py ${TREZOR_PROTOBUF_PARAMS} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/monero/src/device_trezor/trezor RESULT_VARIABLE RET OUTPUT_VARIABLE OUT ERROR_VARIABLE ERR)
- if(RET)
- message(WARNING "Trezor protobuf messages could not be regenerated (err=${RET}, python ${PYTHON})."
- "OUT: ${OUT}, ERR: ${ERR}."
- "Please read src/device_trezor/trezor/tools/README.md")
- else()
- message(STATUS "Trezor protobuf messages regenerated out: \"${OUT}.\"")
- set(DEVICE_TREZOR_READY 1)
- add_definitions(-DDEVICE_TREZOR_READY=1)
- add_definitions(-DPROTOBUF_INLINE_NOT_IN_HEADERS=0)
-
- if(CMAKE_BUILD_TYPE STREQUAL "Debug")
- add_definitions(-DTREZOR_DEBUG=1)
- endif()
-
- if(USE_DEVICE_TREZOR_UDP_RELEASE)
- add_definitions(-DUSE_DEVICE_TREZOR_UDP_RELEASE=1)
- endif()
-
- if (Protobuf_INCLUDE_DIR)
- include_directories(${Protobuf_INCLUDE_DIR})
- endif()
-
- # LibUSB support, check for particular version
- # Include support only if compilation test passes
- if (USE_DEVICE_TREZOR_LIBUSB)
- find_package(LibUSB)
- endif()
-
- if (LibUSB_COMPILE_TEST_PASSED)
- add_definitions(-DHAVE_TREZOR_LIBUSB=1)
- if(LibUSB_INCLUDE_DIRS)
- include_directories(${LibUSB_INCLUDE_DIRS})
- endif()
- endif()
-
- set(TREZOR_LIBUSB_LIBRARIES "")
- if(LibUSB_COMPILE_TEST_PASSED)
- list(APPEND TREZOR_LIBUSB_LIBRARIES ${LibUSB_LIBRARIES})
- message(STATUS "Trezor compatible LibUSB found at: ${LibUSB_INCLUDE_DIRS}")
- endif()
-
- if (BUILD_GUI_DEPS)
- set(TREZOR_DEP_LIBS "")
- set(TREZOR_DEP_LINKER "")
-
- if (Protobuf_LIBRARY)
- list(APPEND TREZOR_DEP_LIBS ${Protobuf_LIBRARY})
- string(APPEND TREZOR_DEP_LINKER " -lprotobuf")
- endif()
-
- if (TREZOR_LIBUSB_LIBRARIES)
- list(APPEND TREZOR_DEP_LIBS ${TREZOR_LIBUSB_LIBRARIES})
- string(APPEND TREZOR_DEP_LINKER " -lusb-1.0")
- endif()
- endif()
- endif()
-endif()