diff --git a/CMakeLists.txt b/CMakeLists.txt
index 49c1a384a1e11a3d13f5aa565a52e18c135859ea..6837d36fd37eee063b51ebae1242a0fad72e3086 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,7 +26,14 @@ IF (APPLE)
     SET(CMAKE_CXX_FLAGS_RELEASE "-stdlib=libc++")
 ENDIF (APPLE)
 
+#external includes
 include_directories(${GLFW_INCLUDE_DIRS})
+include_directories(${OPENGL_INCLUDE_DIR})
+include_directories(${GLEW_INCLUDE_DIR})
+
+#use pkg_search_module library dirs
+link_directories(${GLFW_LIBRARY_DIRS})
+
 option(DISABLE_QT4 "Disable Qt4 GUI" OFF)
 if(NOT DISABLE_QT4)
     include(FindQt4)
@@ -47,10 +54,6 @@ include(GetGitRevisionDescription)
 get_git_head_revision(GIT_REF_SPEC GIT_REV)
 git_describe(GIT_DESC --always --long --dirty)
 git_branch_name(GIT_BRANCH)
-
-# external includes
-include_directories(${OPENGL_INCLUDE_DIR})
-include_directories(${GLEW_INCLUDE_DIR})
     
 # internal includes
 include_directories(src)
diff --git a/src/citra/CMakeLists.txt b/src/citra/CMakeLists.txt
index 25f476895fd811a7be218ca23fd050e577c224a6..ee3cb55cf5cfb08d9d2af113612c6bdebb7a60fe 100644
--- a/src/citra/CMakeLists.txt
+++ b/src/citra/CMakeLists.txt
@@ -3,12 +3,12 @@ set(SRCS    citra.cpp
 set(HEADS   citra.h
             resource.h)
 
-# NOTE: This is a workaround for CMake bug 0006976 (missing X11_xf86vmode_LIB variable)
-if (NOT X11_xf86vmode_LIB)
-    set(X11_xv86vmode_LIB Xxf86vm)
-endif()
-
 add_executable(citra ${SRCS} ${HEADS})
-target_link_libraries(citra core common video_core iconv pthread ${COREFOUNDATION_LIBRARY} ${OPENGL_LIBRARIES} ${GLEW_LIBRARY} ${GLFW_LIBRARIES})
+
+if (APPLE)
+    target_link_libraries(citra core common video_core iconv pthread ${COREFOUNDATION_LIBRARY} ${OPENGL_LIBRARIES} ${GLEW_LIBRARY} ${GLFW_LIBRARIES})
+else()
+    target_link_libraries(citra core common video_core pthread ${OPENGL_LIBRARIES} ${GLEW_LIBRARY} ${GLFW_LIBRARIES})
+endif()
 
 #install(TARGETS citra RUNTIME DESTINATION ${bindir})
diff --git a/src/citra_qt/CMakeLists.txt b/src/citra_qt/CMakeLists.txt
index abca202ea2a6a7b7d6dabd97fe96c054b8d676f0..b06be56fee66518e5c88c7506f3e082e68b6d4fe 100644
--- a/src/citra_qt/CMakeLists.txt
+++ b/src/citra_qt/CMakeLists.txt
@@ -51,9 +51,9 @@ include_directories(./)
 
 add_executable(citra-qt ${SRCS} ${HEADS} ${MOC_SRCS} ${UI_HDRS})
 if (APPLE)
-	target_link_libraries(citra-qt core common video_core qhexedit iconv ${COREFOUNDATION_LIBRARY} ${QT_LIBRARIES} ${GLEW_LIBRARY} ${OPENGL_LIBRARIES})
+    target_link_libraries(citra-qt core common video_core qhexedit iconv ${COREFOUNDATION_LIBRARY} ${QT_LIBRARIES} ${GLEW_LIBRARY} ${OPENGL_LIBRARIES})
 else()
-
+    target_link_libraries(citra-qt core common video_core qhexedit ${QT_LIBRARIES} ${GLEW_LIBRARY} ${OPENGL_LIBRARIES})
 endif()
 
 #install(TARGETS citra-qt RUNTIME DESTINATION ${bindir})
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 314f6e64c959c8ceaf0623a87924c410e5405fcd..c8d95ba5dca6b79487400c2b2975a9801569b447 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -29,4 +29,41 @@ set(SRCS    core.cpp
             hw/lcd.cpp
             hw/ndma.cpp)
 
-add_library(core STATIC ${SRCS})
+set(HEADS   core.h
+            core_timing.h
+            loader.h
+            mem_map.h
+            system.h
+            arm/disassembler/arm_disasm.h
+            arm/interpreter/arm_interpreter.h
+            arm/interpreter/arm_regformat.h
+            arm/interpreter/armcpu.h
+            arm/interpreter/armdefs.h
+            arm/interpreter/armemu.h
+            arm/interpreter/armmmu.h
+            arm/interpreter/armos.h
+            arm/interpreter/skyeye_defs.h
+            arm/mmu/arm1176jzf_s_mmu.h
+            arm/mmu/cache.h
+            arm/mmu/rb.h
+            arm/mmu/tlb.h
+            arm/mmu/wb.h
+            elf/elf_reader.h
+            elf/elf_types.h
+			file_sys/directory_file_system.h
+            file_sys/file_sys.h
+            file_sys/meta_file_system.h
+			hle/hle.h
+            hle/mrc.h
+            hle/syscall.h
+            hle/function_wrappers.h
+            hle/service/apt.h
+            hle/service/gsp.h
+            hle/service/hid.h
+            hle/service/service.h
+            hle/service/srv.h
+            hw/hw.h
+            hw/lcd.h
+            hw/ndma.h)
+
+add_library(core STATIC ${SRCS} ${HEADS})