Revision control

Copy as Markdown

# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)
cmake_minimum_required(VERSION 3.16)
project(tst_protobuf_basic LANGUAGES CXX)
find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST)
endif()
qt6_add_protobuf(tst_protobuf_basictypes_gen
PROTO_FILES
proto/basicmessages.proto
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/qt_protobuf_generated"
)
qt_autogen_tools_initial_setup(tst_protobuf_basictypes_gen)
qt_internal_add_test(tst_protobuf_basictypes
SOURCES
tst_protobuf_basictypes.cpp
INCLUDE_DIRECTORIES
../shared
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
)
qt6_add_protobuf(tst_protobuf_repeatedtypes_gen
PROTO_FILES
proto/repeatedmessages.proto
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/qt_protobuf_generated"
)
qt_autogen_tools_initial_setup(tst_protobuf_repeatedtypes_gen)
# @todo: this explicit linking is needed, try to make it automatic since it's a dependency
# between the proto files. In the future!
target_link_libraries(tst_protobuf_repeatedtypes_gen
PUBLIC
tst_protobuf_basictypes_gen
)
qt_internal_add_test(tst_protobuf_repeatedtypes
SOURCES
tst_protobuf_repeatedtypes.cpp
INCLUDE_DIRECTORIES
../shared
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_repeatedtypes_gen
)
qt6_add_protobuf(tst_protobuf_maptypes_gen
PROTO_FILES
proto/mapmessages.proto
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/qt_protobuf_generated"
)
if(MINGW)
target_compile_options(tst_protobuf_maptypes_gen PRIVATE "-Wa,-mbig-obj")
endif()
qt_autogen_tools_initial_setup(tst_protobuf_maptypes_gen)
# @todo: this explicit linking is needed, try to make it automatic since it's a dependency
# between the proto files.
target_link_libraries(tst_protobuf_maptypes_gen
PUBLIC
tst_protobuf_basictypes_gen
)
qt_internal_add_test(tst_protobuf_maptypes
SOURCES
tst_protobuf_maptypes.cpp
INCLUDE_DIRECTORIES
../shared
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_maptypes_gen
)
qt6_add_protobuf(tst_protobuf_fieldindexrange_gen
PROTO_FILES
proto/fieldindexrange.proto
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/qt_protobuf_generated"
)
qt_autogen_tools_initial_setup(tst_protobuf_fieldindexrange_gen)
qt_internal_add_test(tst_protobuf_serialization_basictypes
SOURCES
tst_protobuf_serialization_basictypes.cpp
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_fieldindexrange_gen
)
qt_internal_add_test(tst_protobuf_serialization_repeatedtypes
SOURCES
tst_protobuf_serialization_repeatedtypes.cpp
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_repeatedtypes_gen
)
qt_internal_add_test(tst_protobuf_serialization_maptypes
SOURCES
tst_protobuf_serialization_maptypes.cpp
INCLUDE_DIRECTORIES
../shared
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_maptypes_gen
)
qt_internal_add_test(tst_protobuf_serialization_complex_maptypes
SOURCES
tst_protobuf_serialization_complex_maptypes.cpp
INCLUDE_DIRECTORIES
../shared
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_maptypes_gen
)
qt_internal_add_test(tst_protobuf_deserialization_basictypes
SOURCES
tst_protobuf_deserialization_basictypes.cpp
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_fieldindexrange_gen
)
qt_internal_add_test(tst_protobuf_deserialization_repeatedtypes
SOURCES
tst_protobuf_deserialization_repeatedtypes.cpp
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_repeatedtypes_gen
)
qt_internal_add_test(tst_protobuf_deserialization_maptypes
SOURCES
tst_protobuf_deserialization_maptypes.cpp
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_maptypes_gen
)
qt_internal_add_test(tst_protobuf_deserialization_complex_maptypes
SOURCES
tst_protobuf_deserialization_complex_maptypes.cpp
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_maptypes_gen
)
qt_internal_add_test(tst_protobuf_non_packed_repeatedtypes
SOURCES
tst_protobuf_non_packed_repeatedtypes.cpp
LIBRARIES
Qt::Test
Qt::CorePrivate
Qt::Protobuf
)
qt6_add_protobuf(tst_protobuf_non_packed_repeatedtypes
PROTO_FILES
proto/repeatednonpackedmessages.proto
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/qt_protobuf_generated"
)
qt_autogen_tools_initial_setup(tst_protobuf_non_packed_repeatedtypes)
qt_internal_add_test(tst_protobuf_unknown_field
SOURCES
tst_protobuf_unknown_field.cpp
LIBRARIES
Qt::Test
Qt::Protobuf)
qt6_add_protobuf(tst_protobuf_unknown_field
PROTO_FILES
proto/unknownfield.proto
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/qt_protobuf_generated"
)
qt_internal_add_test(tst_protobuf_raw_serializers
SOURCES
tst_protobuf_raw_serializers.cpp
LIBRARIES
Qt::Test
Qt::ProtobufPrivate
tst_protobuf_basictypes_gen
)
qt6_add_protobuf(tst_protobuf_non_final_basictypes_gen
PROTO_FILES
proto/basicmessages.proto
OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/qt_protobuf_generated/non_final"
GENERATE_NON_FINAL_MESSAGES
EXTRA_NAMESPACE "nonfinal"
HEADER_GUARD pragma
)
qt_autogen_tools_initial_setup(tst_protobuf_non_final_basictypes_gen)
if(UNIX AND NOT CMAKE_CROSSCOMPILING)
qt_internal_add_test(tst_protobuf_internals
SOURCES
tst_protobuf_internals.cpp
LIBRARIES
Qt::Test
Qt::Protobuf
tst_protobuf_basictypes_gen
tst_protobuf_non_final_basictypes_gen
)
endif()