Support MacOS 12 & 13. Support Protobuf 23. Deprecate MacOS 11. (#4884)
This commit is contained in:
parent
dd1b354d48
commit
ee674cb0cf
5 changed files with 50 additions and 46 deletions
26
.github/workflows/desktop-build.yml
vendored
26
.github/workflows/desktop-build.yml
vendored
|
@ -113,7 +113,7 @@ jobs:
|
||||||
- distro: UbuntuJammy
|
- distro: UbuntuJammy
|
||||||
package: DEB
|
package: DEB
|
||||||
test: skip # running tests on all distros is superfluous
|
test: skip # running tests on all distros is superfluous
|
||||||
|
|
||||||
- distro: UbuntuLunar
|
- distro: UbuntuLunar
|
||||||
package: DEB
|
package: DEB
|
||||||
|
|
||||||
|
@ -215,21 +215,21 @@ jobs:
|
||||||
do_tests: 1
|
do_tests: 1
|
||||||
make_package: 1
|
make_package: 1
|
||||||
|
|
||||||
- target: 11_Big_Sur
|
- target: 12_Monterey
|
||||||
os: macos-11
|
os: macos-12
|
||||||
xcode: 12.5.1
|
xcode: 13.3
|
||||||
qt_version: homebrew
|
qt_version: homebrew
|
||||||
type: Release
|
type: Release
|
||||||
do_tests: 1
|
do_tests: 1
|
||||||
make_package: 1
|
make_package: 1
|
||||||
|
|
||||||
# - target: 12_Monterey
|
- target: 13_Ventura
|
||||||
# os: macos-12
|
os: macos-13
|
||||||
# xcode: 13.3
|
xcode: 14.3.1
|
||||||
# qt_version: homebrew
|
qt_version: homebrew
|
||||||
# type: Release
|
type: Release
|
||||||
# do_tests: 1
|
do_tests: 1
|
||||||
# make_package: 1
|
make_package: 0
|
||||||
|
|
||||||
name: macOS ${{matrix.target}}
|
name: macOS ${{matrix.target}}
|
||||||
needs: configure
|
needs: configure
|
||||||
|
@ -251,8 +251,8 @@ jobs:
|
||||||
install_qt: ${{matrix.qt_version}}
|
install_qt: ${{matrix.qt_version}}
|
||||||
run: |
|
run: |
|
||||||
brew update
|
brew update
|
||||||
brew install protobuf@21
|
brew install protobuf
|
||||||
brew link --force protobuf@21
|
brew link --force protobuf
|
||||||
if [[ $install_qt == homebrew ]]; then
|
if [[ $install_qt == homebrew ]]; then
|
||||||
brew install qt --force-bottle
|
brew install qt --force-bottle
|
||||||
else # for some reason the tests fail with the action installed qt?
|
else # for some reason the tests fail with the action installed qt?
|
||||||
|
|
|
@ -216,11 +216,13 @@ include(FindQtRuntime)
|
||||||
set(CMAKE_AUTOMOC TRUE)
|
set(CMAKE_AUTOMOC TRUE)
|
||||||
|
|
||||||
# Find other needed libraries
|
# Find other needed libraries
|
||||||
find_package(Protobuf REQUIRED)
|
find_package(Protobuf CONFIG)
|
||||||
if(NOT EXISTS "${Protobuf_PROTOC_EXECUTABLE}")
|
if(NOT Protobuf_FOUND)
|
||||||
|
find_package(Protobuf REQUIRED)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(${Protobuf_VERSION} VERSION_LESS "3.21.0.0" AND NOT EXISTS "${Protobuf_PROTOC_EXECUTABLE}")
|
||||||
message(FATAL_ERROR "No protoc command found!")
|
message(FATAL_ERROR "No protoc command found!")
|
||||||
else()
|
|
||||||
message(STATUS "Found Protobuf ${Protobuf_VERSION} at: ${Protobuf_LIBRARIES}")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#Find OpenSSL
|
#Find OpenSSL
|
||||||
|
@ -228,7 +230,6 @@ if(WIN32)
|
||||||
find_package(OpenSSL REQUIRED)
|
find_package(OpenSSL REQUIRED)
|
||||||
if(OPENSSL_FOUND)
|
if(OPENSSL_FOUND)
|
||||||
include_directories(${OPENSSL_INCLUDE_DIRS})
|
include_directories(${OPENSSL_INCLUDE_DIRS})
|
||||||
message(STATUS "Using OpenSSL ${OPENSSL_VERSION}")
|
|
||||||
else()
|
else()
|
||||||
message(
|
message(
|
||||||
WARNING
|
WARNING
|
||||||
|
|
|
@ -8,15 +8,6 @@
|
||||||
#include <google/protobuf/message.h>
|
#include <google/protobuf/message.h>
|
||||||
#include <google/protobuf/text_format.h>
|
#include <google/protobuf/text_format.h>
|
||||||
|
|
||||||
// google/protobuf/stubs/strutil.h is missing on some systems!
|
|
||||||
namespace google
|
|
||||||
{
|
|
||||||
namespace protobuf
|
|
||||||
{
|
|
||||||
std::string CEscape(const std::string &src);
|
|
||||||
} // namespace protobuf
|
|
||||||
} // namespace google
|
|
||||||
|
|
||||||
// FastFieldValuePrinter is added in protobuf 3.4, going out of our way to add the old FieldValuePrinter is not worth it
|
// FastFieldValuePrinter is added in protobuf 3.4, going out of our way to add the old FieldValuePrinter is not worth it
|
||||||
#if GOOGLE_PROTOBUF_VERSION > 3004000
|
#if GOOGLE_PROTOBUF_VERSION > 3004000
|
||||||
|
|
||||||
|
@ -44,8 +35,8 @@ void LimitedPrinter::PrintString(const std::string &val,
|
||||||
{
|
{
|
||||||
auto length = val.length();
|
auto length = val.length();
|
||||||
if (length > MAX_TEXT_LENGTH) {
|
if (length > MAX_TEXT_LENGTH) {
|
||||||
generator->PrintString("\"" + ::google::protobuf::CEscape(val.substr(0, MAX_NAME_LENGTH)) + "... ---snip--- (" +
|
::google::protobuf::TextFormat::FastFieldValuePrinter::PrintString(
|
||||||
std::to_string(length) + " bytes total) \"");
|
val.substr(0, MAX_NAME_LENGTH) + "... ---snip--- (" + std::to_string(length) + " bytes total", generator);
|
||||||
} else {
|
} else {
|
||||||
::google::protobuf::TextFormat::FastFieldValuePrinter::PrintString(val, generator);
|
::google::protobuf::TextFormat::FastFieldValuePrinter::PrintString(val, generator);
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,23 +160,35 @@ set(PROTO_FILES
|
||||||
session_event.proto
|
session_event.proto
|
||||||
)
|
)
|
||||||
|
|
||||||
include_directories(${PROTOBUF_INCLUDE_DIRS})
|
if(${Protobuf_VERSION} VERSION_LESS "3.21.0.0")
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
message(STATUS "Using Protobuf Legacy Mode")
|
||||||
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_FILES})
|
include_directories(${PROTOBUF_INCLUDE_DIRS})
|
||||||
|
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_FILES})
|
||||||
|
|
||||||
add_library(cockatrice_protocol ${PROTO_SRCS} ${PROTO_HDRS})
|
add_library(cockatrice_protocol ${PROTO_SRCS} ${PROTO_HDRS})
|
||||||
set(cockatrice_protocol_LIBS ${PROTOBUF_LIBRARIES})
|
set(cockatrice_protocol_LIBS ${PROTOBUF_LIBRARIES})
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
set(cockatrice_protocol_LIBS ${cockatrice_protocol_LIBS} -lpthread)
|
set(cockatrice_protocol_LIBS ${cockatrice_protocol_LIBS} -lpthread)
|
||||||
endif(UNIX)
|
endif(UNIX)
|
||||||
target_link_libraries(cockatrice_protocol ${cockatrice_protocol_LIBS})
|
target_link_libraries(cockatrice_protocol ${cockatrice_protocol_LIBS})
|
||||||
|
|
||||||
# ubuntu uses an outdated package for protobuf, 3.1.0 is required
|
# ubuntu uses an outdated package for protobuf, 3.1.0 is required
|
||||||
if(${Protobuf_VERSION} VERSION_LESS "3.1.0")
|
if(${Protobuf_VERSION} VERSION_LESS "3.1.0")
|
||||||
# remove unused parameter and misleading indentation warnings when compiling to avoid errors
|
# remove unused parameter and misleading indentation warnings when compiling to avoid errors
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wno-unused-parameter -Wno-misleading-indentation")
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wno-unused-parameter -Wno-misleading-indentation")
|
||||||
message(WARNING "Older protobuf version found (${Protobuf_VERSION} < 3.1.0), "
|
message(WARNING "Older protobuf version found (${Protobuf_VERSION} < 3.1.0), "
|
||||||
"disabled the warnings 'unused-parameter' and 'misleading-indentation' for protobuf generated code "
|
"disabled the warnings 'unused-parameter' and 'misleading-indentation' for protobuf generated code "
|
||||||
"to avoid compilation errors."
|
"to avoid compilation errors."
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
add_library(cockatrice_protocol ${PROTO_FILES})
|
||||||
|
target_link_libraries(cockatrice_protocol PUBLIC protobuf::libprotobuf)
|
||||||
|
set(PROTO_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
|
target_include_directories(cockatrice_protocol PUBLIC "${PROTOBUF_INCLUDE_DIRS}")
|
||||||
|
|
||||||
|
protobuf_generate(
|
||||||
|
TARGET cockatrice_protocol IMPORT_DIRS "${CMAKE_CURRENT_LIST_DIR}" PROTOC_OUT_DIR "${PROTO_BINARY_DIR}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
2
vcpkg
2
vcpkg
|
@ -1 +1 @@
|
||||||
Subproject commit 247662ef304453c72acd6b520fa7ff7656e7347c
|
Subproject commit 8ec31e98fb07e3f9c2e5b6aed0737a76a693fc72
|
Loading…
Reference in a new issue