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 c:\Python27\python.exe setup.py py2exe
2. Copy the GUI folder from the root directory into dist\. 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 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 #misc_funcs - miscelleneous functions in a separate file so as not to clutter things up too much
import misc_funcs 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 #specify the current version and what version files it can still open
LIGHTNINGBEAM_VERSION = "1.0-alpha1" LIGHTNINGBEAM_VERSION = "1.0-alpha1"
LIGHTNINGBEAM_COMPAT = ["1.0-alpha1"] LIGHTNINGBEAM_COMPAT = ["1.0-alpha1"]
@ -326,7 +332,7 @@ elif svlgui.SYSTEM=="android":
MainWindow.stage.add(root, 0,0) MainWindow.stage.add(root, 0,0)
svlgui.FOCUS = MainWindow.stage svlgui.FOCUS = MainWindow.stage
layers = svlgui.Group(skipl=True) 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) layers.add(b)
MainWindow.layerbox.add(layers,0,0) MainWindow.layerbox.add(layers,0,0)
@ -415,7 +421,7 @@ def add_keyframe(widget=None):
MainWindow.timelinebox.draw() MainWindow.timelinebox.draw()
def add_layer(widget=None): def add_layer(widget=None):
root.descendItem().add_layer(root.descendItem()._al) 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 print root.descendItem().layers.index(root.descendItem().activelayer)*32
#MainWindow.layerbox.draw() #MainWindow.layerbox.draw()
def delete_layer(widget=None): 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.StdButtons import DefaultButton, CancelButton
from GUI.Files import FileType from GUI.Files import FileType
from GUI.Geometry import offset_rect, rect_sized 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() #app = GUI.application()
SYSTEM="osx" SYSTEM="osx"
TEMPDIR = "/tmp" TEMPDIR = "/tmp"
@ -2140,7 +2146,7 @@ class OverlayWindow:
# Clear background to transparent black # Clear background to transparent black
cr.set_source_rgba(0.0,0.0,0.0,2.0-(time.time()-startime)) cr.set_source_rgba(0.0,0.0,0.0,2.0-(time.time()-startime))
cr.paint() cr.paint()
image = "media/logo-transparent.png" image = media_path+"media/logo-transparent.png"
surface = cairo.ImageSurface.create_from_png(image) surface = cairo.ImageSurface.create_from_png(image)
pat = cairo.SurfacePattern(surface) pat = cairo.SurfacePattern(surface)
cr.set_source(pat) cr.set_source(pat)
@ -2233,7 +2239,7 @@ class ColorSelectionWindow:
pass pass
group._onMouseMove = dummy group._onMouseMove = dummy
canvas.add(group,0,0) 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.add(im)
group.window = win group.window = win
group.canvas = canvas group.canvas = canvas
@ -2379,10 +2385,10 @@ class FramesCanvas(Canvas):
if SYSTEM == 'osx': if SYSTEM == 'osx':
self.canvas.draw = self._draw self.canvas.draw = self._draw
self.canvas.mouse_down = self.mouse_down self.canvas.mouse_down = self.mouse_down
self.ackfr = GUI.Image(file = "media/keyframe_active.png") self.ackfr = GUI.Image(file = media_path+"media/keyframe_active.png")
self.inackfr = GUI.Image(file = "media/keyframe_inactive.png") self.inackfr = GUI.Image(file = media_path+"media/keyframe_inactive.png")
self.acfr = GUI.Image(file = "media/frame_active_tween.png") self.acfr = GUI.Image(file = media_path+"media/frame_active_tween.png")
self.inacfr = GUI.Image(file = "media/frame_inactive_tween.png") self.inacfr = GUI.Image(file = media_path+"media/frame_inactive_tween.png")
def _draw(self,cr,update_rect): def _draw(self,cr,update_rect):
for k in xrange(len(self.root.descendItem().layers)): for k in xrange(len(self.root.descendItem().layers)):
FRAMES = self.root.descendItem().layers[k].frames FRAMES = self.root.descendItem().layers[k].frames