58 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| function(generate_single_protobuf target_name gen_dst protobuf_name executable)
 | |
|     file(MAKE_DIRECTORY ${gen_dst})
 | |
| 
 | |
|     # Copied from myprotobuf.cmake.
 | |
|     if (PROTOBUF_GENERATE_CPP_APPEND_PATH)
 | |
|         # Create an include path for each file specified
 | |
|         set(FIL ${cld3_src}/${protobuf_name})
 | |
|         get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
 | |
|         get_filename_component(ABS_PATH ${ABS_FIL} PATH)
 | |
|         list(FIND _protobuf_include_path ${ABS_PATH} _contains_already)
 | |
|         if (${_contains_already} EQUAL -1)
 | |
|             list(APPEND _protobuf_include_path -I ${ABS_PATH})
 | |
|         endif()
 | |
|     else()
 | |
|         set(_protobuf_include_path -I ${cld3_src})
 | |
|     endif()
 | |
| 
 | |
|     if (DEFINED PROTOBUF_IMPORT_DIRS)
 | |
|         foreach (DIR ${PROTOBUF_IMPORT_DIRS})
 | |
|             get_filename_component(ABS_PATH ${DIR} ABSOLUTE)
 | |
|             list(FIND _protobuf_include_path ${ABS_PATH} _contains_already)
 | |
|             if (${_contains_already} EQUAL -1)
 | |
|                 list(APPEND _protobuf_include_path -I ${ABS_PATH})
 | |
|             endif()
 | |
|         endforeach()
 | |
|     endif()
 | |
|     #
 | |
| 
 | |
|     get_filename_component(protobuf_name_we ${protobuf_name} NAME_WE)
 | |
| 
 | |
|     set(gen_timestamp ${gen_dst}/${protobuf_name}.timestamp)
 | |
|     set(gen_files
 | |
|         ${gen_dst}/${protobuf_name_we}.pb.cc
 | |
|         ${gen_dst}/${protobuf_name_we}.pb.h
 | |
|     )
 | |
| 
 | |
|     set(gen_src ${cld3_src}/${protobuf_name})
 | |
|     add_custom_command(
 | |
|     OUTPUT
 | |
|         ${gen_timestamp}
 | |
|     BYPRODUCTS
 | |
|         ${gen_files}
 | |
|     COMMAND
 | |
|         ${executable}
 | |
|         --cpp_out
 | |
|         ${gen_dst}
 | |
|         ${_protobuf_include_path}
 | |
|         ${gen_src}
 | |
|     COMMAND
 | |
|         echo 1> ${gen_timestamp}
 | |
|     COMMENT "Generating protobuf ${protobuf_name} (${target_name})"
 | |
|     DEPENDS
 | |
|         ${executable}
 | |
|         ${gen_src}
 | |
|     VERBATIM
 | |
|     )
 | |
|     generate_target(${target_name} ${protobuf_name} ${gen_timestamp} "${gen_files}" ${gen_dst})
 | |
| endfunction()
 | 
