commit
9866a0e902
|
@ -68,12 +68,7 @@ jobs:
|
||||||
- uses: msys2/setup-msys2@v2
|
- uses: msys2/setup-msys2@v2
|
||||||
with:
|
with:
|
||||||
update: true
|
update: true
|
||||||
install: mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-ccache mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-libusb mingw-w64-x86_64-unbound git
|
install: mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-ccache mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-protobuf mingw-w64-x86_64-libusb mingw-w64-x86_64-unbound git pkg-config
|
||||||
- shell: msys2 {0}
|
|
||||||
run: |
|
|
||||||
curl -O https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-protobuf-c-1.4.1-1-any.pkg.tar.zst
|
|
||||||
curl -O https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-protobuf-21.9-1-any.pkg.tar.zst
|
|
||||||
pacman --noconfirm -U mingw-w64-x86_64-protobuf-c-1.4.1-1-any.pkg.tar.zst mingw-w64-x86_64-protobuf-21.9-1-any.pkg.tar.zst
|
|
||||||
- name: build
|
- name: build
|
||||||
run: |
|
run: |
|
||||||
${{env.CCACHE_SETTINGS}}
|
${{env.CCACHE_SETTINGS}}
|
||||||
|
|
|
@ -23,32 +23,6 @@ OPTION(USE_DEVICE_TREZOR_UDP_RELEASE "Trezor UdpTransport in release mode" $ENV{
|
||||||
OPTION(USE_DEVICE_TREZOR_DEBUG "Trezor Debugging enabled" $ENV{USE_DEVICE_TREZOR_DEBUG})
|
OPTION(USE_DEVICE_TREZOR_DEBUG "Trezor Debugging enabled" $ENV{USE_DEVICE_TREZOR_DEBUG})
|
||||||
OPTION(TREZOR_DEBUG "Main Trezor debugging switch" $ENV{TREZOR_DEBUG})
|
OPTION(TREZOR_DEBUG "Main Trezor debugging switch" $ENV{TREZOR_DEBUG})
|
||||||
|
|
||||||
# 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()
|
|
||||||
|
|
||||||
macro(trezor_fatal_msg msg)
|
macro(trezor_fatal_msg msg)
|
||||||
if ($ENV{USE_DEVICE_TREZOR_MANDATORY})
|
if ($ENV{USE_DEVICE_TREZOR_MANDATORY})
|
||||||
message(FATAL_ERROR
|
message(FATAL_ERROR
|
||||||
|
@ -72,40 +46,21 @@ endmacro()
|
||||||
|
|
||||||
# Use Trezor master switch
|
# Use Trezor master switch
|
||||||
if (USE_DEVICE_TREZOR)
|
if (USE_DEVICE_TREZOR)
|
||||||
# Protobuf is required to build protobuf messages for Trezor
|
# Look for protobuf-config.cmake, provided by Protobuf
|
||||||
include(FindProtobuf OPTIONAL)
|
find_package(Protobuf CONFIG)
|
||||||
|
|
||||||
# PkgConfig works better with new Protobuf
|
if (Protobuf_FOUND)
|
||||||
find_package(PkgConfig QUIET)
|
# https://github.com/protocolbuffers/protobuf/issues/14576
|
||||||
pkg_check_modules(PROTOBUF protobuf)
|
find_program(Protobuf_PROTOC_EXECUTABLE protoc REQUIRED)
|
||||||
|
set(Protobuf_LIBRARY protobuf::libprotobuf) # Compatibility with FindProtobuf.cmake
|
||||||
if (NOT Protobuf_FOUND)
|
else()
|
||||||
FIND_PACKAGE(Protobuf CONFIG)
|
# Look for FindProtobuf.cmake, provided by CMake
|
||||||
|
find_package(Protobuf)
|
||||||
endif()
|
endif()
|
||||||
if (NOT Protobuf_FOUND)
|
|
||||||
FIND_PACKAGE(Protobuf)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
_trezor_protobuf_fix_vars()
|
|
||||||
|
|
||||||
# Early fail for optional Trezor support
|
# Early fail for optional Trezor support
|
||||||
if(NOT Protobuf_FOUND AND NOT Protobuf_LIBRARY AND NOT Protobuf_PROTOC_EXECUTABLE AND NOT Protobuf_INCLUDE_DIR)
|
if (NOT Protobuf_FOUND)
|
||||||
trezor_fatal_msg("Trezor: Could not find Protobuf")
|
trezor_fatal_msg("Trezor: protobuf library not found")
|
||||||
elseif(${CMAKE_CXX_STANDARD} LESS 17 AND ${Protobuf_VERSION} GREATER 21)
|
|
||||||
trezor_fatal_msg("Trezor: Unsupported Protobuf version ${Protobuf_VERSION} with C++ ${CMAKE_CXX_STANDARD}. Please, use Protobuf v21.")
|
|
||||||
elseif(NOT Protobuf_LIBRARY)
|
|
||||||
trezor_fatal_msg("Trezor: Protobuf library not found: ${Protobuf_LIBRARY}")
|
|
||||||
unset(Protobuf_FOUND)
|
|
||||||
elseif(NOT Protobuf_PROTOC_EXECUTABLE OR NOT EXISTS "${Protobuf_PROTOC_EXECUTABLE}")
|
|
||||||
trezor_fatal_msg("Trezor: Protobuf executable not found: ${Protobuf_PROTOC_EXECUTABLE}")
|
|
||||||
unset(Protobuf_FOUND)
|
|
||||||
elseif(NOT Protobuf_INCLUDE_DIR OR NOT EXISTS "${Protobuf_INCLUDE_DIR}")
|
|
||||||
trezor_fatal_msg("Trezor: Protobuf include dir not found: ${Protobuf_INCLUDE_DIR}")
|
|
||||||
unset(Protobuf_FOUND)
|
|
||||||
else()
|
|
||||||
message(STATUS "Trezor: 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 required info was provided by variables
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(TREZOR_DEBUG)
|
if(TREZOR_DEBUG)
|
||||||
|
|
Loading…
Reference in New Issue