@@ -7,13 +7,25 @@ Import( "envPy" )
7
7
Import ("installPrefix" )
8
8
Import ("resampleLibraryName" )
9
9
10
- AvTranscoderVersion = "0.0.1"
10
+ try :
11
+ import git
12
+ # Get last tag of git repository
13
+ repo = git .Repo ("." )
14
+ tags = repo .tags
15
+ if tags :
16
+ lastTag = tags [- 1 ]
17
+ avTranscoderVersion = lastTag .name [1 :]
18
+ else :
19
+ raise
20
+ except Exception :
21
+ # Set a default version
22
+ avTranscoderVersion = "0.0.1"
11
23
12
24
env .Append (
13
- SHLIBVERSION = AvTranscoderVersion
25
+ SHLIBVERSION = avTranscoderVersion
14
26
)
15
27
16
- sAvTranscoder = env .StaticLibrary (
28
+ staticAvTranscoder = env .StaticLibrary (
17
29
'sAvTranscoder' ,
18
30
Glob ('AvTranscoder/*.cpp' )+
19
31
Glob ('AvTranscoder/*/*.cpp' ),
@@ -26,7 +38,7 @@ sAvTranscoder = env.StaticLibrary(
26
38
]
27
39
)
28
40
29
- SharedAvTranscoder = env .SharedLibrary (
41
+ sharedAvTranscoder = env .SharedLibrary (
30
42
'AvTranscoder' ,
31
43
Glob ('AvTranscoder/*.cpp' )+
32
44
Glob ('AvTranscoder/*/*.cpp' ),
@@ -37,58 +49,55 @@ SharedAvTranscoder = env.SharedLibrary(
37
49
'swscale' ,
38
50
resampleLibraryName ,
39
51
],
40
- SHLIBVERSION = AvTranscoderVersion ,
52
+ SHLIBVERSION = avTranscoderVersion ,
41
53
)
42
54
43
- jAvTranscoder = envJava .SharedLibrary (
44
- 'jAvTranscoder' ,
45
- source = ['AvTranscoder/avTranscoder.i' ],
46
- LIBS = [
47
- sAvTranscoder ,
48
- 'avutil' ,
49
- 'avcodec' ,
50
- 'avformat' ,
51
- 'swscale' ,
52
- resampleLibraryName ,
53
- ],
54
- )
55
-
56
- pyAvTranscoder = envPy .SharedLibrary (
57
- 'pyAvTranscoder' ,
58
- source = 'AvTranscoder/avTranscoder.i' ,
59
- LIBS = [
60
- sAvTranscoder ,
61
- 'avutil' ,
62
- 'avcodec' ,
63
- 'avformat' ,
64
- 'swscale' ,
65
- resampleLibraryName ,
66
- ],
67
- )
68
-
69
- #avTranscoder_class = env.Java(
70
- # target='AvTranscoderClass',
71
- # source=Glob( envJava['JARCHDIR'] )
72
- #)
55
+ javaAvTranscoder = envJava .SharedLibrary (
56
+ 'jAvTranscoder' ,
57
+ source = ['AvTranscoder/avTranscoder.i' ],
58
+ LIBS = [
59
+ staticAvTranscoder ,
60
+ 'avutil' ,
61
+ 'avcodec' ,
62
+ 'avformat' ,
63
+ 'swscale' ,
64
+ resampleLibraryName ,
65
+ ],
66
+ SHLIBVERSION = avTranscoderVersion ,
67
+ )
73
68
74
- #avTranscoder_jar = env.Jar(
75
- # target='jAvTranscoder.jar',
76
- # source=avTranscoder_class,
77
- #)
69
+ pythonAvTranscoder = envPy .SharedLibrary (
70
+ 'pyAvTranscoder' ,
71
+ source = 'AvTranscoder/avTranscoder.i' ,
72
+ LIBS = [
73
+ staticAvTranscoder ,
74
+ 'avutil' ,
75
+ 'avcodec' ,
76
+ 'avformat' ,
77
+ 'swscale' ,
78
+ resampleLibraryName ,
79
+ ],
80
+ SHLIBVERSION = avTranscoderVersion ,
81
+ )
78
82
83
+ javaAvTranscoder_class = env .Java (
84
+ target = 'jAvTranscoderClass' ,
85
+ source = Glob (envJava ['JARCHDIR' ] )
86
+ )
79
87
80
- # env.Depends( avTranscoder_class, jAvTranscoder )
81
- # env.Depends( avTranscoder_jar, avTranscoder_class )
88
+ env .Depends (javaAvTranscoder_class ,javaAvTranscoder )
82
89
83
- Export ( {'sAvTranscoder' :sAvTranscoder } )
84
- Export ( {'AvTranscoder' :'AvTranscoder' } )
85
- # Export( { 'AvTranscoder_jar': avTranscoder_class } )
90
+ Export ( {'sAvTranscoder' :staticAvTranscoder } )
91
+ Export ( {'AvTranscoder' :sharedAvTranscoder } )
92
+ Export ( {'jAvTranscoder' :javaAvTranscoder } )
93
+ Export ( {'pyAvTranscoder' :pythonAvTranscoder } )
86
94
87
- installSharedLib = env . InstallVersionedLib ( os . path . join ( installPrefix , "lib" ), SharedAvTranscoder )
95
+ Export ( { 'jAvTranscoderClass' : javaAvTranscoder_class } )
88
96
89
- env .Alias ("install" ,env .Install (os .path .join (installPrefix ,"lib" ),sAvTranscoder ) )
90
- env .Alias ("install" ,installSharedLib )
91
- env .Alias ("install" ,env .Install (os .path .join (installPrefix ,"lib" ),jAvTranscoder ) )
97
+ env .Alias ("install" ,env .InstallVersionedLib (os .path .join (installPrefix ,"lib" ),sharedAvTranscoder ) )
98
+ env .Alias ("install" ,env .Install (os .path .join (installPrefix ,"lib" ),staticAvTranscoder ) )
99
+ env .Alias ("install" ,env .InstallVersionedLib (os .path .join (installPrefix ,"lib" ),javaAvTranscoder ) )
100
+ env .Alias ("install" ,env .InstallVersionedLib (os .path .join (installPrefix ,"lib" ),pythonAvTranscoder ) )
92
101
93
102
env .Alias ("install" ,env .Install (os .path .join (installPrefix ,"include/AvTranscoder" ),Glob ('AvTranscoder/*.hpp' ) ) )
94
103
env .Alias ("install" ,env .Install (os .path .join (installPrefix ,"include/AvTranscoder/CodedStream" ),Glob ('AvTranscoder/CodedStream/*.hpp' ) ) )
@@ -99,6 +108,15 @@ env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTransc
99
108
env .Alias ("install" ,env .Install (os .path .join (installPrefix ,"include/AvTranscoder/File" ),Glob ('AvTranscoder/File/*.hpp' ) ) )
100
109
env .Alias ("install" ,env .Install (os .path .join (installPrefix ,"include/AvTranscoder/Metadatas" ),Glob ('AvTranscoder/Metadatas/MediaMetadatasStructures.hpp' ) ) )
101
110
env .Alias ("install" ,env .Install (os .path .join (installPrefix ,"include/AvTranscoder/Metadatas" ),Glob ('AvTranscoder/Metadatas/Print.hpp' ) ) )
102
- #env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/Profiles" ), Glob( 'AvTranscoder/Profiles/*.hpp' ) ) )
103
111
env .Alias ("install" ,env .Install (os .path .join (installPrefix ,"include/AvTranscoder/Transcoder" ),Glob ('AvTranscoder/Transcoder/*.hpp' ) ) )
104
112
113
+ if not javaAvTranscoder_class :
114
+ print "Java binding: can't generate JAR file while first build, because java classes are not already generated. Relaunch the build to generate it."
115
+ else :
116
+ javaAvTranscoder_jar = env .Jar (
117
+ # Add version to the JAR name
118
+ target = 'jAvTranscoder.' + avTranscoderVersion ,
119
+ source = javaAvTranscoder_class
120
+ )
121
+ env .Depends (javaAvTranscoder_jar ,javaAvTranscoder_class )
122
+ Export ( {'jAvTranscoderJar' :javaAvTranscoder_jar } )