117 lines
3.7 KiB
CMake
117 lines
3.7 KiB
CMake
|
#-----------------------------------------------------------------------------
|
||
|
#
|
||
|
# CMake config
|
||
|
#
|
||
|
# protozero tests
|
||
|
#
|
||
|
#-----------------------------------------------------------------------------
|
||
|
|
||
|
include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/catch")
|
||
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||
|
|
||
|
add_subdirectory(unit)
|
||
|
|
||
|
set(TEST_DIRS alignment
|
||
|
bool
|
||
|
bytes
|
||
|
complex
|
||
|
double
|
||
|
enum
|
||
|
fixed32
|
||
|
fixed64
|
||
|
float
|
||
|
int32
|
||
|
int64
|
||
|
message
|
||
|
nested
|
||
|
repeated
|
||
|
repeated_packed_bool
|
||
|
repeated_packed_double
|
||
|
repeated_packed_enum
|
||
|
repeated_packed_fixed32
|
||
|
repeated_packed_fixed64
|
||
|
repeated_packed_float
|
||
|
repeated_packed_int32
|
||
|
repeated_packed_int64
|
||
|
repeated_packed_sfixed32
|
||
|
repeated_packed_sfixed64
|
||
|
repeated_packed_sint32
|
||
|
repeated_packed_sint64
|
||
|
repeated_packed_uint32
|
||
|
repeated_packed_uint64
|
||
|
rollback
|
||
|
sfixed32
|
||
|
sfixed64
|
||
|
sint32
|
||
|
sint64
|
||
|
skip
|
||
|
string
|
||
|
tag_and_type
|
||
|
tags
|
||
|
uint32
|
||
|
uint64
|
||
|
vector_tile
|
||
|
wrong_type_access)
|
||
|
|
||
|
string(REGEX REPLACE "([^;]+)" "t/\\1/reader_test_cases.cpp" _test_sources "${TEST_DIRS}")
|
||
|
|
||
|
add_executable(reader_tests reader_tests.cpp ${_test_sources})
|
||
|
|
||
|
add_test(NAME reader_tests COMMAND reader_tests)
|
||
|
|
||
|
set_tests_properties(reader_tests PROPERTIES WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
|
||
|
|
||
|
if(PROTOBUF_FOUND)
|
||
|
message(STATUS "Found protobuf libraries: Adding writer tests...")
|
||
|
|
||
|
include_directories(SYSTEM ${PROTOBUF_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR})
|
||
|
|
||
|
set(PROTOBUF_GENERATE_CPP_APPEND_PATH false)
|
||
|
|
||
|
foreach(_dir IN LISTS TEST_DIRS)
|
||
|
set(_full_src_dir "${CMAKE_CURRENT_SOURCE_DIR}/t/${_dir}")
|
||
|
if(EXISTS "${_full_src_dir}/writer_test_cases.cpp")
|
||
|
message(STATUS " Adding ${_dir}")
|
||
|
set(_full_bin_dir "${CMAKE_CURRENT_BINARY_DIR}/t/${_dir}")
|
||
|
set(_proto_file "${_full_src_dir}/${_dir}_testcase.proto")
|
||
|
set(_src_file "${_full_bin_dir}/${_dir}_testcase.pb.cc")
|
||
|
set(_hdr_file "${_full_bin_dir}/${_dir}_testcase.pb.h")
|
||
|
|
||
|
file(MAKE_DIRECTORY ${_full_bin_dir})
|
||
|
|
||
|
list(APPEND SOURCES "${_full_src_dir}/writer_test_cases.cpp")
|
||
|
list(APPEND PROTO_FILES "${_proto_file}")
|
||
|
list(APPEND PROTO_SRCS "${_src_file}")
|
||
|
list(APPEND PROTO_HDRS "${_hdr_file}")
|
||
|
|
||
|
set_source_files_properties(${_proto_file} ${_hdr_file}
|
||
|
PROPERTIES GENERATED TRUE)
|
||
|
|
||
|
add_custom_command(
|
||
|
OUTPUT ${_src_file} ${_hdr_file}
|
||
|
COMMAND ${PROTOBUF_PROTOC_EXECUTABLE}
|
||
|
ARGS --cpp_out=${_full_bin_dir} -I ${_full_src_dir} ${_proto_file}
|
||
|
DEPENDS ${_proto_file}
|
||
|
VERBATIM)
|
||
|
endif()
|
||
|
endforeach()
|
||
|
|
||
|
add_executable(writer_tests writer_tests.cpp ${SOURCES} ${PROTO_SRCS} ${PROTO_HDRS})
|
||
|
|
||
|
target_link_libraries(writer_tests ${PROTOBUF_LITE_LIBRARY})
|
||
|
|
||
|
if(NOT MSVC)
|
||
|
set_target_properties(writer_tests PROPERTIES COMPILE_FLAGS "-pthread")
|
||
|
if(NOT APPLE)
|
||
|
set_target_properties(writer_tests PROPERTIES LINK_FLAGS "-pthread")
|
||
|
endif()
|
||
|
endif()
|
||
|
|
||
|
add_test(NAME writer_tests COMMAND writer_tests)
|
||
|
else()
|
||
|
message(STATUS "Protobuf libraries not found: Disabling writer tests.")
|
||
|
endif()
|
||
|
|
||
|
|
||
|
#-----------------------------------------------------------------------------
|