From bd586579ffbddd358d239b21cd0c45d1e5ce511d Mon Sep 17 00:00:00 2001
From: Drake Arconis <drake@alchemyviewer.org>
Date: Mon, 29 Aug 2016 18:02:12 -0400
Subject: [PATCH] Backed out changeset: 7cdcacb98a90

---
 indra/cmake/LLCoreHttp.cmake                  | 10 +++
 indra/cmake/LLImage.cmake                     |  4 ++
 indra/cmake/LLImageJ2COJ.cmake                |  2 +
 indra/cmake/LLMessage.cmake                   |  6 ++
 indra/cmake/LLPrimitive.cmake                 |  2 +-
 indra/cmake/LLRender.cmake                    |  1 +
 indra/cmake/LLWindow.cmake                    |  1 +
 indra/cmake/LLXML.cmake                       |  7 ++
 indra/llappearance/CMakeLists.txt             | 16 +++++
 indra/llaudio/CMakeLists.txt                  | 47 ++++++--------
 indra/llcharacter/CMakeLists.txt              | 10 +++
 indra/llcommon/CMakeLists.txt                 |  1 -
 indra/llcorehttp/CMakeLists.txt               | 24 +++----
 indra/llcrashlogger/CMakeLists.txt            | 15 +++--
 indra/llimage/CMakeLists.txt                  | 17 ++---
 indra/llimagej2coj/CMakeLists.txt             | 15 ++---
 indra/llinventory/CMakeLists.txt              |  8 ++-
 indra/llmessage/CMakeLists.txt                | 20 +++---
 indra/llplugin/CMakeLists.txt                 | 20 ++++--
 indra/llplugin/slplugin/CMakeLists.txt        |  7 +-
 indra/llprimitive/CMakeLists.txt              | 41 ++++++------
 indra/llrender/CMakeLists.txt                 | 26 ++++++--
 indra/llrender/llfontregistry.cpp             |  2 +-
 indra/llui/CMakeLists.txt                     | 23 +++++--
 indra/llwindow/CMakeLists.txt                 | 12 ++++
 indra/llxml/CMakeLists.txt                    | 20 +++---
 indra/media_plugins/base/CMakeLists.txt       |  9 ++-
 indra/media_plugins/cef/CMakeLists.txt        | 33 +++++-----
 indra/newview/CMakeLists.txt                  | 65 ++++++++++++-------
 indra/viewer_components/login/CMakeLists.txt  |  8 +++
 .../viewer_components/updater/CMakeLists.txt  | 18 ++---
 indra/win_crash_logger/CMakeLists.txt         | 22 +++++--
 32 files changed, 329 insertions(+), 183 deletions(-)

diff --git a/indra/cmake/LLCoreHttp.cmake b/indra/cmake/LLCoreHttp.cmake
index c5bdf3cdd8..6b2ef49fea 100644
--- a/indra/cmake/LLCoreHttp.cmake
+++ b/indra/cmake/LLCoreHttp.cmake
@@ -1,7 +1,17 @@
 # -*- cmake -*-
 
