diff options
author | Joshua Haberman <jhaberman@gmail.com> | 2018-09-02 10:07:14 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-02 10:07:14 -0700 |
commit | d340bdf50821e6db173a9e41bc7bde740275ba33 (patch) | |
tree | 476323777542a132b28b6d0a1ef8442b7ec85acb | |
parent | d42ec0791ac63a12765cf9b09e9438bbcefdf1d1 (diff) | |
parent | 0e3fa28e47c74684f6db3ca01430274864f576f0 (diff) | |
download | protobuf-d340bdf50821e6db173a9e41bc7bde740275ba33.tar.gz protobuf-d340bdf50821e6db173a9e41bc7bde740275ba33.tar.bz2 protobuf-d340bdf50821e6db173a9e41bc7bde740275ba33.zip |
Merge pull request #5078 from haberman/conformance-cmake
Added cmake build files for the conformance test runner.
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | cmake/CMakeLists.txt | 5 | ||||
-rw-r--r-- | cmake/conformance.cmake | 47 |
3 files changed, 53 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index 6694dffe..b0913a58 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1043,6 +1043,7 @@ EXTRA_DIST = $(@DIST_LANG@_EXTRA_DIST) \ WORKSPACE \ cmake/CMakeLists.txt \ cmake/README.md \ + cmake/conformance.cmake \ cmake/examples.cmake \ cmake/extract_includes.bat.in \ cmake/install.cmake \ diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index ece39f7f..06436c3a 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -30,6 +30,7 @@ endif() # Options option(protobuf_BUILD_TESTS "Build tests" ON) +option(protobuf_BUILD_CONFORMANCE "Build conformance tests" OFF) option(protobuf_BUILD_EXAMPLES "Build examples" OFF) option(protobuf_BUILD_PROTOC_BINARIES "Build libprotoc and protoc compiler" ON) if (BUILD_SHARED_LIBS) @@ -218,6 +219,10 @@ if (protobuf_BUILD_TESTS) include(tests.cmake) endif (protobuf_BUILD_TESTS) +if (protobuf_BUILD_CONFORMANCE) + include(conformance.cmake) +endif (protobuf_BUILD_CONFORMANCE) + include(install.cmake) if (protobuf_BUILD_EXAMPLES) diff --git a/cmake/conformance.cmake b/cmake/conformance.cmake new file mode 100644 index 00000000..17fa4b96 --- /dev/null +++ b/cmake/conformance.cmake @@ -0,0 +1,47 @@ + +add_custom_command( + OUTPUT ${protobuf_source_dir}/conformance/conformance.pb.cc + DEPENDS protoc ${protobuf_source_dir}/conformance/conformance.proto + COMMAND protoc ${protobuf_source_dir}/conformance/conformance.proto + --proto_path=${protobuf_source_dir}/conformance + --cpp_out=${protobuf_source_dir}/conformance +) + +add_custom_command( + OUTPUT ${protobuf_source_dir}/src/google/protobuf/test_messages_proto3.pb.cc + ${protobuf_source_dir}/src/google/protobuf/test_messages_proto2.pb.cc + DEPENDS protoc ${protobuf_source_dir}/src/google/protobuf/test_messages_proto3.proto + protoc ${protobuf_source_dir}/src/google/protobuf/test_messages_proto2.proto + COMMAND protoc ${protobuf_source_dir}/src/google/protobuf/test_messages_proto3.proto + ${protobuf_source_dir}/src/google/protobuf/test_messages_proto2.proto + --proto_path=${protobuf_source_dir}/src + --cpp_out=${protobuf_source_dir}/src +) + +add_executable(conformance_test_runner + ${protobuf_source_dir}/conformance/conformance.pb.cc + ${protobuf_source_dir}/conformance/conformance_test.cc + ${protobuf_source_dir}/conformance/conformance_test_runner.cc + ${protobuf_source_dir}/conformance/third_party/jsoncpp/json.h + ${protobuf_source_dir}/conformance/third_party/jsoncpp/jsoncpp.cpp + ${protobuf_source_dir}/src/google/protobuf/test_messages_proto3.pb.cc + ${protobuf_source_dir}/src/google/protobuf/test_messages_proto2.pb.cc +) + +add_executable(conformance_cpp + ${protobuf_source_dir}/conformance/conformance.pb.cc + ${protobuf_source_dir}/conformance/conformance_cpp.cc + ${protobuf_source_dir}/src/google/protobuf/test_messages_proto3.pb.cc + ${protobuf_source_dir}/src/google/protobuf/test_messages_proto2.pb.cc +) + +target_include_directories( + conformance_test_runner + PUBLIC ${protobuf_source_dir}/conformance) + +target_include_directories( + conformance_cpp + PUBLIC ${protobuf_source_dir}/conformance) + +target_link_libraries(conformance_test_runner libprotobuf) +target_link_libraries(conformance_cpp libprotobuf) |