From a7f3ed003d03c79f83c1c354329e5ce47f6940e7 Mon Sep 17 00:00:00 2001
From: archshift <admin@archshift.com>
Date: Wed, 30 Apr 2014 16:56:25 -0700
Subject: [PATCH] A bit of Cmake love

---
 CMakeLists.txt              | 11 +++++++----
 src/citra/CMakeLists.txt    | 12 ++++++------
 src/citra_qt/CMakeLists.txt |  4 ++--
 src/core/CMakeLists.txt     | 39 ++++++++++++++++++++++++++++++++++++-
 4 files changed, 53 insertions(+), 13 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 49c1a384a..6837d36fd 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 25f476895..ee3cb55cf 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)
+add_executable(citra ${SRCS} ${HEADS})
+
+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()
 
-add_executable(citra ${SRCS} ${HEADS})
-target_link_libraries(citra core common video_core iconv pthread ${COREFOUNDATION_LIBRARY} ${OPENGL_LIBRARIES} ${GLEW_LIBRARY} ${GLFW_LIBRARIES})
-
 #install(TARGETS citra RUNTIME DESTINATION ${bindir})
diff --git a/src/citra_qt/CMakeLists.txt b/src/citra_qt/CMakeLists.txt
index abca202ea..b06be56fe 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 314f6e64c..c8d95ba5d 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})