+include(CURL)
+include(OpenSSL)
+include(Boost)
+
 set(LLCOREHTTP_INCLUDE_DIRS
     ${LIBS_OPEN_DIR}/llcorehttp
+    ${CURL_INCLUDE_DIRS}
+    ${OPENSSL_INCLUDE_DIRS}
+    )
+
+set(LLCOREHTTP_SYSTEM_INCLUDE_DIRS
+    ${Boost_INCLUDE_DIRS}
     )
 
 set(LLCOREHTTP_LIBRARIES llcorehttp
diff --git a/indra/cmake/LLImage.cmake b/indra/cmake/LLImage.cmake
index 2eb513ef63..ec3da89081 100644
--- a/indra/cmake/LLImage.cmake
+++ b/indra/cmake/LLImage.cmake
@@ -1,7 +1,11 @@
 # -*- cmake -*-
 
+include(JPEG)
+include(PNG)
+
 set(LLIMAGE_INCLUDE_DIRS
     ${LIBS_OPEN_DIR}/llimage
+    ${JPEG_INCLUDE_DIRS}
     )
 
 set(LLIMAGE_LIBRARIES llimage)
diff --git a/indra/cmake/LLImageJ2COJ.cmake b/indra/cmake/LLImageJ2COJ.cmake
index 8bf4fc8b66..1bcf205f2d 100644
--- a/indra/cmake/LLImageJ2COJ.cmake
+++ b/indra/cmake/LLImageJ2COJ.cmake
@@ -1,3 +1,5 @@
 # -*- cmake -*-
 
+include(OpenJPEG)
+
 set(LLIMAGEJ2COJ_LIBRARIES llimagej2coj)
diff --git a/indra/cmake/LLMessage.cmake b/indra/cmake/LLMessage.cmake
index 01b688fbf6..7be53ec0ec 100644
--- a/indra/cmake/LLMessage.cmake
+++ b/indra/cmake/LLMessage.cmake
@@ -1,7 +1,13 @@
 # -*- cmake -*-
 
+include(CURL)
+include(OpenSSL)
+include(XmlRpcEpi)
+
 set(LLMESSAGE_INCLUDE_DIRS
     ${LIBS_OPEN_DIR}/llmessage
+    ${CURL_INCLUDE_DIRS}
+    ${OPENSSL_INCLUDE_DIRS}
     )
 
 set(LLMESSAGE_LIBRARIES llmessage)
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 7ac6d1f1c2..85bf5653b8 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -9,8 +9,8 @@ use_prebuilt_binary(colladadom)
 
 set(LLPRIMITIVE_INCLUDE_DIRS
     ${LIBS_OPEN_DIR}/llprimitive
+    ${LIBXML2_INCLUDES}
     )
-
 if (WINDOWS)
     set(LLPRIMITIVE_LIBRARIES
         debug llprimitive
diff --git a/indra/cmake/LLRender.cmake b/indra/cmake/LLRender.cmake
index db8c13ccac..868922451f 100644
--- a/indra/cmake/LLRender.cmake
+++ b/indra/cmake/LLRender.cmake
@@ -6,6 +6,7 @@ include(GLH)
 
 set(LLRENDER_INCLUDE_DIRS
     ${LIBS_OPEN_DIR}/llrender
+    ${GLH_INCLUDE_DIR}
     )
 
 if (BUILD_HEADLESS)
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index 489468d1f9..5f44da1961 100644
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -27,6 +27,7 @@ if (SDL_FOUND)
 endif (SDL_FOUND)
 
 set(LLWINDOW_INCLUDE_DIRS
+    ${GLEXT_INCLUDE_DIR}
     ${LIBS_OPEN_DIR}/llwindow
     )
 
diff --git a/indra/cmake/LLXML.cmake b/indra/cmake/LLXML.cmake
index ecbeae93f6..b093c76297 100644
--- a/indra/cmake/LLXML.cmake
+++ b/indra/cmake/LLXML.cmake
@@ -1,7 +1,14 @@
 # -*- cmake -*-
 
+include(Boost)
+include(EXPAT)
+
 set(LLXML_INCLUDE_DIRS
     ${LIBS_OPEN_DIR}/llxml
+    ${EXPAT_INCLUDE_DIRS}
+    )
+set(LLXML_SYSTEM_INCLUDE_DIRS
+    ${Boost_INCLUDE_DIRS}
     )
 
 set(LLXML_LIBRARIES llxml)
diff --git a/indra/llappearance/CMakeLists.txt b/indra/llappearance/CMakeLists.txt
index 96d79a65da..5dab1f52f0 100644
--- a/indra/llappearance/CMakeLists.txt
+++ b/indra/llappearance/CMakeLists.txt
@@ -16,6 +16,22 @@ include(LLWindow)
 include(LLXML)
 include(Linking)
 
+include_directories(
+    ${LLCHARACTER_INCLUDE_DIRS}
+    ${LLIMAGE_INCLUDE_DIRS}
+    ${LLINVENTORY_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLRENDER_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${LLWINDOW_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    )
+
+include_directories(
+    SYSTEM
+    ${LLCOMMON_SYSTEM_INCLUDE_DIRS}
+    )
+
 set(llappearance_SOURCE_FILES
     llavatarappearance.cpp
     llavatarjoint.cpp
diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt
index 783b21b7c7..b9b37ac8c8 100644
--- a/indra/llaudio/CMakeLists.txt
+++ b/indra/llaudio/CMakeLists.txt
@@ -12,6 +12,23 @@ include(LLMessage)
 include(LLVFS)
 include(LLXML)
 
+include_directories(
+    ${LLAUDIO_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    )
+
+include_directories(SYSTEM 
+    ${OGG_INCLUDE_DIRS}
+    ${VORBISENC_INCLUDE_DIRS}
+    ${VORBISFILE_INCLUDE_DIRS}
+    ${VORBIS_INCLUDE_DIRS}
+    ${OPENAL_LIB_INCLUDE_DIRS}
+    ${FREEAULT_LIB_INCLUDE_DIRS}
+    )
+
 set(llaudio_SOURCE_FILES
     llaudioengine.cpp
     lllistener.cpp
@@ -31,6 +48,9 @@ set(llaudio_HEADER_FILES
     )
 
 if (FMODSTUDIO)
+    include_directories(
+        ${FMODSTUDIO_INCLUDE_DIR}
+        )
     list(APPEND llaudio_SOURCE_FILES
          llaudioengine_fmodstudio.cpp
          lllistener_fmodstudio.cpp
@@ -62,33 +82,6 @@ set_source_files_properties(${llaudio_HEADER_FILES}
 list(APPEND llaudio_SOURCE_FILES ${llaudio_HEADER_FILES})
 
 add_library (llaudio ${llaudio_SOURCE_FILES})
-
-target_include_directories(
-    llaudio 
-    PRIVATE
-    ${OGG_INCLUDE_DIRS}
-    ${VORBISENC_INCLUDE_DIRS}
-    ${VORBISFILE_INCLUDE_DIRS}
-    ${VORBIS_INCLUDE_DIRS}
-    )
-	
-if (FMODSTUDIO)
-  target_include_directories(
-    llaudio
-    PRIVATE
-    ${FMODSTUDIO_INCLUDE_DIR}
-    )
-endif (FMODSTUDIO)
-
-if (OPENAL)
-  target_include_directories(
-    llaudio
-    PRIVATE
-    ${OPENAL_LIB_INCLUDE_DIRS}
-    ${FREEAULT_LIB_INCLUDE_DIRS}
-    )
-endif (OPENAL)	
-
 target_link_libraries(
     llaudio
     ${LLCOMMON_LIBRARIES}
diff --git a/indra/llcharacter/CMakeLists.txt b/indra/llcharacter/CMakeLists.txt
index 6087602f6b..8b001e07d3 100644
--- a/indra/llcharacter/CMakeLists.txt
+++ b/indra/llcharacter/CMakeLists.txt
@@ -9,6 +9,16 @@ include(LLMessage)
 include(LLVFS)
 include(LLXML)
 
+include_directories(
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    )
+include_directories(SYSTEM
+    ${LLXML_SYSTEM_INCLUDE_DIRS}
+    )
+
 set(llcharacter_SOURCE_FILES
     llanimationstates.cpp
     llbvhloader.cpp
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index 9acc0a5a7d..a23714dcc7 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -269,7 +269,6 @@ target_include_directories(
     ${BREAKPAD_INCLUDE_DIRECTORIES}
     ${URIPARSER_INCLUDE_DIRS}
     PUBLIC
-    ${CMAKE_CURRENT_BINARY_DIR}
     ${Boost_INCLUDE_DIRS}
     ${APRUTIL_INCLUDE_DIR}
     ${APR_INCLUDE_DIR}
diff --git a/indra/llcorehttp/CMakeLists.txt b/indra/llcorehttp/CMakeLists.txt
index afc0ffc551..72e742347d 100644
--- a/indra/llcorehttp/CMakeLists.txt
+++ b/indra/llcorehttp/CMakeLists.txt
@@ -3,7 +3,6 @@
 project(llcorehttp)
 
 include(00-Common)
-include(Boost)
 include(CURL)
 include(OpenSSL)
 include(ZLIB)
@@ -13,6 +12,18 @@ include(LLMessage)
 include(LLCommon)
 include(Tut)
 
+include_directories (${CMAKE_CURRENT_SOURCE_DIR})
+
+include_directories(
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLCOREHTTP_INCLUDE_DIRS}
+    )
+
+include_directories(
+    SYSTEM
+    ${LLCOREHTTP_SYSTEM_INCLUDE_DIRS}
+    )
+
 set(llcorehttp_SOURCE_FILES
     bufferarray.cpp
     bufferstream.cpp
@@ -75,19 +86,8 @@ list(APPEND llcorehttp_SOURCE_FILES ${llcorehttp_HEADER_FILES})
 
 add_library (llcorehttp ${llcorehttp_SOURCE_FILES})
 
-include_directories (${CMAKE_CURRENT_SOURCE_DIR})
-
-target_include_directories(
-    llcorehttp
-	PUBLIC
-    ${Boost_INCLUDE_DIRS}
-    ${CURL_INCLUDE_DIRS}
-    ${OPENSSL_INCLUDE_DIRS}
-    )
-
 target_link_libraries(
   llcorehttp
-  ${LLMESSAGE_LIBRARIES}
   ${LLCOMMON_LIBRARIES}}
   ${CURL_LIBRARIES}
   ${OPENSSL_LIBRARIES}
diff --git a/indra/llcrashlogger/CMakeLists.txt b/indra/llcrashlogger/CMakeLists.txt
index 45c0d03661..b4b99b778d 100644
--- a/indra/llcrashlogger/CMakeLists.txt
+++ b/indra/llcrashlogger/CMakeLists.txt
@@ -10,6 +10,17 @@ include(LLMessage)
 include(LLVFS)
 include(LLXML)
 
+include_directories(
+    ${LLCOREHTTP_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    )
+include_directories(SYSTEM
+    ${LLXML_SYSTEM_INCLUDE_DIRS}
+    )
+
 set(llcrashlogger_SOURCE_FILES
     llcrashlogger.cpp
     llcrashlock.cpp
@@ -31,9 +42,5 @@ add_library(llcrashlogger ${llcrashlogger_SOURCE_FILES})
 
 target_link_libraries(
     llcrashlogger
-    ${LLMESSAGE_LIBRARIES}
-    ${LLCOREHTTP_LIBRARIES}
-    ${LLXML_LIBRARIES}
-	${LLVFS_LIBRARIES}
     ${LLCOMMON_LIBRARIES}
     )
diff --git a/indra/llimage/CMakeLists.txt b/indra/llimage/CMakeLists.txt
index aa9852f6da..82c84e4ecf 100644
--- a/indra/llimage/CMakeLists.txt
+++ b/indra/llimage/CMakeLists.txt
@@ -9,12 +9,17 @@ include(LLMath)
 include(LLVFS)
 include(LLKDU)
 include(LLImageJ2COJ)
-include(JPEG)
-include(PNG)
 include(ZLIB)
 include(LLAddBuildTest)
 include(Tut)
 
+include_directories(
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${PNG_INCLUDE_DIRS}
+    ${ZLIB_INCLUDE_DIRS}
+    )
+
 set(llimage_SOURCE_FILES
     llimagebmp.cpp
     llimage.cpp
@@ -52,14 +57,6 @@ set_source_files_properties(${llimage_HEADER_FILES}
 list(APPEND llimage_SOURCE_FILES ${llimage_HEADER_FILES})
 
 add_library (llimage ${llimage_SOURCE_FILES})
-
-target_include_directories(llimage
-    PRIVATE
-    ${PNG_INCLUDE_DIRS}
-    PUBLIC
-    ${JPEG_INCLUDE_DIRS}
-    )
-
 # Libraries on which this library depends, needed for Linux builds
 # Sort by high-level to low-level
 if (USE_KDU)
diff --git a/indra/llimagej2coj/CMakeLists.txt b/indra/llimagej2coj/CMakeLists.txt
index 7c53db8291..a36d528a3b 100644
--- a/indra/llimagej2coj/CMakeLists.txt
+++ b/indra/llimagej2coj/CMakeLists.txt
@@ -7,6 +7,11 @@ include(LLCommon)
 include(LLImage)
 include(OpenJPEG)
 
+include_directories(
+    ${LLIMAGE_INCLUDE_DIRS}
+    ${OPENJPEG_INCLUDE_DIR}
+    )
+
 set(llimagej2coj_SOURCE_FILES
     llimagej2coj.cpp
     )
@@ -23,16 +28,8 @@ set_source_files_properties(${llimagej2coj_HEADER_FILES}
 list(APPEND llimagej2coj_SOURCE_FILES ${llimagej2coj_HEADER_FILES})
 
 add_library (llimagej2coj ${llimagej2coj_SOURCE_FILES})
-
-target_include_directories(
-    llimagej2coj
-    PRIVATE
-    ${OPENJPEG_INCLUDE_DIR}
-    )
-
 target_link_libraries(
     llimagej2coj
-    ${LLIMAGE_LIBRARIES}
-    ${LLCOMMON_LIBRARIES}
     ${OPENJPEG_LIBRARIES}
+	${LLCOMMON_LIBRARIES}
     )
diff --git a/indra/llinventory/CMakeLists.txt b/indra/llinventory/CMakeLists.txt
index 34a0686950..49f9746477 100644
--- a/indra/llinventory/CMakeLists.txt
+++ b/indra/llinventory/CMakeLists.txt
@@ -4,10 +4,17 @@ project(llinventory)
 
 include(00-Common)
 include(LLCommon)
+include(LLCoreHttp)
 include(LLMath)
 include(LLMessage)
+include(LLVFS)
 include(LLXML)
 
+include_directories(
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    )
+
 set(llinventory_SOURCE_FILES
     llcategory.cpp
     lleconomy.cpp
@@ -53,7 +60,6 @@ list(APPEND llinventory_SOURCE_FILES ${llinventory_HEADER_FILES})
 add_library (llinventory ${llinventory_SOURCE_FILES})
 
 target_link_libraries(llinventory
-    ${LLMESSAGE_LIBRARIES}
     ${LLMATH_LIBRARIES}
     ${LLCOMMON_LIBRARIES}
     )
diff --git a/indra/llmessage/CMakeLists.txt b/indra/llmessage/CMakeLists.txt
index a75c9d506d..333abc90b2 100644
--- a/indra/llmessage/CMakeLists.txt
+++ b/indra/llmessage/CMakeLists.txt
@@ -14,8 +14,16 @@ include(Python)
 include(Tut)
 include(Python)
 include(JsonCpp)
-include(CURL)
-include(XmlRpcEpi)
+
+include_directories (${CMAKE_CURRENT_SOURCE_DIR})
+
+include_directories(
+    ${LLCOREHTTP_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${JSONCPP_INCLUDE_DIR}
+    )
 
 set(llmessage_SOURCE_FILES
     llaescipher.cpp
@@ -194,14 +202,6 @@ list(APPEND llmessage_SOURCE_FILES ${llmessage_HEADER_FILES})
 
 add_library (llmessage ${llmessage_SOURCE_FILES})
 
-target_include_directories(
-    llmessage
-    PRIVATE
-    ${JSONCPP_INCLUDE_DIR}
-    PUBLIC
-    ${CURL_INCLUDE_DIRS}
-    )
-
 target_link_libraries(
   llmessage
   ${LLCOREHTTP_LIBRARIES}
diff --git a/indra/llplugin/CMakeLists.txt b/indra/llplugin/CMakeLists.txt
index 80b50bb03a..fb9bed6ee8 100644
--- a/indra/llplugin/CMakeLists.txt
+++ b/indra/llplugin/CMakeLists.txt
@@ -3,12 +3,27 @@
 project(llplugin)
 
 include(00-Common)
-include(Boost)
 include(CURL)
 include(LLCommon)
+include(LLImage)
 include(LLMath)
 include(LLMessage)
 include(LLRender)
+include(LLXML)
+include(LLWindow)
+include(Boost)
+
+include_directories(
+    ${LLIMAGE_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLRENDER_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    ${LLWINDOW_INCLUDE_DIRS}
+    )
+include_directories(SYSTEM
+    ${LLXML_SYSTEM_INCLUDE_DIRS}
+    )
 
 set(llplugin_SOURCE_FILES
     llpluginclassmedia.cpp
@@ -47,9 +62,6 @@ set_target_properties(llplugin PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
 
 target_link_libraries(
     llplugin
-    ${LLRENDER_LIBRARIES}
-    ${LLMESSAGE_LIBRARIES}
-    ${LLMATH_LIBRARIES}
     ${LLCOMMON_LIBRARIES}
 )
 
diff --git a/indra/llplugin/slplugin/CMakeLists.txt b/indra/llplugin/slplugin/CMakeLists.txt
index 8ed06647ad..365c06422d 100644
--- a/indra/llplugin/slplugin/CMakeLists.txt
+++ b/indra/llplugin/slplugin/CMakeLists.txt
@@ -2,10 +2,15 @@ project(AlchemyPlugin)
 
 include(00-Common)
 include(LLCommon)
-include(LLMessage)
 include(LLPlugin)
 include(Linking)
 include(PluginAPI)
+include(LLMessage)
+
+include_directories(
+    ${LLPLUGIN_INCLUDE_DIRS}
+    ${LLMESSAGE_INCLUDE_DIRS}
+)
 
 if (DARWIN)
     include(CMakeFindFrameworks)
diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt
index 4877ec57b0..93d4d83985 100644
--- a/indra/llprimitive/CMakeLists.txt
+++ b/indra/llprimitive/CMakeLists.txt
@@ -11,6 +11,21 @@ include(LLXML)
 include(LLPhysicsExtensions)
 include(LLCharacter)
 
+include_directories(
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    ${LIBS_PREBUILT_DIR}/include/collada
+    ${LIBS_PREBUILT_DIR}/include/collada/1.4
+    ${LLCHARACTER_INCLUDE_DIRS}
+    )
+include_directories(SYSTEM
+    ${LLXML_SYSTEM_INCLUDE_DIRS}
+    ${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}
+    ${LIBS_PREBUILT_DIR}/include/collada
+    ${LIBS_PREBUILT_DIR}/include/collada/1.4
+    )
+
 set(llprimitive_SOURCE_FILES
     lldaeloader.cpp
     llmaterialid.cpp
@@ -57,30 +72,14 @@ list(APPEND llprimitive_SOURCE_FILES ${llprimitive_HEADER_FILES})
 
 add_library (llprimitive ${llprimitive_SOURCE_FILES})
 
-target_include_directories(
-    llprimitive
-    PUBLIC
-    ${LIBS_PREBUILT_DIR}/include/collada
-    ${LIBS_PREBUILT_DIR}/include/collada/1.4
-    )
-
-target_include_directories(
-    llprimitive
-    SYSTEM
-    PUBLIC
-    ${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}
-    ${LIBS_PREBUILT_DIR}/include/collada
-    ${LIBS_PREBUILT_DIR}/include/collada/1.4
-    )
-
 target_link_libraries(llprimitive
-    ${LLPHYSICSEXTENSIONS_LIBRARIES}
-    ${LLCHARACTER_LIBRARIES}
-    ${LLCOREHTTP_LIBRARIES}
+    ${LLCOMMON_LIBRARIES}
+    ${LLMATH_LIBRARIES}
     ${LLMESSAGE_LIBRARIES}
+    ${LLCOREHTTP_LIBRARIES}
     ${LLXML_LIBRARIES}
-    ${LLMATH_LIBRARIES}
-    ${LLCOMMON_LIBRARIES}
+    ${LLPHYSICSEXTENSIONS_LIBRARIES}
+    ${LLCHARACTER_LIBRARIES}
     ${BOOST_COROUTINE_LIBRARY}
     ${BOOST_CONTEXT_LIBRARY}
     )
diff --git a/indra/llrender/CMakeLists.txt b/indra/llrender/CMakeLists.txt
index 3bd0ed2a48..103ed587af 100644
--- a/indra/llrender/CMakeLists.txt
+++ b/indra/llrender/CMakeLists.txt
@@ -15,6 +15,21 @@ include(LLWindow)
 include(LLXML)
 include(LLVFS)
 
+include_directories(
+    ${FREETYPE_INCLUDE_DIRS}
+    ${GLEW_INCLUDE_DIR}
+    ${LLIMAGE_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLRENDER_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${LLWINDOW_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    )
+include_directories(SYSTEM
+    ${LLXML_SYSTEM_INCLUDE_DIRS}
+    )
+
 set(llrender_SOURCE_FILES
     llcubemap.cpp
     llfontbitmapcache.cpp
@@ -92,14 +107,11 @@ endif (BUILD_HEADLESS)
 
 add_library (llrender ${llrender_SOURCE_FILES})
 
-target_include_directories(
-    llrender
-    PRIVATE
-    ${FREETYPE_INCLUDE_DIRS}
-	PUBLIC
-    ${GLEW_INCLUDE_DIR}
-    ${GLH_INCLUDE_DIR}
+if (SDL_FOUND)
+  set_property(TARGET llrender
+    PROPERTY COMPILE_DEFINITIONS LL_SDL=1
     )
+endif (SDL_FOUND)
 
 # Libraries on which this library depends, needed for Linux builds
 # Sort by high-level to low-level
diff --git a/indra/llrender/llfontregistry.cpp b/indra/llrender/llfontregistry.cpp
index 7f74525b66..d003687415 100644
--- a/indra/llrender/llfontregistry.cpp
+++ b/indra/llrender/llfontregistry.cpp
@@ -225,7 +225,7 @@ std::string currentOsName()
 	return "Windows";
 #elif LL_DARWIN
 	return "Mac";
-#elif LL_LINUX || LL_MESA_HEADLESS
+#elif LL_SDL || LL_MESA_HEADLESS
 	return "Linux";
 #else
 	return "";
diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt
index 9685dd95f9..8b22a9bdf1 100644
--- a/indra/llui/CMakeLists.txt
+++ b/indra/llui/CMakeLists.txt
@@ -15,6 +15,22 @@ include(LLCoreHttp)
 include(LLVFS)
 include(LLXML)
 
+include_directories(
+    ${LLCOREHTTP_INCLUDE_DIRS}
+    ${LLIMAGE_INCLUDE_DIRS}
+    ${LLINVENTORY_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLRENDER_INCLUDE_DIRS}
+    ${LLWINDOW_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    ${LIBS_PREBUILD_DIR}/include/hunspell
+    )
+include_directories(SYSTEM
+    ${LLXML_SYSTEM_INCLUDE_DIRS}
+    )
+
 set(llui_SOURCE_FILES
     llaccordionctrl.cpp
     llaccordionctrltab.cpp
@@ -250,13 +266,6 @@ set_source_files_properties(llurlentry.cpp
 list(APPEND llui_SOURCE_FILES ${llui_HEADER_FILES})
 
 add_library (llui ${llui_SOURCE_FILES})
-
-target_include_directories(
-    llui
-    PRIVATE
-    ${HUNSPELL_INCLUDE_DIR}
-    )
-
 # Libraries on which this library depends, needed for Linux builds
 # Sort by high-level to low-level
 target_link_libraries(llui
diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt
index 3045db1270..ffeb17bf78 100644
--- a/indra/llwindow/CMakeLists.txt
+++ b/indra/llwindow/CMakeLists.txt
@@ -21,6 +21,18 @@ include(LLWindow)
 include(LLXML)
 include(UI)
 
+include_directories(
+    ${LLIMAGE_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLRENDER_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${LLWINDOW_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    )
+include_directories(SYSTEM
+    ${LLXML_SYSTEM_INCLUDE_DIRS}
+    )
+
 set(llwindow_SOURCE_FILES
     llcursortypes.cpp
     llkeyboard.cpp
diff --git a/indra/llxml/CMakeLists.txt b/indra/llxml/CMakeLists.txt
index 261aae0eb7..2f30d61739 100644
--- a/indra/llxml/CMakeLists.txt
+++ b/indra/llxml/CMakeLists.txt
@@ -3,12 +3,16 @@
 project(llxml)
 
 include(00-Common)
-include(Boost)
-include(EXPAT)
 include(LLCommon)
 include(LLMath)
+include(LLVFS)
 include(LLXML)
 
+include_directories(
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    )
+
 set(llxml_SOURCE_FILES
     llcontrol.cpp
     llxmlnode.cpp
@@ -32,18 +36,10 @@ set_source_files_properties(${llxml_HEADER_FILES}
 list(APPEND llxml_SOURCE_FILES ${llxml_HEADER_FILES})
 
 add_library (llxml ${llxml_SOURCE_FILES})
-
-target_include_directories(
-    llxml
-	PUBLIC
-    ${Boost_INCLUDE_DIRS}
-	${EXPAT_INCLUDE_DIRS}
-)
-
 # Libraries on which this library depends, needed for Linux builds
 # Sort by high-level to low-level
-target_link_libraries(llxml
-    PUBLIC
+target_link_libraries( llxml
+    ${LLVFS_LIBRARIES}
     ${LLMATH_LIBRARIES}
     ${LLCOMMON_LIBRARIES}
     ${EXPAT_LIBRARIES}
diff --git a/indra/media_plugins/base/CMakeLists.txt b/indra/media_plugins/base/CMakeLists.txt
index 13ba154cd6..c02c466d6a 100644
--- a/indra/media_plugins/base/CMakeLists.txt
+++ b/indra/media_plugins/base/CMakeLists.txt
@@ -13,6 +13,14 @@ include(Linking)
 include(PluginAPI)
 include(OpenGL)
 
+include_directories(
+    ${LLPLUGIN_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLIMAGE_INCLUDE_DIRS}
+    ${LLRENDER_INCLUDE_DIRS}
+    ${LLWINDOW_INCLUDE_DIRS}
+)
+
 ### media_plugin_base
 
 set(media_plugin_base_SOURCE_FILES
@@ -33,7 +41,6 @@ set_target_properties(media_plugin_base PROPERTIES POSITION_INDEPENDENT_CODE TRU
 
 target_link_libraries(
     media_plugin_base
-    ${LLPLUGIN_LIBRARIES}
     ${LLCOMMON_LIBRARIES}
     )
 
diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt
index abb633e6d0..eb44b3a0b3 100644
--- a/indra/media_plugins/cef/CMakeLists.txt
+++ b/indra/media_plugins/cef/CMakeLists.txt
@@ -18,6 +18,20 @@ include(PulseAudio)
 
 include(CEFPlugin)
 
+include_directories(
+    ${LLPLUGIN_INCLUDE_DIRS}
+    ${MEDIA_PLUGIN_BASE_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLIMAGE_INCLUDE_DIRS}
+    ${LLRENDER_INCLUDE_DIRS}
+    ${LLWINDOW_INCLUDE_DIRS}
+    ${CEF_INCLUDE_DIR}
+)
+include_directories(SYSTEM
+    ${PULSEAUDIO_INCLUDE_DIRS}
+    )
+
+
 ### media_plugin_cef
 
 set(media_plugin_cef_SOURCE_FILES
@@ -29,11 +43,10 @@ set(media_plugin_cef_HEADER_FILES
     )
 
 set (media_plugin_cef_LINK_LIBRARIES
-  ${MEDIA_PLUGIN_BASE_LIBRARIES}
   ${LLPLUGIN_LIBRARIES}
-  ${LLRENDER_LIBRARIES}
-  ${LLCOMMON_LIBRARIES}
+  ${MEDIA_PLUGIN_BASE_LIBRARIES}
   ${CEF_PLUGIN_LIBRARIES}
+  ${LLCOMMON_LIBRARIES}
   ${PLUGIN_API_WINDOWS_LIBRARIES})
 
 
@@ -71,20 +84,6 @@ add_library(media_plugin_cef
 
 set_target_properties(media_plugin_cef PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
 
-target_include_directories(
-    media_plugin_cef
-    PRIVATE
-    ${MEDIA_PLUGIN_BASE_INCLUDE_DIRS}
-    ${CEF_INCLUDE_DIR}
-)
-
-target_include_directories(
-    media_plugin_cef
-    SYSTEM
-    PRIVATE
-    ${PULSEAUDIO_INCLUDE_DIRS}
-    )
-
 target_link_libraries(media_plugin_cef
   ${media_plugin_cef_LINK_LIBRARIES}
 )
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index c135065c65..e47ade51c8 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -65,6 +65,49 @@ endif (NOT HAVOK_TPV)
 endif( LLPHYSICSEXTENSIONS_SRC_DIR )
 # </alchemy>
 
+if(FMODSTUDIO)
+  include_directories(${FMODSTUDIO_INCLUDE_DIR})
+endif(FMODSTUDIO)
+
+include_directories(
+    ${DBUSGLIB_INCLUDE_DIRS}
+    ${ZLIB_INCLUDE_DIRS}
+    ${JSONCPP_INCLUDE_DIR}
+    ${GLOD_INCLUDE_DIR}
+    ${LLAUDIO_INCLUDE_DIRS}
+    ${LLCHARACTER_INCLUDE_DIRS}
+    ${LLCOREHTTP_INCLUDE_DIRS}
+    ${LLPHYSICS_INCLUDE_DIRS}
+    ${LLIMAGE_INCLUDE_DIRS}
+    ${LLKDU_INCLUDE_DIRS}
+    ${LLINVENTORY_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLPLUGIN_INCLUDE_DIRS}
+    ${LLPRIMITIVE_INCLUDE_DIRS}
+    ${LLRENDER_INCLUDE_DIRS}
+    ${LLUI_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${LLWINDOW_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    ${LLLOGIN_INCLUDE_DIRS}
+    ${UPDATER_INCLUDE_DIRS}
+    ${LIBS_PREBUILT_DIR}/include/collada
+    ${HUNSPELL_INCLUDE_DIR}
+    ${OPENAL_LIB_INCLUDE_DIRS}
+    ${LIBS_PREBUILT_DIR}/include/collada/1.4
+    ${LLAPPEARANCE_INCLUDE_DIRS}
+    ${CMAKE_CURRENT_SOURCE_DIR}
+    )
+
+include_directories(SYSTEM
+    ${LLCOMMON_SYSTEM_INCLUDE_DIRS}
+    ${LLXML_SYSTEM_INCLUDE_DIRS}
+    ${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}
+    ${LIBS_PREBUILT_DIR}/include/collada
+    ${LIBS_PREBUILT_DIR}/include/collada/1.4
+    )
+
 set(viewer_SOURCE_FILES
     alavatarcolormgr.cpp
     alchatcommand.cpp
@@ -1935,28 +1978,6 @@ else (WINDOWS)
         )
 endif (WINDOWS)
 
-target_include_directories(
-    ${VIEWER_BINARY_NAME}
-    PUBLIC
-    ${DBUSGLIB_INCLUDE_DIRS}
-    ${ZLIB_INCLUDE_DIRS}
-    ${JSONCPP_INCLUDE_DIR}
-    ${GLOD_INCLUDE_DIR}
-    ${LLKDU_INCLUDE_DIRS}
-    ${LIBS_PREBUILT_DIR}/include/collada
-    ${LIBS_PREBUILT_DIR}/include/collada/1.4
-	${LIBXML2_INCLUDES}
-    )
-
-target_include_directories(
-    ${VIEWER_BINARY_NAME}
-    SYSTEM
-    PUBLIC
-    ${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}
-    ${LIBS_PREBUILT_DIR}/include/collada
-    ${LIBS_PREBUILT_DIR}/include/collada/1.4
-    )
-
 # *NOTE: - this list is very sensitive to ordering, test carefully on all
 # platforms if you change the releative order of the entries here.
 # In particular, cmake 2.6.4 (when buidling with linux/makefile generators)
diff --git a/indra/viewer_components/login/CMakeLists.txt b/indra/viewer_components/login/CMakeLists.txt
index 2b2afc1bf0..2c13cc1b1c 100644
--- a/indra/viewer_components/login/CMakeLists.txt
+++ b/indra/viewer_components/login/CMakeLists.txt
@@ -12,6 +12,14 @@ include(LLXML)
 include(LLCoreHttp)
 include(LLMessage)
 
+include_directories(
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    )
+include_directories(SYSTEM
+    ${LLXML_SYSTEM_INCLUDE_DIRS}
+    )
+
 set(login_SOURCE_FILES
     lllogin.cpp
     )
diff --git a/indra/viewer_components/updater/CMakeLists.txt b/indra/viewer_components/updater/CMakeLists.txt
index ed72950f67..b0118e7a8d 100644
--- a/indra/viewer_components/updater/CMakeLists.txt
+++ b/indra/viewer_components/updater/CMakeLists.txt
@@ -15,6 +15,15 @@ include(LLMessage)
 include(LLPlugin)
 include(LLVFS)
 
+include_directories(
+    ${LLCOREHTTP_INCLUDE_DIRS}
+    ${LLMESSAGE_INCLUDE_DIRS}
+    ${LLPLUGIN_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${CURL_INCLUDE_DIRS}
+    ${CMAKE_SOURCE_DIR}/newview
+    )
+
 set(updater_service_SOURCE_FILES
     llupdaterservice.cpp
     llupdatechecker.cpp
@@ -47,19 +56,12 @@ add_library(llupdaterservice
             ${updater_service_SOURCE_FILES}
             )
 
-target_include_directories(
-    llupdaterservice
-    PRIVATE
-    ${LIBS_OPEN_DIR}/newview
-    ${CURL_INCLUDE_DIRS}
-    )
-
 target_link_libraries(llupdaterservice
+    ${LLCOMMON_LIBRARIES}
     ${LLMESSAGE_LIBRARIES}
     ${LLCOREHTTP_LIBRARIES}
     ${LLPLUGIN_LIBRARIES}
     ${LLVFS_LIBRARIES}
-    ${LLCOMMON_LIBRARIES}
     )
 
 if(LL_TESTS)
diff --git a/indra/win_crash_logger/CMakeLists.txt b/indra/win_crash_logger/CMakeLists.txt
index d4aa1e95c8..31147008ca 100644
--- a/indra/win_crash_logger/CMakeLists.txt
+++ b/indra/win_crash_logger/CMakeLists.txt
@@ -16,6 +16,19 @@ include(LLSharedLibs)
 include(GoogleBreakpad)
 include(Boost)
 
+include_directories(
+    ${LLCOREHTTP_INCLUDE_DIRS}
+    ${LLCRASHLOGGER_INCLUDE_DIRS}
+    ${LLMATH_INCLUDE_DIRS}
+    ${LLWINDOW_INCLUDE_DIRS}
+    ${LLXML_INCLUDE_DIRS}
+    ${LLVFS_INCLUDE_DIRS}
+    ${BREAKPAD_INCLUDE_DIRECTORIES}
+    )
+include_directories(SYSTEM
+    ${LLXML_SYSTEM_INCLUDE_DIRS}
+    )
+
 set(win_crash_logger_SOURCE_FILES
     win_crash_logger.cpp
     llcrashloggerwindows.cpp
@@ -41,8 +54,9 @@ set(win_crash_logger_RESOURCE_FILES
 set_source_files_properties(${win_crash_logger_RESOURCE_FILES}
                             PROPERTIES HEADER_FILE_ONLY TRUE)
 
-list(APPEND win_crash_logger_RESOURCE_FILES 
+set(win_crash_logger_RESOURCE_FILES 
     win_crash_logger.rc
+    ${win_crash_logger_RESOURCE_FILES}
     )
 
 SOURCE_GROUP("Resource Files" FILES ${win_crash_logger_RESOURCE_FILES})
@@ -55,12 +69,6 @@ list(APPEND
 
 add_executable(windows-crash-logger WIN32 ${win_crash_logger_SOURCE_FILES})
 
-target_include_directories(
-    windows-crash-logger
-	PRIVATE
-    ${BREAKPAD_INCLUDE_DIRECTORIES}
-    )
-
 target_link_libraries(windows-crash-logger
     ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}
     ${LLCRASHLOGGER_LIBRARIES}
-- 
GitLab