You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.6 KiB
Python
65 lines
1.6 KiB
Python
#! /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'],
|
|
use = 'PROTOBUF',
|
|
protoc_includes = ['inc'])
|
|
|
|
bld.recurse('increcurse')
|