| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | 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()
 |