From b7eefa155f3184306460ac71ab813f42da6414d9 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 18 Aug 2014 11:58:30 +0200 Subject: [PATCH 1/5] Sconscript: refactoring Rename variables, to distinguish the lib's name from the name of the lib's variable. --- src/SConscript | 71 +++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/src/SConscript b/src/SConscript index 12b626a9..7fc6b4b4 100644 --- a/src/SConscript +++ b/src/SConscript @@ -7,13 +7,13 @@ Import( "envPy" ) Import( "installPrefix" ) Import( "resampleLibraryName" ) -AvTranscoderVersion = "0.0.1" +avTranscoderVersion = "0.0.1" env.Append( - SHLIBVERSION = AvTranscoderVersion + SHLIBVERSION = avTranscoderVersion ) -sAvTranscoder = env.StaticLibrary( +staticAvTranscoder = env.StaticLibrary( 'sAvTranscoder', Glob( 'AvTranscoder/*.cpp' ) + Glob( 'AvTranscoder/*/*.cpp' ), @@ -26,7 +26,7 @@ sAvTranscoder = env.StaticLibrary( ] ) -SharedAvTranscoder = env.SharedLibrary( +sharedAvTranscoder = env.SharedLibrary( 'AvTranscoder', Glob( 'AvTranscoder/*.cpp' ) + Glob( 'AvTranscoder/*/*.cpp' ), @@ -37,34 +37,34 @@ SharedAvTranscoder = env.SharedLibrary( 'swscale', resampleLibraryName, ], - SHLIBVERSION = AvTranscoderVersion, + SHLIBVERSION = avTranscoderVersion, ) -jAvTranscoder = envJava.SharedLibrary( - 'jAvTranscoder', - source=['AvTranscoder/avTranscoder.i'], - LIBS=[ - sAvTranscoder, - 'avutil', - 'avcodec', - 'avformat', - 'swscale', - resampleLibraryName, - ], - ) - -pyAvTranscoder = envPy.SharedLibrary( - 'pyAvTranscoder', - source='AvTranscoder/avTranscoder.i', - LIBS=[ - sAvTranscoder, - 'avutil', - 'avcodec', - 'avformat', - 'swscale', - resampleLibraryName, - ], - ) +javaAvTranscoder = envJava.SharedLibrary( + 'jAvTranscoder', + source=['AvTranscoder/avTranscoder.i'], + LIBS=[ + staticAvTranscoder, + 'avutil', + 'avcodec', + 'avformat', + 'swscale', + resampleLibraryName, + ], +) + +pythonAvTranscoder = envPy.SharedLibrary( + 'pyAvTranscoder', + source='AvTranscoder/avTranscoder.i', + LIBS=[ + staticAvTranscoder, + 'avutil', + 'avcodec', + 'avformat', + 'swscale', + resampleLibraryName, + ], +) #avTranscoder_class = env.Java( # target='AvTranscoderClass', @@ -79,16 +79,15 @@ pyAvTranscoder = envPy.SharedLibrary( # env.Depends( avTranscoder_class, jAvTranscoder ) # env.Depends( avTranscoder_jar, avTranscoder_class ) +Export( { 'sAvTranscoder' : staticAvTranscoder } ) +Export( { 'AvTranscoder' : sharedAvTranscoder } ) -Export( { 'sAvTranscoder' : sAvTranscoder } ) -Export( { 'AvTranscoder' : 'AvTranscoder' } ) # Export( { 'AvTranscoder_jar': avTranscoder_class } ) -installSharedLib = env.InstallVersionedLib( os.path.join( installPrefix, "lib" ), SharedAvTranscoder) +env.Alias( "install", env.InstallVersionedLib( os.path.join( installPrefix, "lib" ), sharedAvTranscoder) ) +env.Alias( "install", env.Install( os.path.join( installPrefix, "lib" ), staticAvTranscoder ) ) +env.Alias( "install", env.InstallVersionedLib( os.path.join( installPrefix, "lib" ), javaAvTranscoder ) ) -env.Alias( "install", env.Install(os.path.join( installPrefix, "lib" ), sAvTranscoder ) ) -env.Alias( "install", installSharedLib ) -env.Alias( "install", env.Install(os.path.join( installPrefix, "lib" ), jAvTranscoder ) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder" ), Glob( 'AvTranscoder/*.hpp' ) ) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/CodedStream" ), Glob( 'AvTranscoder/CodedStream/*.hpp' ) ) ) From 22499b4bbe1908fbd3e0e22ccd9cfc9b4cc99bfa Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 18 Aug 2014 11:59:15 +0200 Subject: [PATCH 2/5] Sconscript: versioning java and python libs --- src/SConscript | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/SConscript b/src/SConscript index 7fc6b4b4..99cd058a 100644 --- a/src/SConscript +++ b/src/SConscript @@ -51,6 +51,7 @@ javaAvTranscoder = envJava.SharedLibrary( 'swscale', resampleLibraryName, ], + SHLIBVERSION = avTranscoderVersion, ) pythonAvTranscoder = envPy.SharedLibrary( @@ -64,30 +65,36 @@ pythonAvTranscoder = envPy.SharedLibrary( 'swscale', resampleLibraryName, ], + SHLIBVERSION = avTranscoderVersion, ) -#avTranscoder_class = env.Java( -# target='AvTranscoderClass', -# source=Glob( envJava['JARCHDIR'] ) -#) +javaAvTranscoder_class = env.Java( + target = 'jAvTranscoderClass', + source = Glob( envJava['JARCHDIR'] ) +) -#avTranscoder_jar = env.Jar( -# target='jAvTranscoder.jar', -# source=avTranscoder_class, -#) +javaAvTranscoder_jar = env.Jar( + target = 'jAvTranscoderJar', + source = javaAvTranscoder_class +) +env.Depends( javaAvTranscoder_class, javaAvTranscoder ) +env.Depends( javaAvTranscoder_jar, javaAvTranscoder_class ) -# env.Depends( avTranscoder_class, jAvTranscoder ) -# env.Depends( avTranscoder_jar, avTranscoder_class ) Export( { 'sAvTranscoder' : staticAvTranscoder } ) Export( { 'AvTranscoder' : sharedAvTranscoder } ) +Export( { 'jAvTranscoder' : javaAvTranscoder } ) +Export( { 'pyAvTranscoder' : pythonAvTranscoder } ) -# Export( { 'AvTranscoder_jar': avTranscoder_class } ) +Export( { 'jAvTranscoderClass' : javaAvTranscoder_class } ) +Export( { 'jAvTranscoderJar' : javaAvTranscoder_jar } ) env.Alias( "install", env.InstallVersionedLib( os.path.join( installPrefix, "lib" ), sharedAvTranscoder) ) env.Alias( "install", env.Install( os.path.join( installPrefix, "lib" ), staticAvTranscoder ) ) env.Alias( "install", env.InstallVersionedLib( os.path.join( installPrefix, "lib" ), javaAvTranscoder ) ) +env.Alias( "install", env.InstallVersionedLib( os.path.join( installPrefix, "lib" ), pythonAvTranscoder ) ) +env.Alias( "install", env.Install( os.path.join( installPrefix, "jar" ), javaAvTranscoder_jar) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder" ), Glob( 'AvTranscoder/*.hpp' ) ) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/CodedStream" ), Glob( 'AvTranscoder/CodedStream/*.hpp' ) ) ) @@ -98,6 +105,4 @@ env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTransc env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/File" ), Glob( 'AvTranscoder/File/*.hpp' ) ) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/Metadatas" ), Glob( 'AvTranscoder/Metadatas/MediaMetadatasStructures.hpp' ) ) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/Metadatas" ), Glob( 'AvTranscoder/Metadatas/Print.hpp' ) ) ) -#env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/Profiles" ), Glob( 'AvTranscoder/Profiles/*.hpp' ) ) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/Transcoder" ), Glob( 'AvTranscoder/Transcoder/*.hpp' ) ) ) - From 4addb0a1987ff647103a2c9ce91bff138423a646 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 18 Aug 2014 15:18:44 +0200 Subject: [PATCH 3/5] Sconscript: get version from git * If GitPython module is available on the python environment, get version of AvTranscoder from the last tag on github repository. * Else AvTranscoder's version is 0.0.1. --- src/SConscript | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/SConscript b/src/SConscript index 99cd058a..942875d6 100644 --- a/src/SConscript +++ b/src/SConscript @@ -7,7 +7,19 @@ Import( "envPy" ) Import( "installPrefix" ) Import( "resampleLibraryName" ) -avTranscoderVersion = "0.0.1" +try: + import git + # Get last tag of git repository + repo = git.Repo( "." ) + tags = repo.tags + if tags: + lastTag = tags[-1] + avTranscoderVersion = lastTag.name[1:] + else: + raise +except Exception: + # Set a default version + avTranscoderVersion = "0.0.1" env.Append( SHLIBVERSION = avTranscoderVersion From d9e17b91475c1541a6ee1647c75b2333e45d300f Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 18 Aug 2014 15:21:23 +0200 Subject: [PATCH 4/5] Sconscript: manage java binding if first build * We can't generate JAR file while first build, because java classes are not already generated. Need to relaunch the build to generate it. * Print a warning message for java binding if first build. * Generate JAR file when it's possible. --- src/SConscript | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/SConscript b/src/SConscript index 942875d6..58825c60 100644 --- a/src/SConscript +++ b/src/SConscript @@ -85,13 +85,7 @@ javaAvTranscoder_class = env.Java( source = Glob( envJava['JARCHDIR'] ) ) -javaAvTranscoder_jar = env.Jar( - target = 'jAvTranscoderJar', - source = javaAvTranscoder_class -) - env.Depends( javaAvTranscoder_class, javaAvTranscoder ) -env.Depends( javaAvTranscoder_jar, javaAvTranscoder_class ) Export( { 'sAvTranscoder' : staticAvTranscoder } ) Export( { 'AvTranscoder' : sharedAvTranscoder } ) @@ -99,15 +93,12 @@ Export( { 'jAvTranscoder' : javaAvTranscoder } ) Export( { 'pyAvTranscoder' : pythonAvTranscoder } ) Export( { 'jAvTranscoderClass' : javaAvTranscoder_class } ) -Export( { 'jAvTranscoderJar' : javaAvTranscoder_jar } ) env.Alias( "install", env.InstallVersionedLib( os.path.join( installPrefix, "lib" ), sharedAvTranscoder) ) env.Alias( "install", env.Install( os.path.join( installPrefix, "lib" ), staticAvTranscoder ) ) env.Alias( "install", env.InstallVersionedLib( os.path.join( installPrefix, "lib" ), javaAvTranscoder ) ) env.Alias( "install", env.InstallVersionedLib( os.path.join( installPrefix, "lib" ), pythonAvTranscoder ) ) -env.Alias( "install", env.Install( os.path.join( installPrefix, "jar" ), javaAvTranscoder_jar) ) - env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder" ), Glob( 'AvTranscoder/*.hpp' ) ) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/CodedStream" ), Glob( 'AvTranscoder/CodedStream/*.hpp' ) ) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/CodedStructures" ), Glob( 'AvTranscoder/CodedStructures/*.hpp' ) ) ) @@ -118,3 +109,13 @@ env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTransc env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/Metadatas" ), Glob( 'AvTranscoder/Metadatas/MediaMetadatasStructures.hpp' ) ) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/Metadatas" ), Glob( 'AvTranscoder/Metadatas/Print.hpp' ) ) ) env.Alias( "install", env.Install(os.path.join( installPrefix, "include/AvTranscoder/Transcoder" ), Glob( 'AvTranscoder/Transcoder/*.hpp' ) ) ) + +if not javaAvTranscoder_class: + print "Java binding: can't generate JAR file while first build, because java classes are not already generated. Relaunch the build to generate it." +else: + javaAvTranscoder_jar = env.Jar( + target = 'jAvTranscoderJar', + source = javaAvTranscoder_class + ) + env.Depends( javaAvTranscoder_jar, javaAvTranscoder_class ) + Export( { 'jAvTranscoderJar' : javaAvTranscoder_jar } ) From 64bcaf3ab56cc25d2e46285ad56d2a5c15044376 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 18 Aug 2014 15:22:06 +0200 Subject: [PATCH 5/5] Sconscript: add version to the JAR name --- src/SConscript | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SConscript b/src/SConscript index 58825c60..2a85bf91 100644 --- a/src/SConscript +++ b/src/SConscript @@ -114,7 +114,8 @@ if not javaAvTranscoder_class: print "Java binding: can't generate JAR file while first build, because java classes are not already generated. Relaunch the build to generate it." else: javaAvTranscoder_jar = env.Jar( - target = 'jAvTranscoderJar', + # Add version to the JAR name + target = 'jAvTranscoder.' + avTranscoderVersion, source = javaAvTranscoder_class ) env.Depends( javaAvTranscoder_jar, javaAvTranscoder_class )