#! /usr/bin/env python import os from waflib import Logs top = '.' out = 'build' def options(opt): opt.load('compiler_cxx python java') def configure(conf): conf.load('compiler_cxx python java protoc') conf.check_python_version(minver=(2, 5, 0)) # Here you have to point to your protobuf-java JAR if os.path.isfile('/tmp/cp/protobuf-java-2.5.0.jar'): conf.env.CLASSPATH_PROTOBUF = ['/tmp/cp/protobuf-java-2.5.0.jar'] else: Logs.warn('Edit the wscript file and set CLASSPATH_PROTOBUF for java') def build(bld): bld( features = 'cxx cxxshlib', source = ['inc/message_inc.proto','inc/message.proto'], name = 'somelib', target = 'somelib', includes = ['inc'], export_includes = ['inc']) bld( features = 'cxx cxxshlib', source = ['incdeep/a/b/test.proto'], target = 'somedeeplib', includes = ['incdeep']) bld( features = 'cxx cxxshlib', source = ['incseparate/depinotherdir.proto'], target = 'crossdirlib', includes = ['incseparate'], use = ['somelib']) bld( features = 'py', name = 'pbpy', source = ['inc/message_inc.proto','inc/message.proto'], protoc_includes = ['inc']) bld( features = 'cxx py', name = 'pbboth', source = ['incboth/messageboth_inc.proto', 'incboth/messageboth.proto'], protoc_includes = ['incboth']) # either protoc_includes or includes would work in this case if bld.env.CLASSPATH_PROTOBUF: bld( features = 'javac protoc', name = 'pbjava', srcdir = 'inc/', source = ['inc/message_inc.proto', 'inc/message.proto', 'inc/msgCaseTest.proto' ], use = 'PROTOBUF', protoc_includes = ['inc']) bld.recurse('increcurse')