split cmake sources out in groups.
fix indenting to be consistent.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3fce23a..b1c809b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -43,7 +43,7 @@
 endif ()
 
 ## sources
-set(SOURCES
+set(SOURCES_CORE
     cs.c
     MCInst.c
     MCInstrDesc.c
@@ -52,13 +52,25 @@
     utils.c
     )
 
+set(HEADERS_CORE
+    include/capstone.h
+    utils.h
+    MCRegisterInfo.h
+    MCInst.h
+    MCInstrDesc.h
+    SStream.h
+    cs_priv.h
+    myinttypes.h
+    include/platform.h
+    )
+
+
 set(TEST_SOURCES test.c test_detail.c test_skipdata.c test_iter.c)
 
 ## architecture support
 if (CAPSTONE_ARM_SUPPORT)
     add_definitions(-DCAPSTONE_HAS_ARM)
-    set(SOURCES
-        ${SOURCES}
+    set(SOURCES_ARM
         arch/ARM/ARMDisassembler.c
         arch/ARM/ARMInstPrinter.c
         arch/ARM/ARMMapping.c
@@ -69,8 +81,7 @@
 
 if (CAPSTONE_ARM64_SUPPORT)
     add_definitions(-DCAPSTONE_HAS_ARM64)
-    set(SOURCES
-        ${SOURCES}
+    set(SOURCES_ARM64
         arch/AArch64/AArch64BaseInfo.c
         arch/AArch64/AArch64Disassembler.c
         arch/AArch64/AArch64InstPrinter.c
@@ -82,8 +93,7 @@
 
 if (CAPSTONE_MIPS_SUPPORT)
     add_definitions(-DCAPSTONE_HAS_MIPS)
-    set(SOURCES
-        ${SOURCES}
+    set(SOURCES_MIPS
         arch/Mips/MipsDisassembler.c
         arch/Mips/MipsInstPrinter.c
         arch/Mips/MipsMapping.c
@@ -94,8 +104,7 @@
 
 if (CAPSTONE_PPC_SUPPORT)
     add_definitions(-DCAPSTONE_HAS_POWERPC)
-    set(SOURCES
-        ${SOURCES}
+    set(SOURCES_PPC
         arch/PowerPC/PPCDisassembler.c
         arch/PowerPC/PPCInstPrinter.c
         arch/PowerPC/PPCMapping.c
@@ -106,8 +115,7 @@
 
 if (CAPSTONE_X86_SUPPORT)
     add_definitions(-DCAPSTONE_HAS_X86)
-    set(SOURCES
-        ${SOURCES}
+    set(SOURCES_X86
         arch/X86/X86Disassembler.c
         arch/X86/X86DisassemblerDecoder.c
         arch/X86/X86IntelInstPrinter.c
@@ -122,37 +130,34 @@
 
 if (CAPSTONE_SPARC_SUPPORT)
     add_definitions(-DCAPSTONE_HAS_SPARC)
-    set(SOURCES
-        ${SOURCES}
-	arch/Sparc/SparcDisassembler.c
-	arch/Sparc/SparcInstPrinter.c
-	arch/Sparc/SparcMapping.c
-	arch/Sparc/SparcModule.c
+    set(SOURCES_SPARC
+        arch/Sparc/SparcDisassembler.c
+        arch/Sparc/SparcInstPrinter.c
+        arch/Sparc/SparcMapping.c
+        arch/Sparc/SparcModule.c
         )
     set(TEST_SOURCES ${TEST_SOURCES} test_sparc.c)
 endif ()
 
 if (CAPSTONE_SYSZ_SUPPORT)
     add_definitions(-DCAPSTONE_HAS_SYSZ)
-    set(SOURCES
-        ${SOURCES}
-	arch/SystemZ/SystemZDisassembler.c
-	arch/SystemZ/SystemZInstPrinter.c
-	arch/SystemZ/SystemZMapping.c
-	arch/SystemZ/SystemZModule.c
-	arch/SystemZ/SystemZMCTargetDesc.c
+    set(SOURCES_SYSZ
+        arch/SystemZ/SystemZDisassembler.c
+        arch/SystemZ/SystemZInstPrinter.c
+        arch/SystemZ/SystemZMapping.c
+        arch/SystemZ/SystemZModule.c
+        arch/SystemZ/SystemZMCTargetDesc.c
         )
     set(TEST_SOURCES ${TEST_SOURCES} test_systemz.c)
 endif ()
 
 if (CAPSTONE_XCORE_SUPPORT)
     add_definitions(-DCAPSTONE_HAS_XCORE)
-    set(SOURCES
-        ${SOURCES}
-	arch/XCore/XCoreDisassembler.c
-	arch/XCore/XCoreInstPrinter.c
-	arch/XCore/XCoreMapping.c
-	arch/XCore/XCoreModule.c
+    set(SOURCES_XCORE
+        arch/XCore/XCoreDisassembler.c
+        arch/XCore/XCoreInstPrinter.c
+        arch/XCore/XCoreMapping.c
+        arch/XCore/XCoreModule.c
         )
     set(TEST_SOURCES ${TEST_SOURCES} test_xcore.c)
 endif ()
@@ -161,6 +166,18 @@
     add_definitions(-DCAPSTONE_HAS_OSXKERNEL)
 endif ()
 
+set(ALL_SOURCES
+    ${SOURCES_CORE}
+    ${SOURCES_ARM}
+    ${SOURCES_ARM64}
+    ${SOURCES_MIPS}
+    ${SOURCES_PPC}
+    ${SOURCES_X86}
+    ${SOURCES_SPARC}
+    ${SOURCES_SYSZ}
+    ${SOURCES_XCORE}
+    )
+
 include_directories("${PROJECT_SOURCE_DIR}/include")
 
 ## properties
@@ -170,7 +187,7 @@
 
 ## targets
 if (CAPSTONE_BUILD_STATIC)
-    add_library(capstone-static STATIC ${SOURCES})
+    add_library(capstone-static STATIC ${ALL_SOURCES})
     set_property(TARGET capstone-static PROPERTY OUTPUT_NAME capstone)
     set(default-target capstone-static)
 endif ()
@@ -178,17 +195,17 @@
 # Force static runtime libraries
 if (CAPSTONE_BUILD_STATIC_RUNTIME)
     FOREACH(flag
-	CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO
-	CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_DEBUG_INIT
-	CMAKE_CXX_FLAGS_RELEASE  CMAKE_CXX_FLAGS_RELWITHDEBINFO
-	CMAKE_CXX_FLAGS_DEBUG  CMAKE_CXX_FLAGS_DEBUG_INIT)
-	STRING(REPLACE "/MD"  "/MT" "${flag}" "${${flag}}")
-	SET("${flag}" "${${flag}} /EHsc")
+        CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO
+        CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_DEBUG_INIT
+        CMAKE_CXX_FLAGS_RELEASE  CMAKE_CXX_FLAGS_RELWITHDEBINFO
+        CMAKE_CXX_FLAGS_DEBUG  CMAKE_CXX_FLAGS_DEBUG_INIT)
+        STRING(REPLACE "/MD"  "/MT" "${flag}" "${${flag}}")
+        SET("${flag}" "${${flag}} /EHsc")
     ENDFOREACH()
 endif ()
 
 if (CAPSTONE_BUILD_SHARED)
-    add_library(capstone-shared SHARED ${SOURCES})
+    add_library(capstone-shared SHARED ${ALL_SOURCES})
     set_property(TARGET capstone-shared PROPERTY OUTPUT_NAME capstone)
     set_property(TARGET capstone-shared PROPERTY COMPILE_FLAGS -DCAPSTONE_SHARED)
 
@@ -197,8 +214,8 @@
     endif ()
 
     if(NOT DEFINED default-target)      # honor `capstone-static` for tests first.
-	set(default-target capstone-shared)
-	add_definitions(-DCAPSTONE_SHARED)
+        set(default-target capstone-shared)
+        add_definitions(-DCAPSTONE_SHARED)
     endif ()
 endif ()