OLD | NEW |
| (Empty) |
1 if(protobuf_VERBOSE) | |
2 message(STATUS "Protocol Buffers Examples Configuring...") | |
3 endif() | |
4 | |
5 get_filename_component(examples_dir "../examples" ABSOLUTE) | |
6 | |
7 if(protobuf_VERBOSE) | |
8 message(STATUS "Protocol Buffers Examples Configuring done") | |
9 endif() | |
10 include(ExternalProject) | |
11 | |
12 # Internal utility function: Create a custom target representing a build of exam
ples with custom options. | |
13 function(add_examples_build NAME) | |
14 | |
15 ExternalProject_Add(${NAME} | |
16 PREFIX ${NAME} | |
17 SOURCE_DIR "${examples_dir}" | |
18 BINARY_DIR ${NAME} | |
19 STAMP_DIR ${NAME}/logs | |
20 INSTALL_COMMAND "" #Skip | |
21 LOG_CONFIGURE 1 | |
22 CMAKE_CACHE_ARGS "-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}" | |
23 "-Dprotobuf_VERBOSE:BOOL=${protobuf_VERBOSE}" | |
24 ${ARGN} | |
25 ) | |
26 set_property(TARGET ${NAME} PROPERTY FOLDER "Examples") | |
27 set_property(TARGET ${NAME} PROPERTY EXCLUDE_FROM_ALL TRUE) | |
28 endfunction() | |
29 | |
30 # Add examples as an external project. | |
31 # sub_directory cannot be used because the find_package(protobuf) call would cau
se failures with redefined targets. | |
32 add_examples_build(examples "-Dprotobuf_DIR:PATH=${CMAKE_BINARY_DIR}/${CMAKE_INS
TALL_CMAKEDIR}") | |
33 add_dependencies(examples libprotobuf protoc) | |
34 | |
35 option(protobuf_BUILD_EXAMPLES_MULTITEST "Build Examples in multiple configurati
ons. Useful for testing." OFF) | |
36 mark_as_advanced(protobuf_BUILD_EXAMPLES_MULTITEST) | |
37 if(protobuf_BUILD_EXAMPLES_MULTITEST) | |
38 set_property(GLOBAL PROPERTY USE_FOLDERS ON) | |
39 | |
40 #Build using the legacy compatibility module. | |
41 add_examples_build(examples-legacy | |
42 "-Dprotobuf_DIR:PATH=${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}" | |
43 "-Dprotobuf_MODULE_COMPATIBLE:BOOL=TRUE" | |
44 ) | |
45 add_dependencies(examples-legacy libprotobuf protoc) | |
46 | |
47 #Build using the installed library. | |
48 add_examples_build(examples-installed | |
49 "-Dprotobuf_DIR:PATH=${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}" | |
50 ) | |
51 | |
52 #Build using the installed library in legacy compatibility mode. | |
53 add_examples_build(examples-installed-legacy | |
54 "-Dprotobuf_DIR:PATH=${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}" | |
55 "-Dprotobuf_MODULE_COMPATIBLE:BOOL=TRUE" | |
56 ) | |
57 endif() | |
OLD | NEW |