Now builds on Linux

This commit is contained in:
Skyler Lehmkuhl 2012-01-20 14:28:24 -05:00
parent aefedc5e24
commit 490398feb9
11 changed files with 96 additions and 9 deletions

View File

@ -5,4 +5,20 @@ Building on Windows:
c:\Python27\python.exe setup.py py2exe
2. Copy the GUI folder from the root directory into dist\.
3. The executable is in dist\lightningbeam.exe. You probably do need most if the DLL's, I haven't
gone through them yet.
gone through them yet.
Building on Ubuntu/Debian:
1. In a terminal, type:
./mkdebian
cd debian
dpkg --build lightningbeam ./
2. Now there is a package, which can be installed however.
3. To create a RPM package:
sudo apt-get install alien
alien -r lightningbeam.deb
4. To create a Slackware TGZ package:
alien -t lightningbeam.deb
Building on Mac OSX:
1. In a terminal, type:
/usr/bin/python setup.py py2app
2. This will create an .app package.

9
control Normal file
View File

@ -0,0 +1,9 @@
Package: lightningbeam
Version: 1.0.0-alpha2
Section: graphics
Priority: optional
Architecture: any
Installed-size: 27000
Depends: bash, python
Maintainer: skycooler@gmail.com
Description: Lightningbeam is an open-source animated content creation tool.

3
lightningbeam Executable file
View File

@ -0,0 +1,3 @@
#! /bin/bash
/usr/bin/env python /usr/share/lightningbeam/lightningbeam.py

8
lightningbeam.desktop Normal file
View File

@ -0,0 +1,8 @@
[Desktop Entry]
Type=Application
Version=1.0.0-alpha2
Name=Lightningbeam
Exec=/usr/bin/lightningbeam
Icon=lightningbeam
Terminal=false
Categories=Graphics

View File

@ -26,6 +26,12 @@ import webbrowser
#misc_funcs - miscelleneous functions in a separate file so as not to clutter things up too much
import misc_funcs
#If we can import this, we are in the install directory. Mangle media paths accordingly.
try:
from distpath import media_path
except:
media_path = ""
#specify the current version and what version files it can still open
LIGHTNINGBEAM_VERSION = "1.0-alpha1"
LIGHTNINGBEAM_COMPAT = ["1.0-alpha1"]
@ -326,7 +332,7 @@ elif svlgui.SYSTEM=="android":
MainWindow.stage.add(root, 0,0)
svlgui.FOCUS = MainWindow.stage
layers = svlgui.Group(skipl=True)
b = svlgui.Image("media/object_active.png",0,0,True,MainWindow.layerbox,16,1,True)
b = svlgui.Image(media_path+"media/object_active.png",0,0,True,MainWindow.layerbox,16,1,True)
layers.add(b)
MainWindow.layerbox.add(layers,0,0)
@ -415,7 +421,7 @@ def add_keyframe(widget=None):
MainWindow.timelinebox.draw()
def add_layer(widget=None):
root.descendItem().add_layer(root.descendItem()._al)
layers.add(svlgui.Image("media/object_active.png",0,root.descendItem().layers.index(root.descendItem().activelayer)*32,True,MainWindow.layerbox,16,1,True))
layers.add(svlgui.Image(media_path+"media/object_active.png",0,root.descendItem().layers.index(root.descendItem().activelayer)*32,True,MainWindow.layerbox,16,1,True))
print root.descendItem().layers.index(root.descendItem().activelayer)*32
#MainWindow.layerbox.draw()
def delete_layer(widget=None):

30
mkdebian Executable file
View File

@ -0,0 +1,30 @@
#! /bin/bash
mkdir -p debian/lightningbeam/usr/bin
mkdir -p debian/lightningbeam/usr/share/lightningbeam
mkdir -p debian/lightningbeam/usr/share/applications
mkdir -p debian/lightningbeam/usr/share/icons
mkdir -p debian/lightningbeam/DEBIAN
cp lightningbeam debian/lightningbeam/usr/bin/
cp lightningbeam.py debian/lightningbeam/usr/share/lightningbeam/
cp svlgui.py debian/lightningbeam/usr/share/lightningbeam/
cp misc_funcs.py debian/lightningbeam/usr/share/lightningbeam/
cp lightningbeam_windows.py debian/lightningbeam/usr/share/lightningbeam/
cp colors.py debian/lightningbeam/usr/share/lightningbeam/
cp gpl.txt debian/lightningbeam/usr/share/lightningbeam/
cp -r swfc debian/lightningbeam/usr/share/lightningbeam/
cp -r GUI debian/lightningbeam/usr/share/lightningbeam/
cp -r media debian/lightningbeam/usr/share/lightningbeam/
cp lightningbeam.desktop debian/lightningbeam/usr/share/applications/
cp media/icon_128.png debian/lightningbeam/usr/share/icons/lightningbeam.png
cp control debian/lightningbeam/DEBIAN/
cp postrm debian/lightningbeam/DEBIAN/
cp preinst debian/lightningbeam/DEBIAN/
cp postinst debian/lightningbeam/DEBIAN/
cp prerm debian/lightningbeam/DEBIAN/
echo 'media_path = "/usr/share/lightningbeam/"' > debian/lightningbeam/usr/share/lightningbeam/distpath.py

3
postinst Executable file
View File

@ -0,0 +1,3 @@
#! /bin/bash

2
postrm Executable file
View File

@ -0,0 +1,2 @@
#!/bin/bash

2
preinst Executable file
View File

@ -0,0 +1,2 @@
#! /bin/bash

2
prerm Executable file
View File

@ -0,0 +1,2 @@
#!/bin/bash

View File

@ -167,6 +167,12 @@ if sys.platform=="linux2":
from GUI.StdButtons import DefaultButton, CancelButton
from GUI.Files import FileType
from GUI.Geometry import offset_rect, rect_sized
#If we can import this, we are in the install directory. Mangle media paths accordingly.
try:
from distpath import media_path
except:
media_path = ""
#app = GUI.application()
SYSTEM="osx"
TEMPDIR = "/tmp"
@ -2140,7 +2146,7 @@ class OverlayWindow:
# Clear background to transparent black
cr.set_source_rgba(0.0,0.0,0.0,2.0-(time.time()-startime))
cr.paint()
image = "media/logo-transparent.png"
image = media_path+"media/logo-transparent.png"
surface = cairo.ImageSurface.create_from_png(image)
pat = cairo.SurfacePattern(surface)
cr.set_source(pat)
@ -2233,7 +2239,7 @@ class ColorSelectionWindow:
pass
group._onMouseMove = dummy
canvas.add(group,0,0)
im = Image("media/colors.png",skipl=True)
im = Image(media_path+"media/colors.png",skipl=True)
group.add(im)
group.window = win
group.canvas = canvas
@ -2379,10 +2385,10 @@ class FramesCanvas(Canvas):
if SYSTEM == 'osx':
self.canvas.draw = self._draw
self.canvas.mouse_down = self.mouse_down
self.ackfr = GUI.Image(file = "media/keyframe_active.png")
self.inackfr = GUI.Image(file = "media/keyframe_inactive.png")
self.acfr = GUI.Image(file = "media/frame_active_tween.png")
self.inacfr = GUI.Image(file = "media/frame_inactive_tween.png")
self.ackfr = GUI.Image(file = media_path+"media/keyframe_active.png")
self.inackfr = GUI.Image(file = media_path+"media/keyframe_inactive.png")
self.acfr = GUI.Image(file = media_path+"media/frame_active_tween.png")
self.inacfr = GUI.Image(file = media_path+"media/frame_inactive_tween.png")
def _draw(self,cr,update_rect):
for k in xrange(len(self.root.descendItem().layers)):
FRAMES = self.root.descendItem().layers[k].frames