 CMakeLists.txt                              | 8 ++++++++
 scribus/colormgmt/CMakeLists.txt            | 2 ++
 scribus/desaxe/CMakeLists.txt               | 1 +
 scribus/fonts/CMakeLists.txt                | 1 +
 scribus/styles/CMakeLists.txt               | 2 ++
 scribus/text/CMakeLists.txt                 | 1 +
 scribus/third_party/lib2geom/CMakeLists.txt | 8 +-------
 scribus/third_party/zip/CMakeLists.txt      | 2 ++
 8 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 29d66f3..62d145f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -131,6 +131,14 @@ IF (_machine_sparc64)
 	SET(ARCH64BIT 1)
 ENDIF (_machine_sparc64)
 
+# We need to pass -fPIC to lib2geom on amd64, mips, mipsel, and hppa. See:
+# http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=3 and
+# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559133
+
+IF (ARCH_X86_64 EQUAL 1 OR ARCH_HPPA EQUAL 1 OR ARCH_MIPS EQUAL 1 OR ARCH_MIPS_64 EQUAL 1 OR ARCH_PPC_64 EQUAL 1)
+	SET(CMAKE_CXX_FLAGS_FPIC "-fPIC")
+ENDIF (ARCH_X86_64 EQUAL 1 OR ARCH_HPPA EQUAL 1 OR ARCH_MIPS EQUAL 1 OR ARCH_MIPS_64 EQUAL 1 OR ARCH_PPC_64 EQUAL 1)
+
 ## Do our Apple OSX version setup
 IF (APPLE AND CMAKE_SIZEOF_VOID_P EQUAL 8 AND (ARCH_X86 EQUAL 1 OR ARCH_X86_64 EQUAL 1))
 	STRING(REGEX REPLACE ".*-darwin([0-9]+).*" "\\1" _apple_ver "${MACHINE}")
diff --git a/scribus/colormgmt/CMakeLists.txt b/scribus/colormgmt/CMakeLists.txt
index 7298a28..87c4f5e 100644
--- a/scribus/colormgmt/CMakeLists.txt
+++ b/scribus/colormgmt/CMakeLists.txt
@@ -3,6 +3,8 @@ ${CMAKE_SOURCE_DIR}
 ${CMAKE_SOURCE_DIR}/scribus
 )
 
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_FPIC}")
+
 INCLUDE_DIRECTORIES( ${LCMS2_INCLUDE_DIR} )
 SET(SCRIBUS_LCMS_IMPL_SOURCES
 	sclcms2colormgmtengineimpl.cpp
diff --git a/scribus/desaxe/CMakeLists.txt b/scribus/desaxe/CMakeLists.txt
index 0098028..85e76b6 100644
--- a/scribus/desaxe/CMakeLists.txt
+++ b/scribus/desaxe/CMakeLists.txt
@@ -4,6 +4,7 @@ ${CMAKE_SOURCE_DIR}/scribus
 ${FREETYPE_INCLUDE_DIRS}
 )
 
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_FPIC}")
 
 SET(SCRIBUS_DESAXE_LIB_SOURCES
 saxXML.cpp
diff --git a/scribus/fonts/CMakeLists.txt b/scribus/fonts/CMakeLists.txt
index 799e102..f04c680 100644
--- a/scribus/fonts/CMakeLists.txt
+++ b/scribus/fonts/CMakeLists.txt
@@ -4,6 +4,7 @@ ${CMAKE_SOURCE_DIR}/scribus
 ${FREETYPE_INCLUDE_DIRS}
 )
 
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_FPIC}")
 
 SET(SCRIBUS_FONTS_LIB_SOURCES
   scface.cpp
diff --git a/scribus/styles/CMakeLists.txt b/scribus/styles/CMakeLists.txt
index 6e0cf0a..2839689 100644
--- a/scribus/styles/CMakeLists.txt
+++ b/scribus/styles/CMakeLists.txt
@@ -4,6 +4,8 @@ INCLUDE_DIRECTORIES(
 	${FREETYPE_INCLUDE_DIRS}
 )
 
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_FPIC}")
+
 SET(SCRIBUS_STYLES_MOC_CLASSES
 )
 
diff --git a/scribus/text/CMakeLists.txt b/scribus/text/CMakeLists.txt
index 1cd112f..4f658e3 100644
--- a/scribus/text/CMakeLists.txt
+++ b/scribus/text/CMakeLists.txt
@@ -4,6 +4,7 @@ INCLUDE_DIRECTORIES(
 	${FREETYPE_INCLUDE_DIRS}
 )
 
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_FPIC}")
 
 SET(SCRIBUS_TEXT_MOC_CLASSES
 	storytext.h
diff --git a/scribus/third_party/lib2geom/CMakeLists.txt b/scribus/third_party/lib2geom/CMakeLists.txt
index 6187d96..3106f6e 100755
--- a/scribus/third_party/lib2geom/CMakeLists.txt
+++ b/scribus/third_party/lib2geom/CMakeLists.txt
@@ -5,13 +5,7 @@ ${CMAKE_SOURCE_DIR}/scribus
 
 SET(2GEOM_VERSION 0.1.0)
 
-# We need to pass -fPIC to lib2geom on amd64, mips, mipsel, and hppa. See:
-# http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=3 and
-# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559133
-
-IF (ARCH_X86_64 EQUAL 1 OR ARCH_HPPA EQUAL 1 OR ARCH_MIPS EQUAL 1 OR ARCH_MIPS_64 EQUAL 1 OR ARCH_PPC_64 EQUAL 1)
-  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
-ENDIF (ARCH_X86_64 EQUAL 1 OR ARCH_HPPA EQUAL 1 OR ARCH_MIPS EQUAL 1 OR ARCH_MIPS_64 EQUAL 1 OR ARCH_PPC_64 EQUAL 1)
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_FPIC}")
 
 OPTION(2GEOM_BUILD_SHARED
   "Build lib2geom and libtoy as shared libraries."
diff --git a/scribus/third_party/zip/CMakeLists.txt b/scribus/third_party/zip/CMakeLists.txt
index edf9683..f7676ab 100644
--- a/scribus/third_party/zip/CMakeLists.txt
+++ b/scribus/third_party/zip/CMakeLists.txt
@@ -4,6 +4,8 @@ ${CMAKE_SOURCE_DIR}/scribus
 ${ZLIB_INCLUDE_DIR}
 )
 
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_FPIC}")
+
 SET(SCRIBUS_ZIP_LIB_SOURCES
         unzip.cpp
         zip.cpp 
