The following issue has been SUBMITTED.
======================================================================
http://public.kitware.com/Bug/view.php?id=15161
======================================================================
Reported By: hansmi
Assigned To:
======================================================================
Project: CMake
Issue ID: 15161
Category: CMake
Reproducibility: always
Severity: minor
Priority: normal
Status: new
======================================================================
Date Submitted: 2014-09-17 00:20 EDT
Last Modified: 2014-09-17 00:20 EDT
======================================================================
Summary: FindProtobuf: Generated source not regenerated on
library update
Description:
After updating from Protocol Buffers 2.5.0 to 2.6.0 compilation of the generated
source failed: “This file was generated by an older version of protoc which is
incompatible with your Protocol Buffer headers. Please regenerate this file with
a newer version of protoc.”.
Turns out the source and headers generated by way of
FindProtobuf.cmake:PROTOBUF_GENERATE_CPP aren't updated. Adding a dependency on
the compiler executable fixes this issue.
Proposed patch:
$ diff -u FindProtobuf.cmake.orig FindProtobuf.cmake
--- FindProtobuf.cmake.orig 2014-09-17 06:11:10.282377650 +0200
+++ FindProtobuf.cmake 2014-09-17 06:11:10.282377650 +0200
@@ -118,7 +118,7 @@
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h"
COMMAND ${PROTOBUF_PROTOC_EXECUTABLE}
ARGS --cpp_out ${CMAKE_CURRENT_BINARY_DIR} ${_protobuf_include_path}
${ABS_FIL}
- DEPENDS ${ABS_FIL}
+ DEPENDS ${ABS_FIL} ${PROTOBUF_PROTOC_EXECUTABLE}
COMMENT "Running C++ protocol buffer compiler on ${FIL}"
VERBATIM )
endforeach()
Steps to Reproduce:
1. Install Protocol Buffers 2.5.0
2. Generate source and header using 2.5.0's protoc binary
3. Install Protocol Buffers 2.6.0
4. Re-build source
Additional Information:
Workaround in case someone's affected by this and can't modify
FindProtobuf.cmake in their environment:
foreach(i ${PROTO_SRCS} ${PROTO_HDRS})
add_custom_command(OUTPUT ${i} DEPENDS ${PROTOBUF_PROTOC_EXECUTABLE} APPEND)
endforeach()
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2014-09-17 00:20 hansmi New Issue
======================================================================
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers