2008/9/18 Neil Girdhar <[EMAIL PROTECTED]>: > > Hi, I'm trying to add a special cmake rule to build google's protocol > buffers, and I was hoping someone could help me do it. I've broken down the > details of the protocol compiler here, so all that's missing is a cmake > expert.
Did you look at the recently posted CMake module: http://www.cmake.org/pipermail/cmake/2008-September/023963.html I've added some suggested "basic" commands afterwards but I really suggest to try the preceding module and may be improve it or fix it, if it does not suit your needs and give feedback to the original author. > I have some ".proto" files that live in the same directories as the source. > I want to specify a rule that calls this: > > protoc DIR/SOMEFILE.proto --cpp_out=SOMEDIR > > SOMEDIR should probably be DIR/CMakeFiles/DIR.dir What would you do that? I suggest that SOMEDIR should be ${CMAKE_CURRENT_BINARY_DIR} which the directory in the build tree which the sibbling of the corresponding source tree directory (${CMAKE_CURRENT_SOURCE_DIR}) > this will generate > SOMEDIR/SOMEFILE.pb.h > SOMEDIR/SOMEFILE.pb.cc Then something like this in DIR/CMakeLists.txt ADD_CUSTOM_COMMAND( OUTPUT SOMEFILE.pb.h SOMEFILE.pb.cc COMMAND protoc SOMEFILE.proto --cpp_out=${CMAKE_CURRENT_BINARY_DIR} DEPENDS SOMEFILE.proto WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) > I want to include SOMEFILE.pb.h in my source files and > I want them to be found. > I want to compile and link SOMEFILE.pb.cc automatically Then those file are compiled in a LIBRARY or EXECUTABLE ADD_LIBRARY(mylib SOMEFILE.pb.h SOMEFILE.pb.cc) then do not forget to tell CMake that those files are to be generated: set_source_files_properties(SOMEFILE.pb.h SOMEFILE.pb.cc PROPERTIES GENERATED TRUE) > > what is the easiest set of rules that I can use to extend cmake to do this? -- Erk _______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
