diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index a389c09a379a9a9c34cff64e68401fdc85605351..a9500d2068b1ad335a827ff578183ab9bbc7b0e2 100644
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -40,4 +40,4 @@ else (WINDOWS)
           rt
           )
 endif (WINDOWS)
-set_target_include_dirs(  ll::apr  ${LIBS_PREBUILT_DIR}/include/apr-1 )
+target_include_directories( ll::apr SYSTEM INTERFACE  ${LIBS_PREBUILT_DIR}/include/apr-1 )
diff --git a/indra/cmake/Audio.cmake b/indra/cmake/Audio.cmake
index 0441f370dbd50d5597c872a7c298542a9cc28092..59a589cd0e702c1dde375b5bdc1ff1c94806275e 100644
--- a/indra/cmake/Audio.cmake
+++ b/indra/cmake/Audio.cmake
@@ -5,7 +5,7 @@ include_guard()
 create_target(ll::vorbis)
 
 use_prebuilt_binary(ogg_vorbis)
-set_target_include_dirs( ll::vorbis ${LIBS_PREBUILT_DIR}/include )
+target_include_directories( ll::vorbis SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
 
 if (WINDOWS)
   target_link_libraries(ll::vorbis INTERFACE ogg_static vorbis_static vorbisenc_static vorbisfile_static )
diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake
index 41d1b521f7db3968df6e56b9c1cde920eeff39ed..2b5db1773b7058e995b957e600b3a036e668e05f 100644
--- a/indra/cmake/CEFPlugin.cmake
+++ b/indra/cmake/CEFPlugin.cmake
@@ -3,13 +3,13 @@ include(Linking)
 include(Prebuilt)
 
 include_guard()
-create_target( cef::cef )
+create_target( ll::cef )
 
 use_prebuilt_binary(dullahan)
-set_target_include_dirs( cef::cef ${LIBS_PREBUILT_DIR}/include/cef)
+target_include_directories( ll::cef SYSTEM INTERFACE  ${LIBS_PREBUILT_DIR}/include/cef)
 
 if (WINDOWS)
-    target_link_libraries( cef::cef INTERFACE
+    target_link_libraries( ll::cef INTERFACE
         libcef.lib
         libcef_dll_wrapper.lib
         dullahan.lib
@@ -25,7 +25,7 @@ elseif (DARWIN)
         message(FATAL_ERROR "CEF not found")
     endif()
 
-    target_link_libraries( cef::cef INTERFACE
+    target_link_libraries( ll::cef INTERFACE
         ${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a
         ${ARCH_PREBUILT_DIRS_RELEASE}/libdullahan.a
         ${APPKIT_LIBRARY}
diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake
index ee00113f757a47ef2e6b58e3dfe4e80bd14eb02d..ce7711e479adc1191b2c1074d88d034420588973 100644
--- a/indra/cmake/CURL.cmake
+++ b/indra/cmake/CURL.cmake
@@ -10,4 +10,4 @@ if (WINDOWS)
 else (WINDOWS)
   target_link_libraries(ll::libcurl INTERFACE libcurl.a)
 endif (WINDOWS)
-set_target_include_dirs( ll::libcurl ${LIBS_PREBUILT_DIR}/include)
+target_include_directories( ll::libcurl SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/cmake/EXPAT.cmake b/indra/cmake/EXPAT.cmake
index 44e83c2e472be9025d3e409d3ecee1539cd87f35..4947c40e02058de9dbf2ae6b15d4589a4cc86f27 100644
--- a/indra/cmake/EXPAT.cmake
+++ b/indra/cmake/EXPAT.cmake
@@ -16,4 +16,4 @@ else (WINDOWS)
         set(EXPAT_COPY libexpat.so.1 libexpat.so)
     endif ()
 endif (WINDOWS)
-set_target_include_dirs( ll::expat ${LIBS_PREBUILT_DIR}/include )
+target_include_directories( ll::expat SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake
index aec86125e888096ab9f9e07e171027f97ef69d21..a3fd9c718a11978ce70d822020ed3699b7d37224 100644
--- a/indra/cmake/FMODSTUDIO.cmake
+++ b/indra/cmake/FMODSTUDIO.cmake
@@ -23,8 +23,8 @@ if (USE_FMODSTUDIO)
   if (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
     # If the path have been specified in the arguments, use that
 
-    target_link_libraries(fmodstudio::fmodstudio INTERFACE ${FMODSTUDIO_LIBRARY})
-    set_target_include_dirs(fmodstudio::fmodstudio ${FMODSTUDIO_INCLUDE_DIR})
+    target_link_libraries(ll::fmodstudio INTERFACE ${FMODSTUDIO_LIBRARY})
+    target_include_directories( ll::fmodstudio SYSTEM INTERFACE  ${FMODSTUDIO_INCLUDE_DIR})
   else (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
     # If not, we're going to try to get the package listed in autobuild.xml
     # Note: if you're not using INSTALL_PROPRIETARY, the package URL should be local (file:/// URL)
@@ -40,7 +40,7 @@ if (USE_FMODSTUDIO)
       target_link_libraries( ll::fmodstudio INTERFACE  fmod)
     endif (WINDOWS)
 
-    set_target_include_dirs(ll::fmodstudio ${LIBS_PREBUILT_DIR}/include/fmodstudio)
+    target_include_directories( ll::fmodstudio SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/fmodstudio)
   endif (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
 else()
   set( USE_FMODSTUDIO "OFF")
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index d0e17050bdf6ef9f8d0e6fc7d19165adccb80cd1..c8454eb3b9480aacf818827fc260139db40398df 100644
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -5,6 +5,6 @@ include_guard()
 create_target( ll::freetype)
 
 use_prebuilt_binary(freetype)
-set_target_include_dirs( ll::freetype  ${LIBS_PREBUILT_DIR}/include/freetype2/)
+target_include_directories( ll::freetype SYSTEM INTERFACE  ${LIBS_PREBUILT_DIR}/include/freetype2/)
 target_link_libraries( ll::freetype INTERFACE freetype )
 
diff --git a/indra/cmake/GLOD.cmake b/indra/cmake/GLOD.cmake
index f1532510c5cd519659f3e7527bc82b0c16acbd4f..9070be302a7899691b8e4120eba5b29810a8810e 100644
--- a/indra/cmake/GLOD.cmake
+++ b/indra/cmake/GLOD.cmake
@@ -6,6 +6,6 @@ create_target( ll::glod )
 
 use_prebuilt_binary(glod)
 
-set_target_include_dirs( ll::glod ${LIBS_PREBUILT_DIR}/include)
+target_include_directories( ll::glod SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
 target_link_libraries( ll::glod INTERFACE GLOD )
 target_compile_definitions( ll::glod INTERFACE LL_GLOD=1)
\ No newline at end of file
diff --git a/indra/cmake/GoogleMock.cmake b/indra/cmake/GoogleMock.cmake
index 23558364bba7cb0ea3bd667571039304fbb243bf..01ef4de093f34a47dc9b2040146843c5e2cd3c3b 100644
--- a/indra/cmake/GoogleMock.cmake
+++ b/indra/cmake/GoogleMock.cmake
@@ -7,7 +7,7 @@ include_guard()
 use_prebuilt_binary(googlemock)
 
 create_target( ll::googlemock )
-set_target_include_dirs( ll::googlemock
+target_include_directories( ll::googlemock SYSTEM INTERFACE
         ${LIBS_PREBUILT_DIR}/include
         )
 
@@ -16,7 +16,7 @@ if (LINUX)
     target_link_libraries( ll::googlemock INTERFACE gmock gtest)
 elseif(WINDOWS)
     target_link_libraries( ll::googlemock INTERFACE gmock)
-    set_target_include_dirs( ll::googlemock
+    target_include_directories( ll::googlemock SYSTEM INTERFACE
             ${LIBS_PREBUILT_DIR}/include
             ${LIBS_PREBUILT_DIR}/include/gmock)
 elseif(DARWIN)
diff --git a/indra/cmake/Hunspell.cmake b/indra/cmake/Hunspell.cmake
index e4352c69676295054015528e4ee24cd6a2d5ed6a..0994d2b5f4f420ccdc6d09de2976356f428f9d54 100644
--- a/indra/cmake/Hunspell.cmake
+++ b/indra/cmake/Hunspell.cmake
@@ -12,5 +12,5 @@ elseif(DARWIN)
 elseif(LINUX)
   target_link_libraries( ll::hunspell INTERFACE hunspell-1.3)
 endif()
-set_target_include_dirs( ll::hunspell ${LIBS_PREBUILT_DIR}/include/hunspell)
+target_include_directories( ll::hunspell SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/hunspell)
 use_prebuilt_binary(dictionaries)
diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake
index d51733b413b9e124c63972a311fb6a04e3757c5b..af984b6ac3e18ff9327249381abf30b3b66ede2b 100644
--- a/indra/cmake/JPEG.cmake
+++ b/indra/cmake/JPEG.cmake
@@ -14,4 +14,4 @@ elseif (DARWIN)
 elseif (WINDOWS)
   target_link_libraries( ll::jpeglib INTERFACE jpeglib)
 endif (LINUX)
-set_target_include_dirs( ll::jpeglib ${LIBS_PREBUILT_DIR}/include)
+target_include_directories( ll::jpeglib SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake
index 7d8c5cac6203112ee0fdf6f49720f38f08cb215f..1c354350c3b146c5c291cccfa405268400a56397 100644
--- a/indra/cmake/JsonCpp.cmake
+++ b/indra/cmake/JsonCpp.cmake
@@ -12,4 +12,4 @@ elseif (DARWIN)
 elseif (LINUX)
   target_link_libraries( ll::jsoncpp INTERFACE libjson_linux-gcc-4.1.3_libmt.a )
 endif (WINDOWS)
-set_target_include_dirs( ll::jsoncpp ${LIBS_PREBUILT_DIR}/include/json)
+target_include_directories( ll::jsoncpp SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/json)
diff --git a/indra/cmake/LLKDU.cmake b/indra/cmake/LLKDU.cmake
index 08a8229a33065301e55855fc1607a0a93180c8e7..bf358cc0eb59a73ade367896f92be065ce3089e7 100644
--- a/indra/cmake/LLKDU.cmake
+++ b/indra/cmake/LLKDU.cmake
@@ -19,7 +19,7 @@ if (USE_KDU)
     target_link_libraries( ll::kdu INTERFACE libkdu.a)
   endif (WINDOWS)
 
-  set_target_include_dirs( ll::kdu
+  target_include_directories( ll::kdu SYSTEM INTERFACE
           ${AUTOBUILD_INSTALL_DIR}/include/kdu
           ${LIBS_OPEN_DIR}/llkdu
           )
diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake
index 0f21ebb235909f8c7b396808d040889a39d86a00..014ec6a98b88f78431ad4c3819b16953f2be4270 100644
--- a/indra/cmake/LLPhysicsExtensions.cmake
+++ b/indra/cmake/LLPhysicsExtensions.cmake
@@ -32,4 +32,4 @@ else (HAVOK)
    target_link_libraries( llphysicsextensions INTERFACE llphysicsextensionsstub)
 endif (HAVOK)
 
-set_target_include_dirs(llphysicsextensions ${LIBS_PREBUILT_DIR}/include/llphysicsextensions)
+target_include_directories( llphysicsextensions  INTERFACE   ${LIBS_PREBUILT_DIR}/include/llphysicsextensions)
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index adb252b8ee6eb9aaa25c431cec89c166cd0cf814..0026f183e651a003955fa1ccfe659a00589f9288 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -29,7 +29,7 @@ else()
 endif()
 
 create_target( ll::colladadom )
-set_target_include_dirs( ll::colladadom
+target_include_directories( ll::colladadom SYSTEM INTERFACE
         ${LIBS_PREBUILT_DIR}/include/collada
         ${LIBS_PREBUILT_DIR}/include/collada/1.4
         )
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index 6ac2b58017b3a4af6ddd74a477ca4952d0d1c3ad..fdeb4aa43484db4a95305b803e96a56e3fd6d35d 100644
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -9,7 +9,7 @@ create_target(ll::sdl)
 
 if (LINUX)
   use_prebuilt_binary(SDL)
-  set_target_include_dirs( ll::sdl ${LIBS_PREBUILT_DIR}/i686-linux)
+  target_include_directories( ll::sdl SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/i686-linux)
   target_link_libraries( ll::sdl INTERFACE SDL directfb fusion direct X11)
   target_compile_definitions( ll::sdl INTERFACE LL_SDL=1)
 endif (LINUX)
diff --git a/indra/cmake/NGHTTP2.cmake b/indra/cmake/NGHTTP2.cmake
index fdff9a72fa4d6a0d84f728a0d9acf964181563c7..7e59a7d9a7a64a06ee3dbe06177dabcb3c953ccc 100644
--- a/indra/cmake/NGHTTP2.cmake
+++ b/indra/cmake/NGHTTP2.cmake
@@ -12,4 +12,4 @@ elseif (DARWIN)
 else (WINDOWS)
   target_link_libraries( ll::nghttp2 INTERFACE libnghttp2.a )
 endif (WINDOWS)
-set_target_include_dirs( ll::nghttp2 ${LIBS_PREBUILT_DIR}/include/nghttp2)
+target_include_directories( ll::nghttp2 SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/nghttp2)
diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake
index 8bbb657aea41e1af5b105e6a8cb35e62a13ba2a3..faa247769b48c2a7dee2cd596805b732a08e741d 100644
--- a/indra/cmake/OPENAL.cmake
+++ b/indra/cmake/OPENAL.cmake
@@ -13,7 +13,7 @@ endif()
 
 if (USE_OPENAL)
   create_target( ll::openal )
-  set_target_include_dirs( ll::openal "${LIBS_PREBUILT_DIR}/include/AL")
+  target_include_directories( ll::openal SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/AL")
   target_compile_definitions( ll::openal INTERFACE LL_OPENAL=1)
   use_prebuilt_binary(openal)
 
diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake
index 139f6bc7d7850c8b03a6516214e54e4236a462bc..07dee5c23d821d8349b7c883de73994a2b3a5dbb 100644
--- a/indra/cmake/OpenJPEG.cmake
+++ b/indra/cmake/OpenJPEG.cmake
@@ -7,4 +7,4 @@ create_target( ll::openjpeg )
 use_prebuilt_binary(openjpeg)
 
 target_link_libraries(ll::openjpeg INTERFACE openjpeg )
-set_target_include_dirs( ll::openjpeg ${LIBS_PREBUILT_DIR}/include/openjpeg)
+target_include_directories( ll::openjpeg SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/openjpeg)
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index c7be08624dcf7bcf531f4d169c1fc694bf2bc765..6c9abc9e7fac78963fb92776f6eaefa3f8d01fbf 100644
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -12,5 +12,5 @@ elseif (LINUX)
 else()
   target_link_libraries(ll::openssl INTERFACE ssl crypto)
 endif (WINDOWS)
-set_target_include_dirs(ll::openssl ${LIBS_PREBUILT_DIR}/include)
+target_include_directories( ll::openssl SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
 
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
index ef4f492ec20d2a3d0206c88cee56c1aba50156aa..5a8d3e197dba99df0d189a69e5a3d4484c4a2f01 100644
--- a/indra/cmake/PNG.cmake
+++ b/indra/cmake/PNG.cmake
@@ -10,4 +10,4 @@ if (WINDOWS)
 else()
   target_link_libraries(ll::libpng INTERFACE png16 )
 endif()
-set_target_include_dirs( ll::libpng ${LIBS_PREBUILT_DIR}/include/libpng16)
+target_include_directories( ll::libpng SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/libpng16)
diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake
index 95117c539d715518e9e661dc5d9e6647f30b232c..593eb3958c17db922ec60c03f88a861aef44f4d3 100644
--- a/indra/cmake/Prebuilt.cmake
+++ b/indra/cmake/Prebuilt.cmake
@@ -61,7 +61,3 @@ function( create_target name )
   add_library( ${name} INTERFACE IMPORTED )
 endfunction()
 
-function( set_target_include_dirs target)
-  set_property( TARGET ${target} PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${ARGN} )
-endfunction()
-
diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
index 57b33ce34b3e2496f7342df1ca82271c3b31cf4f..c23fb6e8a7f6da8f177de96dfc918cae2e2367bc 100644
--- a/indra/cmake/UI.cmake
+++ b/indra/cmake/UI.cmake
@@ -43,7 +43,7 @@ if( WINDOWS )
           )
 endif()
 
-set_target_include_dirs( ll::uilibraries
+target_include_directories( ll::uilibraries SYSTEM INTERFACE
         ${LIBS_PREBUILT_DIR}/include
         )
 
@@ -62,7 +62,7 @@ set_target_include_dirs( ll::uilibraries
 #        pango-1.0
 #        )
 #foreach(include ${${LL_ARCH}_INCLUDES})
-#  set_target_include_dirs( ll::uilibraries
+#  target_include_directories( ll::uilibraries SYSTEM INTERFACE
 #          ${LIBS_PREBUILT_DIR}/include/${include}
 #          )
 #endforeach(include)
diff --git a/indra/cmake/URIPARSER.cmake b/indra/cmake/URIPARSER.cmake
index 72e4594cdd879e4b0576338f85e167807c810552..8639eab891c481dd115fead4429e970ee721c74a 100644
--- a/indra/cmake/URIPARSER.cmake
+++ b/indra/cmake/URIPARSER.cmake
@@ -13,4 +13,4 @@ elseif (LINUX)
 elseif (DARWIN)
   target_link_libraries( ll::uriparser INTERFACE liburiparser.dylib)
 endif (WINDOWS)
-set_target_include_dirs( ll::uriparser ${LIBS_PREBUILT_DIR}/include/uriparser)
+target_include_directories( ll::uriparser SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/uriparser)
diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake
index 417423f49ca39d4810d24fb0829241304ec495ed..aad9d1e476c8ea4f1133d22579b2a5016f0549f4 100644
--- a/indra/cmake/XmlRpcEpi.cmake
+++ b/indra/cmake/XmlRpcEpi.cmake
@@ -6,4 +6,4 @@ create_target( ll::xmlrpc-epi )
 
 use_prebuilt_binary(xmlrpc-epi)
 target_link_libraries(ll::xmlrpc-epi INTERFACE xmlrpc-epi )
-set_target_include_dirs( ll::xmlrpc-epi ${LIBS_PREBUILT_DIR}/include)
+target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/cmake/ZLIBNG.cmake b/indra/cmake/ZLIBNG.cmake
index a95005e368fe76bdbad21971c9c9937cb48c493e..a7779af3cd971551512283c2b97b2bc05d30005d 100644
--- a/indra/cmake/ZLIBNG.cmake
+++ b/indra/cmake/ZLIBNG.cmake
@@ -11,4 +11,4 @@ if (WINDOWS)
 else()
   target_link_libraries( ll::zlib-ng INTERFACE z )
 endif (WINDOWS)
-set_target_include_dirs( ll::zlib-ng ${LIBS_PREBUILT_DIR}/include/zlib-ng)
+target_include_directories( ll::zlib-ng SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/zlib-ng)
diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake
index 6f22815855ce229b84f0ba2d6a23edfe7b124600..21a6e074fc21ae2c5bbc8c2ff485f8f6c84a0523 100644
--- a/indra/cmake/bugsplat.cmake
+++ b/indra/cmake/bugsplat.cmake
@@ -33,7 +33,7 @@ if (USE_BUGSPLAT)
         message( FATAL_ERROR "You need to set BUGSPLAT_DB when setting USE_BUGSPLAT" )
     endif()
 
-    set_target_include_dirs( ll::bugsplat ${LIBS_PREBUILT_DIR}/include/bugsplat)
+    target_include_directories( ll::bugsplat SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/bugsplat)
     set_property( TARGET ll::bugsplat APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS LL_BUGSPLAT)
 else()
     set(BUGSPLAT_DB "" CACHE STRING "BugSplat crash database name")
diff --git a/indra/llappearance/CMakeLists.txt b/indra/llappearance/CMakeLists.txt
index 321c1e17984a0098379f71e6e1694c67cd8ed77a..4516a95d80946ceabe29f7fbba8d355297748bde 100644
--- a/indra/llappearance/CMakeLists.txt
+++ b/indra/llappearance/CMakeLists.txt
@@ -71,11 +71,11 @@ target_link_libraries(llappearance
         llcorehttp
         llcommon
     )
-set_target_include_dirs( llappearance ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llappearance  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 if (BUILD_HEADLESS)
   add_library (llappearanceheadless ${llappearance_SOURCE_FILES})
-  set_target_include_dirs( llappearanceheadless ${CMAKE_CURRENT_SOURCE_DIR})
+  target_include_directories( llappearanceheadless  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
   target_link_libraries(llappearanceheadless
           llcharacter
diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt
index 220b6d8cfb21f8a6ce88c6df806f5265d68b4a13..b2b479b36fdd0876f2026a2201554a832c9d809e 100644
--- a/indra/llaudio/CMakeLists.txt
+++ b/indra/llaudio/CMakeLists.txt
@@ -57,7 +57,7 @@ set_source_files_properties(${llaudio_HEADER_FILES}
 list(APPEND llaudio_SOURCE_FILES ${llaudio_HEADER_FILES})
 
 add_library (llaudio ${llaudio_SOURCE_FILES})
-set_target_include_dirs( llaudio ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llaudio  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 target_link_libraries( llaudio
         llcommon
         llmath
diff --git a/indra/llcharacter/CMakeLists.txt b/indra/llcharacter/CMakeLists.txt
index 59e491748d8b9e088e777a7415dd6a3a6e06c8d7..38720eb5da976832802d036e7248f1812cbf5af3 100644
--- a/indra/llcharacter/CMakeLists.txt
+++ b/indra/llcharacter/CMakeLists.txt
@@ -63,7 +63,7 @@ set_source_files_properties(${llcharacter_HEADER_FILES}
 list(APPEND llcharacter_SOURCE_FILES ${llcharacter_HEADER_FILES})
 
 add_library (llcharacter ${llcharacter_SOURCE_FILES})
-set_target_include_dirs( llcharacter ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llcharacter  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 target_link_libraries(
         llcharacter
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index d5c57bbeaf9adb0b785efdbefb8feb2321a69e35..61d6196f505a4168ac7883dd7c326a29f2d4f65d 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -279,7 +279,7 @@ target_link_libraries(
         ll::oslibraries
     )
 
-set_target_include_dirs( llcommon ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llcommon  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 target_include_directories( llcommon PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} )
 
 add_dependencies(llcommon stage_third_party_libs)
diff --git a/indra/llcorehttp/CMakeLists.txt b/indra/llcorehttp/CMakeLists.txt
index e2bd9ae5b8b462fb0cf2ade381da4bd3d4553ff6..f93104b32182f0c5351c377b1ddacbbbcfb236d4 100644
--- a/indra/llcorehttp/CMakeLists.txt
+++ b/indra/llcorehttp/CMakeLists.txt
@@ -91,7 +91,7 @@ target_link_libraries(
         ll::openssl
         ll::nghttp2
   )
-set_target_include_dirs( llcorehttp ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llcorehttp  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 
 # tests
diff --git a/indra/llfilesystem/CMakeLists.txt b/indra/llfilesystem/CMakeLists.txt
index 882f5b8fba91caf68229126469259383e945797c..537f43007a33a5911eaffc9f70c16ed90a5d417b 100644
--- a/indra/llfilesystem/CMakeLists.txt
+++ b/indra/llfilesystem/CMakeLists.txt
@@ -57,7 +57,7 @@ add_library (llfilesystem ${llfilesystem_SOURCE_FILES})
 target_link_libraries(llfilesystem
         llcommon
     )
-set_target_include_dirs( llfilesystem ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llfilesystem  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 # Add tests
 if (LL_TESTS)
diff --git a/indra/llimage/CMakeLists.txt b/indra/llimage/CMakeLists.txt
index 7b3c1110a26d560f5c972b62504f5a1ae61a46e8..0984493941d42dcb93d746b3d8b5118ba7944941 100644
--- a/indra/llimage/CMakeLists.txt
+++ b/indra/llimage/CMakeLists.txt
@@ -49,7 +49,7 @@ set_source_files_properties(${llimage_HEADER_FILES}
 list(APPEND llimage_SOURCE_FILES ${llimage_HEADER_FILES})
 
 add_library (llimage ${llimage_SOURCE_FILES})
-set_target_include_dirs( llimage ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llimage  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 # Libraries on which this library depends, needed for Linux builds
 # Sort by high-level to low-level
 if (USE_KDU)
diff --git a/indra/llinventory/CMakeLists.txt b/indra/llinventory/CMakeLists.txt
index 7d193f5512d414c59b8badc92308a8db9bf39649..16724cca53f248dabd0cb0095a8354928e392241 100644
--- a/indra/llinventory/CMakeLists.txt
+++ b/indra/llinventory/CMakeLists.txt
@@ -60,7 +60,7 @@ list(APPEND llinventory_SOURCE_FILES ${llinventory_HEADER_FILES})
 add_library (llinventory ${llinventory_SOURCE_FILES})
 
 target_link_libraries( llinventory llcommon llmath llmessage llxml )
-set_target_include_dirs( llinventory ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llinventory  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 #add unit tests
 if (LL_TESTS)
diff --git a/indra/llkdu/CMakeLists.txt b/indra/llkdu/CMakeLists.txt
index 674ad04919d9abb97365da6560ecd590f3175c10..aef8dea53ffda7773d3fda8396ffca09dc2424a8 100644
--- a/indra/llkdu/CMakeLists.txt
+++ b/indra/llkdu/CMakeLists.txt
@@ -43,7 +43,7 @@ if (USE_KDU)
   add_library (llkdu ${llkdu_SOURCE_FILES})
 
   target_link_libraries(llkdu ll::kdu llimage llcommon)
-  set_target_include_dirs( llkdu ${CMAKE_CURRENT_SOURCE_DIR})
+  target_include_directories( llkdu  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
   # Add tests
   # ND: llkdu tests are very strange as they include stubs for KDU classes/methods
diff --git a/indra/llmath/CMakeLists.txt b/indra/llmath/CMakeLists.txt
index 4c4e59811d02959c02b3f4c88eee10e9276907b7..9d1b4f07f37977aa6a5cdabd9d955f3166c18c6b 100644
--- a/indra/llmath/CMakeLists.txt
+++ b/indra/llmath/CMakeLists.txt
@@ -103,7 +103,7 @@ list(APPEND llmath_SOURCE_FILES ${llmath_HEADER_FILES})
 add_library (llmath ${llmath_SOURCE_FILES})
 
 target_link_libraries(llmath llcommon)
-set_target_include_dirs( llmath ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llmath  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 # Add tests
 if (LL_TESTS)
diff --git a/indra/llmessage/CMakeLists.txt b/indra/llmessage/CMakeLists.txt
index 623798176b0705348240aa4e1f941bd1f91eb538..679ff43131c5937adca3637ec300551703d3f451 100644
--- a/indra/llmessage/CMakeLists.txt
+++ b/indra/llmessage/CMakeLists.txt
@@ -200,7 +200,7 @@ target_link_libraries(
         llcorehttp
         ll::xmlrpc-epi
 )
-set_target_include_dirs( llmessage ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llmessage  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 # tests
 if (LL_TESTS)
diff --git a/indra/llplugin/CMakeLists.txt b/indra/llplugin/CMakeLists.txt
index 872d62a2bb6d5a1e1a96aaeb76731879e6b2e40c..71801e05afd434f6333e140787b7ae708364646a 100644
--- a/indra/llplugin/CMakeLists.txt
+++ b/indra/llplugin/CMakeLists.txt
@@ -46,7 +46,7 @@ endif(NOT ADDRESS_SIZE EQUAL 32)
 list(APPEND llplugin_SOURCE_FILES ${llplugin_HEADER_FILES})
 
 add_library (llplugin ${llplugin_SOURCE_FILES})
-set_target_include_dirs(llplugin ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llplugin  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 target_link_libraries( llplugin llcommon llmath llrender llmessage )
 add_subdirectory(slplugin)
 
diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt
index 79b54c9df8ec103a539fbd0d39ea5b563dad88e7..d69b24a07f65b8f0c40872b32e0662338ee5c122 100644
--- a/indra/llprimitive/CMakeLists.txt
+++ b/indra/llprimitive/CMakeLists.txt
@@ -53,7 +53,7 @@ set_source_files_properties(${llprimitive_HEADER_FILES}
 list(APPEND llprimitive_SOURCE_FILES ${llprimitive_HEADER_FILES})
 
 add_library (llprimitive ${llprimitive_SOURCE_FILES})
-set_target_include_dirs( llprimitive ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llprimitive  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 target_link_libraries(llprimitive
         llcommon
diff --git a/indra/llrender/CMakeLists.txt b/indra/llrender/CMakeLists.txt
index 8f9089f4b769c9c22df8e6f3c9e344777d71bebe..db672303be9ca63a93d22a79b2c76445932ceab2 100644
--- a/indra/llrender/CMakeLists.txt
+++ b/indra/llrender/CMakeLists.txt
@@ -89,7 +89,7 @@ if (BUILD_HEADLESS)
 endif (BUILD_HEADLESS)
 
 add_library (llrender ${llrender_SOURCE_FILES})
-set_target_include_dirs(llrender ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llrender  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 # Libraries on which this library depends, needed for Linux builds
 # Sort by high-level to low-level
diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt
index 5e71b673a5072463fdb1d978b916beb5e95e0932..144923636b88d46240058be21a677d3a9fd4b3b7 100644
--- a/indra/llui/CMakeLists.txt
+++ b/indra/llui/CMakeLists.txt
@@ -252,7 +252,7 @@ set_source_files_properties(llurlentry.cpp
 list(APPEND llui_SOURCE_FILES ${llui_HEADER_FILES})
 
 add_library (llui ${llui_SOURCE_FILES})
-set_target_include_dirs( llui ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llui  INTERFACE   ${CMAKE_CURRENT_SOURCE_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 4c2f8149b446f46850603ead98c8e9fcd9da33f6..826edf31cfe8969c7d530c396049b538ed95ce69 100644
--- a/indra/llwindow/CMakeLists.txt
+++ b/indra/llwindow/CMakeLists.txt
@@ -175,4 +175,4 @@ endif (llwindow_HEADER_FILES)
     )
 
 target_link_libraries (llwindow ${llwindow_LINK_LIBRARIES} ll::sdl)
-set_target_include_dirs(llwindow ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llwindow  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/indra/llxml/CMakeLists.txt b/indra/llxml/CMakeLists.txt
index fc680e6da57e6a91b9113fa81a9a283bdf7d986f..5ac6aae78ed75814dccae1456a6bccc40b0a71b8 100644
--- a/indra/llxml/CMakeLists.txt
+++ b/indra/llxml/CMakeLists.txt
@@ -35,7 +35,7 @@ target_link_libraries( llxml
         llcommon
         ll::expat
     )
-set_target_include_dirs( llxml ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( llxml  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 
 # tests
diff --git a/indra/media_plugins/base/CMakeLists.txt b/indra/media_plugins/base/CMakeLists.txt
index 9da249bd27b3e44bbf6b433abd64e26106655264..64b6a4228d29081f72d3c6e1848b4b4df7f34103 100644
--- a/indra/media_plugins/base/CMakeLists.txt
+++ b/indra/media_plugins/base/CMakeLists.txt
@@ -35,4 +35,4 @@ add_library(media_plugin_base
         )
 
 target_link_libraries( media_plugin_base llplugin )
-set_target_include_dirs(media_plugin_base ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( media_plugin_base  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt
index c4cf292ddeafd0bc08e9cb5462a967cbf86a64fc..ae3092fff4dbd99b13acc7d484bb6ced54aa9951 100644
--- a/indra/media_plugins/cef/CMakeLists.txt
+++ b/indra/media_plugins/cef/CMakeLists.txt
@@ -62,7 +62,7 @@ add_library(media_plugin_cef
 
 target_link_libraries(media_plugin_cef
         media_plugin_base
-        cef::cef
+        ll::cef
 )
 
 if (WINDOWS)
diff --git a/indra/viewer_components/login/CMakeLists.txt b/indra/viewer_components/login/CMakeLists.txt
index 0508a17f3a5baf88e7589e0262f230c3931a78c9..76e38acf8a254db4d28a4287e0cb135d3dde3124 100644
--- a/indra/viewer_components/login/CMakeLists.txt
+++ b/indra/viewer_components/login/CMakeLists.txt
@@ -28,7 +28,7 @@ list(APPEND
 add_library(lllogin 
             ${login_SOURCE_FILES}
             )
-set_target_include_dirs( lllogin ${CMAKE_CURRENT_SOURCE_DIR})
+target_include_directories( lllogin  INTERFACE   ${CMAKE_CURRENT_SOURCE_DIR})
 
 target_link_libraries(lllogin
         llmessage