first stab at installer rule in jamfile (headers are still copied to the wrong directory)

This commit is contained in:
Arvid Norberg 2009-04-02 23:21:44 +00:00
parent e3eb59f477
commit 96afdf8b22
2 changed files with 48 additions and 17 deletions

49
Jamfile
View File

@ -5,6 +5,8 @@ import modules ;
import os ; import os ;
import errors ; import errors ;
import feature : feature ; import feature : feature ;
import package ;
import virtual-target ;
BOOST_ROOT = [ modules.peek : BOOST_ROOT ] ; BOOST_ROOT = [ modules.peek : BOOST_ROOT ] ;
CXXFLAGS = [ modules.peek : CXXFLAGS ] ; CXXFLAGS = [ modules.peek : CXXFLAGS ] ;
@ -18,6 +20,8 @@ if $(BOOST_ROOT)
use-project /boost : $(BOOST_ROOT) ; use-project /boost : $(BOOST_ROOT) ;
} }
VERSION = 0.15 ;
# rule for linking the correct libraries depending # rule for linking the correct libraries depending
# on features and target-os # on features and target-os
rule linking ( properties * ) rule linking ( properties * )
@ -204,6 +208,19 @@ rule building ( properties * )
return $(result) ; return $(result) ;
} }
rule tag ( name : type ? : property-set )
{
name = [ virtual-target.add-prefix-and-suffix $(name) : $(type) : $(property-set) ] ;
if $(type) = SHARED_LIB &&
( ! ( [ $(property-set).get <target-os> ] in windows cygwin ) )
{
name = $(name).$(VERSION) ;
}
return $(name) ;
}
feature tcmalloc : no yes : composite propagated link-incompatible ; feature tcmalloc : no yes : composite propagated link-incompatible ;
feature need-librt : no yes : composite propagated link-incompatible ; feature need-librt : no yes : composite propagated link-incompatible ;
@ -379,15 +396,15 @@ SOURCES =
; ;
KADEMLIA_SOURCES = KADEMLIA_SOURCES =
kademlia/closest_nodes closest_nodes
kademlia/dht_tracker dht_tracker
kademlia/node node
kademlia/refresh refresh
kademlia/rpc_manager rpc_manager
kademlia/find_data find_data
kademlia/node_id node_id
kademlia/routing_table routing_table
kademlia/traversal_algorithm traversal_algorithm
; ;
ZLIB_SOURCES = ZLIB_SOURCES =
@ -433,6 +450,7 @@ local usage-requirements =
<toolset>gcc:<cflags>-Wno-missing-braces <toolset>gcc:<cflags>-Wno-missing-braces
<boost>system:<cxxflags>$(CXXFLAGS) <boost>system:<cxxflags>$(CXXFLAGS)
<boost>system:<linkflags>$(LDFLAGS) <boost>system:<linkflags>$(LDFLAGS)
<tag>@tag
; ;
project torrent ; project torrent ;
@ -446,7 +464,7 @@ lib torrent
<define>BOOST_THREAD_USE_LIB <define>BOOST_THREAD_USE_LIB
<threading>multi <threading>multi
<link>shared:<define>TORRENT_BUILDING_SHARED <link>shared:<define>TORRENT_BUILDING_SHARED
<dht-support>on:<source>src/$(KADEMLIA_SOURCES).cpp <dht-support>on:<source>src/kademlia/$(KADEMLIA_SOURCES).cpp
<dht-support>logging:<source>src/$(KADEMLIA_SOURCES).cpp <dht-support>logging:<source>src/$(KADEMLIA_SOURCES).cpp
<zlib>shipped:<source>zlib/$(ZLIB_SOURCES).c <zlib>shipped:<source>zlib/$(ZLIB_SOURCES).c
<conditional>@building <conditional>@building
@ -461,3 +479,14 @@ lib torrent
$(usage-requirements) $(usage-requirements)
; ;
headers = [ path.glob-tree include/libtorrent : *.hpp ] ;
package.install install
: <install-header-subdir>libtorrent
<install-source-root>libtorrent
<install-no-version-symlinks>on
:
: torrent
: $(headers)
;

View File

@ -7,20 +7,22 @@ def substitute_file(name):
subst = '' subst = ''
f = open(name) f = open(name)
for l in f: for l in f:
if '#define LIBTORRENT_VERSION_MAJOR' in l: if '#define LIBTORRENT_VERSION_MAJOR' in l and filename.endiswith('.hpp'):
l = '#define LIBTORRENT_VERSION_MAJOR %d\n' % version[0] l = '#define LIBTORRENT_VERSION_MAJOR %d\n' % version[0]
elif '#define LIBTORRENT_VERSION_MINOR' in l: elif '#define LIBTORRENT_VERSION_MINOR' in l and filename.endiswith('.hpp'):
l = '#define LIBTORRENT_VERSION_MINOR %d\n' % version[1] l = '#define LIBTORRENT_VERSION_MINOR %d\n' % version[1]
if '#define LIBTORRENT_VERSION_TINY' in l: if '#define LIBTORRENT_VERSION_TINY' in l and filename.endiswith('.hpp'):
l = '#define LIBTORRENT_VERSION_TINY %d\n' % version[2] l = '#define LIBTORRENT_VERSION_TINY %d\n' % version[2]
elif '#define LIBTORRENT_VERSION' in l: elif '#define LIBTORRENT_VERSION' in l and filename.endiswith('.hpp'):
l = '#define LIBTORRENT_VERSION "%d.%d.%d.%d"\n' % (version[0], version[1], version[2], version[3]) l = '#define LIBTORRENT_VERSION "%d.%d.%d.%d"\n' % (version[0], version[1], version[2], version[3])
elif 'AC_INIT([libtorrent-rasterbar]' in l: elif 'AC_INIT([libtorrent-rasterbar]' in l and filename.endiswith('.in'):
l = 'AC_INIT([libtorrent-rasterbar], [%d.%d.%d], [arvid@cs.umu.se])\n' % (version[0], version[1], version[2]) l = 'AC_INIT([libtorrent-rasterbar], [%d.%d.%d], [arvid@cs.umu.se])\n' % (version[0], version[1], version[2])
elif 'set (VERSION ' in l: elif 'set (VERSION ' in l and filename.endiswith('.in'):
l = 'set (VERSION "%d.%d.%d")\n' % (version[0], version[1], version[2]) l = 'set (VERSION "%d.%d.%d")\n' % (version[0], version[1], version[2])
elif ':Version: ' in l: elif ':Version: ' in l and filename.endiswith('.rst'):
l = ':Version: %d.%d.%d\n' % (version[0], version[1], version[2]) l = ':Version: %d.%d.%d\n' % (version[0], version[1], version[2])
elif 'VERSION = ' in l and filename.endiswith('Jamfile'):
l = 'VERSION = %d.%d.%d ;\n' % (version[0], version[1], version[2])
subst += l subst += l