| Index: third_party/protobuf/cmake/examples.cmake
|
| diff --git a/third_party/protobuf/cmake/examples.cmake b/third_party/protobuf/cmake/examples.cmake
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e5cad63f67650db353a1f3a0e8b349e8cf0db32f
|
| --- /dev/null
|
| +++ b/third_party/protobuf/cmake/examples.cmake
|
| @@ -0,0 +1,57 @@
|
| +if(protobuf_VERBOSE)
|
| + message(STATUS "Protocol Buffers Examples Configuring...")
|
| +endif()
|
| +
|
| +get_filename_component(examples_dir "../examples" ABSOLUTE)
|
| +
|
| +if(protobuf_VERBOSE)
|
| + message(STATUS "Protocol Buffers Examples Configuring done")
|
| +endif()
|
| +include(ExternalProject)
|
| +
|
| +# Internal utility function: Create a custom target representing a build of examples with custom options.
|
| +function(add_examples_build NAME)
|
| +
|
| + ExternalProject_Add(${NAME}
|
| + PREFIX ${NAME}
|
| + SOURCE_DIR "${examples_dir}"
|
| + BINARY_DIR ${NAME}
|
| + STAMP_DIR ${NAME}/logs
|
| + INSTALL_COMMAND "" #Skip
|
| + LOG_CONFIGURE 1
|
| + CMAKE_CACHE_ARGS "-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}"
|
| + "-Dprotobuf_VERBOSE:BOOL=${protobuf_VERBOSE}"
|
| + ${ARGN}
|
| + )
|
| + set_property(TARGET ${NAME} PROPERTY FOLDER "Examples")
|
| + set_property(TARGET ${NAME} PROPERTY EXCLUDE_FROM_ALL TRUE)
|
| +endfunction()
|
| +
|
| +# Add examples as an external project.
|
| +# sub_directory cannot be used because the find_package(protobuf) call would cause failures with redefined targets.
|
| +add_examples_build(examples "-Dprotobuf_DIR:PATH=${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}")
|
| +add_dependencies(examples libprotobuf protoc)
|
| +
|
| +option(protobuf_BUILD_EXAMPLES_MULTITEST "Build Examples in multiple configurations. Useful for testing." OFF)
|
| +mark_as_advanced(protobuf_BUILD_EXAMPLES_MULTITEST)
|
| +if(protobuf_BUILD_EXAMPLES_MULTITEST)
|
| + set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
| +
|
| + #Build using the legacy compatibility module.
|
| + add_examples_build(examples-legacy
|
| + "-Dprotobuf_DIR:PATH=${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}"
|
| + "-Dprotobuf_MODULE_COMPATIBLE:BOOL=TRUE"
|
| + )
|
| + add_dependencies(examples-legacy libprotobuf protoc)
|
| +
|
| + #Build using the installed library.
|
| + add_examples_build(examples-installed
|
| + "-Dprotobuf_DIR:PATH=${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}"
|
| + )
|
| +
|
| + #Build using the installed library in legacy compatibility mode.
|
| + add_examples_build(examples-installed-legacy
|
| + "-Dprotobuf_DIR:PATH=${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}"
|
| + "-Dprotobuf_MODULE_COMPATIBLE:BOOL=TRUE"
|
| + )
|
| +endif()
|
|
|