2
0
mirror of https://gitlab.com/ita1024/waf.git synced 2024-11-21 17:35:55 +01:00
waf/demos/c++/wscript
Alexander Afanasyev 728205fe3c Change with shared library compatibility version handling
For ELF binaries (e.g., Linux): default compatible version (SONAME =
`<library-name>.so.<MAJOR>`) can be specialized using additional `cnum`
parameter to `<library-name>.so.<MAJOR>.<MINOR>` or
`<library-name>.so.<MAJOR>.<MINOR>.<PATCH>`.

For Mach-O binaries (e.g., OS X):

- (bugfix) install-name points to compatible version (not absolute path
  to a non-versioned library)
- Default install-name `<install-path>/<library-name>.<MAJOR>.dylib` can
  be specialized using `cnum` parameter to
  `<install-path>/<library-name>.<MAJOR>.<MINOR>.dylib` or
  `<install-path>/<library-name>.<MAJOR>.<MINOR>.<PATCH>.dylib`
- `-Wl,-compatibility_version` and `-Wl,-current_version` flags use
  version from cnum/vnum (default cnum is vnum.split('.')[0])
2015-06-05 17:27:32 -07:00

36 lines
1.1 KiB
Python

#! /usr/bin/env python
# encoding: utf-8
# Thomas Nagy, 2006-2010 (ita)
# the following two variables are used by the target "waf dist"
VERSION='0.0.1'
APPNAME='cxx_test'
# these variables are mandatory ('/' are converted automatically)
top = '.'
out = 'build'
def options(opt):
opt.load('compiler_cxx')
def configure(conf):
conf.load('compiler_cxx')
conf.check(header_name='stdio.h', features='cxx cxxprogram', mandatory=False)
def build(bld):
bld.shlib(source='a.cpp', target='mylib', vnum='9.8.7')
bld.shlib(source='a.cpp', target='mylib2', vnum='9.8.7', cnum='9.8')
bld.shlib(source='a.cpp', target='mylib3')
bld.program(source='main.cpp', target='app', use='mylib')
bld.stlib(target='foo', source='b.cpp')
# just a test to check if the .c is compiled as c++ when no c compiler is found
bld.program(features='cxx cxxprogram', source='main.c', target='app2')
if bld.cmd != 'clean':
from waflib import Logs
bld.logger = Logs.make_logger('test.log', 'build') # just to get a clean output
bld.check(header_name='sadlib.h', features='cxx cxxprogram', mandatory=False)
bld.logger = None