diff --git a/.gitignore b/.gitignore
index 0269ef86..93c6d588 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,10 +4,6 @@
*.userprefs
*.pidb
*.gmo
-/SparkleShare/bin
-/SparkleShare/obj
-/notify-sharp/bin
-/notify-sharp/obj
po/POTFILES
Makefile.in
Makefile
@@ -31,7 +27,7 @@ missing
po/.intltool-merge-cache
po/Makefile.in.in
po/stamp-it
-SparkleShare/AssemblyInfo.cs
+SparkleLib/AssemblyInfo.cs
build/m4/shave/shave
build/m4/*.m4
build/m4/shave/shave-libtool
diff --git a/FriendFace/Makefile.am b/FriendFace/Makefile.am
new file mode 100644
index 00000000..262bf4ce
--- /dev/null
+++ b/FriendFace/Makefile.am
@@ -0,0 +1,11 @@
+ASSEMBLY = FriendFace
+TARGET = library
+
+LINK = $(REF_FRIENDFACE)
+
+SOURCES = \
+ FriendFace.cs \
+ GravatarIconProvider.cs \
+ IconProvider.cs
+
+include $(top_srcdir)/build/build.mk
diff --git a/Makefile.am b/Makefile.am
index 2f67e799..9394c5eb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,8 @@
SUBDIRS = \
build \
NotifySharp \
+ FriendFace \
+ SparkleLib \
SparkleShare \
SparkleDiff \
data \
diff --git a/SparkleDiff/Makefile.am b/SparkleDiff/Makefile.am
index 9651f73f..8058db39 100644
--- a/SparkleDiff/Makefile.am
+++ b/SparkleDiff/Makefile.am
@@ -3,14 +3,10 @@ TARGET = exe
LINK = $(REF_SPARKLEDIFF)
-SOURCES = \
-$(top_srcdir)/SparkleShare/Defines.cs \
-$(top_srcdir)/FriendFace/FriendFace.cs \
-$(top_srcdir)/FriendFace/IconProvider.cs \
-$(top_srcdir)/FriendFace/GravatarIconProvider.cs \
-SparkleDiff.cs \
-SparkleDiffWindow.cs \
-RevisionView.cs \
-RevisionImage.cs
+SOURCES = \
+ RevisionImage.cs \
+ RevisionView.cs \
+ SparkleDiff.cs \
+ SparkleDiffWindow.cs
include $(top_srcdir)/build/build.mk
diff --git a/SparkleDiff/SparkleDiff.cs b/SparkleDiff/SparkleDiff.cs
index 4d330b24..2c725b12 100644
--- a/SparkleDiff/SparkleDiff.cs
+++ b/SparkleDiff/SparkleDiff.cs
@@ -20,6 +20,7 @@ using System;
using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;
+using SparkleLib;
namespace SparkleShare {
diff --git a/SparkleDiff/SparkleDiff.csproj b/SparkleDiff/SparkleDiff.csproj
new file mode 100644
index 00000000..95c8a972
--- /dev/null
+++ b/SparkleDiff/SparkleDiff.csproj
@@ -0,0 +1,70 @@
+
+
+
+ Debug
+ AnyCPU
+ 8.0.50727
+ 2.0
+ {17BF02CB-852A-4756-BA05-EC454643C428}
+ Exe
+ SparkleDiff
+ SparkleDiff
+
+
+ true
+ full
+ false
+ ..\bin
+ DEBUG
+ prompt
+ 4
+ false
+
+
+ none
+ false
+ ..\bin
+ prompt
+ 4
+ false
+
+
+
+
+
+
+
+
+
+ {3BA434AF-494F-4F5D-9D21-B7BD24FD67AF}
+ FriendFace
+
+
+ {2C914413-B31C-4362-93C7-1AE34F09112A}
+ SparkleLib
+
+
+
+
+
+ gtk-sharp-2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SparkleShare/AssemblyInfo.cs.in b/SparkleLib/AssemblyInfo.cs.in
similarity index 100%
rename from SparkleShare/AssemblyInfo.cs.in
rename to SparkleLib/AssemblyInfo.cs.in
diff --git a/SparkleShare/Defines.cs.in b/SparkleLib/Defines.cs.in
similarity index 97%
rename from SparkleShare/Defines.cs.in
rename to SparkleLib/Defines.cs.in
index b5c4dcfc..29905e12 100644
--- a/SparkleShare/Defines.cs.in
+++ b/SparkleLib/Defines.cs.in
@@ -16,7 +16,7 @@
using System;
-namespace SparkleShare {
+namespace SparkleLib {
public class Defines {
diff --git a/SparkleLib/Makefile.am b/SparkleLib/Makefile.am
new file mode 100644
index 00000000..293fd20a
--- /dev/null
+++ b/SparkleLib/Makefile.am
@@ -0,0 +1,14 @@
+ASSEMBLY = SparkleLib
+TARGET = library
+
+LINK = $(REF_SPARKLELIB)
+
+SOURCES = \
+ Defines.cs \
+ SparkleFetcher.cs \
+ SparkleHelpers.cs \
+ SparklePaths.cs \
+ SparklePlatform.cs \
+ SparkleRepo.cs
+
+include $(top_srcdir)/build/build.mk
diff --git a/SparkleShare/SparkleFetcher.cs b/SparkleLib/SparkleFetcher.cs
similarity index 99%
rename from SparkleShare/SparkleFetcher.cs
rename to SparkleLib/SparkleFetcher.cs
index ce8ef033..86501627 100644
--- a/SparkleShare/SparkleFetcher.cs
+++ b/SparkleLib/SparkleFetcher.cs
@@ -14,12 +14,11 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-using Gtk;
using System;
using System.IO;
using System.Diagnostics;
-namespace SparkleShare {
+namespace SparkleLib {
public class SparkleFetcher {
diff --git a/SparkleShare/SparkleHelpers.cs b/SparkleLib/SparkleHelpers.cs
similarity index 99%
rename from SparkleShare/SparkleHelpers.cs
rename to SparkleLib/SparkleHelpers.cs
index cb8efd84..e0328a17 100644
--- a/SparkleShare/SparkleHelpers.cs
+++ b/SparkleLib/SparkleHelpers.cs
@@ -23,7 +23,7 @@ using System.Security.Cryptography;
using System.Text;
-namespace SparkleShare {
+namespace SparkleLib {
public static class SparkleHelpers
{
diff --git a/SparkleLib/SparkleLib.csproj b/SparkleLib/SparkleLib.csproj
new file mode 100644
index 00000000..06b0e3cb
--- /dev/null
+++ b/SparkleLib/SparkleLib.csproj
@@ -0,0 +1,62 @@
+
+
+
+ Debug
+ AnyCPU
+ 8.0.50727
+ 2.0
+ {2C914413-B31C-4362-93C7-1AE34F09112A}
+ Library
+ SparkleLib
+ SparkleLib
+
+
+ true
+ full
+ false
+ ..\bin
+ DEBUG
+ prompt
+ 4
+ false
+
+
+ none
+ false
+ ..\bin
+ prompt
+ 4
+ false
+
+
+
+
+ gtk-sharp-2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SparkleShare/SparklePaths.cs b/SparkleLib/SparklePaths.cs
similarity index 98%
rename from SparkleShare/SparklePaths.cs
rename to SparkleLib/SparklePaths.cs
index ce712cb6..9d15ccea 100644
--- a/SparkleShare/SparklePaths.cs
+++ b/SparkleLib/SparklePaths.cs
@@ -14,11 +14,11 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-using Mono.Unix;
using System;
using System.IO;
+using Mono.Unix;
-namespace SparkleShare {
+namespace SparkleLib {
public static class SparklePaths
{
diff --git a/SparkleShare/SparklePlatform.cs b/SparkleLib/SparklePlatform.cs
similarity index 100%
rename from SparkleShare/SparklePlatform.cs
rename to SparkleLib/SparklePlatform.cs
diff --git a/SparkleShare/SparkleRepo.cs b/SparkleLib/SparkleRepo.cs
similarity index 99%
rename from SparkleShare/SparkleRepo.cs
rename to SparkleLib/SparkleRepo.cs
index e22c5730..9802b48d 100644
--- a/SparkleShare/SparkleRepo.cs
+++ b/SparkleLib/SparkleRepo.cs
@@ -14,16 +14,14 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-using Gtk;
using Mono.Unix;
-using SparkleShare;
using System;
using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;
using System.Timers;
-namespace SparkleShare {
+namespace SparkleLib {
public class SparkleRepo
{
diff --git a/SparkleShare.sln b/SparkleShare.sln
index 3d33d811..f83e8e15 100644
--- a/SparkleShare.sln
+++ b/SparkleShare.sln
@@ -7,6 +7,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NotifySharp", "NotifySharp\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FriendFace", "FriendFace\FriendFace.csproj", "{3BA434AF-494F-4F5D-9D21-B7BD24FD67AF}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleDiff", "SparkleDiff\SparkleDiff.csproj", "{17BF02CB-852A-4756-BA05-EC454643C428}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SparkleLib", "SparkleLib\SparkleLib.csproj", "{2C914413-B31C-4362-93C7-1AE34F09112A}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -17,6 +21,14 @@ Global
{005CCA8E-DFBF-464A-B6DA-452C62D4589C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{005CCA8E-DFBF-464A-B6DA-452C62D4589C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{005CCA8E-DFBF-464A-B6DA-452C62D4589C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {17BF02CB-852A-4756-BA05-EC454643C428}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {17BF02CB-852A-4756-BA05-EC454643C428}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {17BF02CB-852A-4756-BA05-EC454643C428}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {17BF02CB-852A-4756-BA05-EC454643C428}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C914413-B31C-4362-93C7-1AE34F09112A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C914413-B31C-4362-93C7-1AE34F09112A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C914413-B31C-4362-93C7-1AE34F09112A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C914413-B31C-4362-93C7-1AE34F09112A}.Release|Any CPU.Build.0 = Release|Any CPU
{3BA434AF-494F-4F5D-9D21-B7BD24FD67AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3BA434AF-494F-4F5D-9D21-B7BD24FD67AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3BA434AF-494F-4F5D-9D21-B7BD24FD67AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/SparkleShare/Makefile.am b/SparkleShare/Makefile.am
index 388de477..dd7b661e 100644
--- a/SparkleShare/Makefile.am
+++ b/SparkleShare/Makefile.am
@@ -8,14 +8,8 @@ LINK = $(REF_SPARKLESHARE)
SOURCES = \
- Defines.cs \
SparkleBubble.cs \
- SparkleFetcher.cs \
- SparkleHelpers.cs \
SparkleIntro.cs \
- SparklePaths.cs \
- SparklePlatform.cs \
- SparkleRepo.cs \
SparkleShare.cs \
SparkleSpinner.cs \
SparkleStatusIcon.cs \
diff --git a/SparkleShare/SparkleIntro.cs b/SparkleShare/SparkleIntro.cs
index 58b2a28b..a956c302 100644
--- a/SparkleShare/SparkleIntro.cs
+++ b/SparkleShare/SparkleIntro.cs
@@ -16,7 +16,7 @@
using Gtk;
using Mono.Unix;
-using SparkleShare;
+using SparkleLib;
using System;
using System.Diagnostics;
using System.IO;
diff --git a/SparkleShare/SparkleShare.cs b/SparkleShare/SparkleShare.cs
index 79c181fa..68cd5620 100644
--- a/SparkleShare/SparkleShare.cs
+++ b/SparkleShare/SparkleShare.cs
@@ -18,6 +18,7 @@ using Gtk;
using Mono.Unix;
using System;
using System.Diagnostics;
+using SparkleLib;
namespace SparkleShare {
diff --git a/SparkleShare/SparkleShare.csproj b/SparkleShare/SparkleShare.csproj
index abe5dc3a..bbb2b561 100644
--- a/SparkleShare/SparkleShare.csproj
+++ b/SparkleShare/SparkleShare.csproj
@@ -42,29 +42,26 @@
-
-
-
-
-
-
-
{005CCA8E-DFBF-464A-B6DA-452C62D4589C}
NotifySharp
+
+ {2C914413-B31C-4362-93C7-1AE34F09112A}
+ SparkleLib
+
-
+
diff --git a/SparkleShare/SparkleSpinner.cs b/SparkleShare/SparkleSpinner.cs
index b4ec4389..1622e567 100644
--- a/SparkleShare/SparkleSpinner.cs
+++ b/SparkleShare/SparkleSpinner.cs
@@ -16,6 +16,7 @@
using Gtk;
using System.Timers;
+using SparkleLib;
namespace SparkleShare {
diff --git a/SparkleShare/SparkleStatusIcon.cs b/SparkleShare/SparkleStatusIcon.cs
index f736d88b..773e40c8 100644
--- a/SparkleShare/SparkleStatusIcon.cs
+++ b/SparkleShare/SparkleStatusIcon.cs
@@ -16,7 +16,7 @@
using Gtk;
using Mono.Unix;
-using SparkleShare;
+using SparkleLib;
using System;
using System.Diagnostics;
using System.IO;
diff --git a/SparkleShare/SparkleUI.cs b/SparkleShare/SparkleUI.cs
index d5fb083e..dfae6d80 100644
--- a/SparkleShare/SparkleUI.cs
+++ b/SparkleShare/SparkleUI.cs
@@ -17,7 +17,7 @@
using Gtk;
using Mono.Unix;
using Mono.Unix.Native;
-using SparkleShare;
+using SparkleLib;
using System;
using System.Collections.Generic;
using System.Diagnostics;
diff --git a/SparkleShare/SparkleWindow.cs b/SparkleShare/SparkleWindow.cs
index 05de3d28..f3de3478 100644
--- a/SparkleShare/SparkleWindow.cs
+++ b/SparkleShare/SparkleWindow.cs
@@ -16,7 +16,7 @@
using Gtk;
using Mono.Unix;
-using SparkleShare;
+using SparkleLib;
using System;
using System.Collections.Generic;
using System.Diagnostics;
diff --git a/build/build.environment.mk b/build/build.environment.mk
index b3c75395..8c870828 100644
--- a/build/build.environment.mk
+++ b/build/build.environment.mk
@@ -30,13 +30,17 @@ REF_NOTIFY_SHARP = $(LINK_SYSTEM) $(LINK_DBUS) $(GTKSHARP_LIBS) $(GLIBSHARP_LIBS
LINK_NOTIFY_SHARP = -r:$(DIR_BIN)/NotifySharp.dll
LINK_NOTIFY_SHARP_DEPS = $(REF_NOTIFY_SHARP) $(LINK_NOTIFY_SHARP)
-REF_SPARKLESHARE = $(LINK_SYSTEM) $(LINK_GTK) $(LINK_DBUS) $(LINK_NOTIFY_SHARP_DEPS) $(LINK_MONO_POSIX)
-LINK_SPARKLESHARE = -r:$(DIR_BIN)/SparkleShare.exe
-LINK_SPARKLESHARE_DEPS = $(REF_SPARKLESHARE) $(LINK_SPARKLESHARE)
+REF_FRIENDFACE = $(LINK_SYSTEM) $(LINK_GTK) $(LINK_MONO_POSIX)
+LINK_FRIENDFACE = -r:$(DIR_BIN)/FriendFace.dll
+LINK_FRIENDFACE_DEPS = $(REF_FRIENDFACE) $(LINK_FRIENDFACE)
-REF_SPARKLEDIFF = $(LINK_SYSTEM) $(LINK_GTK) $(LINK_DBUS) $(LINK_MONO_POSIX)
-LINK_SPARKLEDIFF = -r:$(DIR_BIN)/SparkleShare.exe
-LINK_SPARKLEDIFF_DEPS = $(REF_SPARKLEDIFF) $(LINK_SPARKLEDIFF)
+REF_SPARKLELIB = $(LINK_SYSTEM) $(LINK_GTK) $(LINK_MONO_POSIX)
+LINK_SPARKLELIB = -r:$(DIR_BIN)/SparkleLib.dll
+LINK_SPARKLELIB_DEPS = $(REF_SPARKLELIB) $(LINK_SPARKLELIB)
+
+REF_SPARKLESHARE = $(LINK_DBUS) $(LINK_NOTIFY_SHARP_DEPS) $(LINK_SPARKLELIB_DEPS)
+
+REF_SPARKLEDIFF = $(LINK_FRIENDFACE_DEPS) $(LINK_SPARKLELIB_DEPS)
# Cute hack to replace a space with something
colon:= :
diff --git a/build/build.rules.mk b/build/build.rules.mk
index 5b0e8116..cf9cb7c9 100644
--- a/build/build.rules.mk
+++ b/build/build.rules.mk
@@ -9,7 +9,7 @@ ASSEMBLY_INFO_SOURCE_REAL = \
then \
echo "$(addprefix $(srcdir)/, $(ASSEMBLY_INFO_SOURCE))"; \
else \
- echo "$(top_srcdir)/SparkleShare/AssemblyInfo.cs"; \
+ echo "$(top_srcdir)/SparkleLib/AssemblyInfo.cs"; \
fi)
SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
diff --git a/configure.ac b/configure.ac
index cf934f3c..5601fa7f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -88,11 +88,13 @@ build/m4/shave/shave
build/m4/shave/shave-libtool
data/Makefile
data/icons/Makefile
+FriendFace/Makefile
NotifySharp/Makefile
SparkleDiff/Makefile
+SparkleLib/AssemblyInfo.cs
+SparkleLib/Defines.cs
+SparkleLib/Makefile
SparkleShare/sparkleshare
-SparkleShare/Defines.cs
-SparkleShare/AssemblyInfo.cs
SparkleShare/Makefile
SparkleShare/Nautilus/Makefile
SparkleShare/Nautilus/sparkleshare-nautilus-extension.py
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 16d89b77..599fc3ca 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -4,14 +4,14 @@
[encoding: UTF-8]
SparkleDiff/SparkleDiff.cs
SparkleDiff/SparkleDiffWindow.cs
+SparkleLib/SparkleFetcher.cs
+SparkleLib/SparkleHelpers.cs
+SparkleLib/SparklePaths.cs
+SparkleLib/SparklePlatform.cs
+SparkleLib/SparkleRepo.cs
SparkleShare/Nautilus/sparkleshare-nautilus-extension.py.in
SparkleShare/SparkleBubble.cs
-SparkleShare/SparkleFetcher.cs
-SparkleShare/SparkleHelpers.cs
SparkleShare/SparkleIntro.cs
-SparkleShare/SparklePaths.cs
-SparkleShare/SparklePlatform.cs
-SparkleShare/SparkleRepo.cs
SparkleShare/SparkleShare.cs
SparkleShare/SparkleSpinner.cs
SparkleShare/SparkleStatusIcon.cs