forked from mirrors/gstreamer-rs
Add gir submodule and automatic build script
This commit is contained in:
parent
a296d16b5e
commit
8e49fa9f49
3 changed files with 64 additions and 0 deletions
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "gir"]
|
||||
path = gir
|
||||
url = https://github.com/gtk-rs/gir
|
60
generator.py
Executable file
60
generator.py
Executable file
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
from os import listdir
|
||||
from os.path import isfile, join
|
||||
from subprocess import call
|
||||
import sys
|
||||
|
||||
need_rebuild = False
|
||||
|
||||
def update_workspace():
|
||||
with open('Cargo.toml', 'r') as f:
|
||||
old_lines = f.readlines()
|
||||
lines = old_lines[:]
|
||||
with open('Cargo.toml', 'w') as f:
|
||||
lines.insert(len(lines) - 1, '"gir",')
|
||||
f.write(''.join(lines))
|
||||
success = True
|
||||
try:
|
||||
call(['bash', '-c', 'cd gir && cargo build --release'])
|
||||
except:
|
||||
success = False
|
||||
with open('Cargo.toml', 'w') as f:
|
||||
f.write(''.join(old_lines))
|
||||
return success
|
||||
|
||||
|
||||
if not isfile('./gir/src'):
|
||||
need_rebuild = True
|
||||
print('=> Initializing gir submodule...')
|
||||
call(['bash', '-c', 'git submodule update --init'])
|
||||
print('<= Done!')
|
||||
|
||||
question = 'Do you want to update gir submodule? [y/N]'
|
||||
if sys.version_info[0] < 3:
|
||||
line = raw_input(question)
|
||||
else:
|
||||
line = input(question)
|
||||
line = line.strip()
|
||||
if line.lower() == 'n' or len(line) == 0:
|
||||
need_rebuild = True
|
||||
print('=> Updating gir submodule...')
|
||||
call(['bash', '-c', 'cd gir && git reset --hard HEAD && git pull -f origin master'])
|
||||
print('<= Done!')
|
||||
|
||||
if need_rebuild is True or not os.path.isfile('./gir/target/release/gir'):
|
||||
print('=> Building gir...')
|
||||
if update_workspace() is True:
|
||||
print('<= Done!')
|
||||
else:
|
||||
print('<= Failed...')
|
||||
sys.exit(1)
|
||||
|
||||
print('=> Regenerating crates...')
|
||||
for entry in [f for f in listdir('.') if isfile(join('.', f))]:
|
||||
if entry.startswith('Gir_Gst') and entry.endswith('.toml'):
|
||||
print('==> Regenerating "{}"...'.format(entry))
|
||||
call(['./target/release/gir', '-c', entry])
|
||||
print('<== Done!')
|
||||
print('<= Done!')
|
||||
print("Don't forget to check if everything has been correctly generated!")
|
1
gir
Submodule
1
gir
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 01137358493a9e19382045c84a141273f7e29b46
|
Loading…
Reference in a new issue