aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorJoshua Haberman <jhaberman@gmail.com>2018-09-02 10:07:14 -0700
committerGitHub <noreply@github.com>2018-09-02 10:07:14 -0700
commitd340bdf50821e6db173a9e41bc7bde740275ba33 (patch)
tree476323777542a132b28b6d0a1ef8442b7ec85acb /cmake
parentd42ec0791ac63a12765cf9b09e9438bbcefdf1d1 (diff)
parent0e3fa28e47c74684f6db3ca01430274864f576f0 (diff)
downloadprotobuf-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.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/CMakeLists.txt5
-rw-r--r--cmake/conformance.cmake47
2 files changed, 52 insertions, 0 deletions
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)