diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4f8a8bc56..e3e632600 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -66,7 +66,7 @@ if(ENABLE_STATIC)
     set(link_type "STATIC")
 else()
     set(link_type "SHARED")
-    SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
+    set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
 endif()
 
 # Include the extensions to the build.
@@ -78,8 +78,26 @@ if(WT_WIN)
     list(APPEND wt_source ${CMAKE_SOURCE_DIR}/build_win/wiredtiger.def)
     set_source_files_properties(${CMAKE_SOURCE_DIR}/build_win/wiredtiger.def PROPERTIES HEADER_FILE_ONLY TRUE)
 endif()
+
+set(builtin_objs)
+if(HAVE_BUILTIN_EXTENSION_LZ4)
+    list(APPEND builtin_objs $<TARGET_OBJECTS:wiredtiger_lz4>)
+endif()
+
+if(HAVE_BUILTIN_EXTENSION_SNAPPY)
+    list(APPEND builtin_objs $<TARGET_OBJECTS:wiredtiger_snappy>)
+endif()
+
+if(HAVE_BUILTIN_EXTENSION_ZLIB)
+    list(APPEND builtin_objs $<TARGET_OBJECTS:wiredtiger_zlib>)
+endif()
+
+if(HAVE_BUILTIN_EXTENSION_ZSTD)
+    list(APPEND builtin_objs $<TARGET_OBJECTS:wiredtiger_zstd>)
+endif()
+
 # Establish wiredtiger library target
-add_library(wiredtiger ${link_type} ${wt_sources})
+add_library(wiredtiger ${link_type} ${wt_sources} ${builtin_objs})
 
 # Generate wiredtiger.h include file.
 configure_file(src/include/wiredtiger.in "include/wiredtiger.h" @ONLY)
@@ -124,6 +142,11 @@ if(ENABLE_TCMALLOC AND HAVE_LIBTCMALLOC)
     target_link_libraries(wiredtiger ${HAVE_LIBTCMALLOC})
 endif()
 
+# When handling builtins, its still ideal to call 'target_link_libraries'
+# despite already having linked the individual objects in the builtin library.
+# We want to capture any transitive dependencies associated with the builtin library
+# target and ensure they propogate to which ever target links against wiredtiger e.g
+# installed 3rd party libraries.
 if(HAVE_BUILTIN_EXTENSION_LZ4)
     target_link_libraries(wiredtiger wiredtiger_lz4)
 endif()
@@ -140,6 +163,10 @@ if(HAVE_BUILTIN_EXTENSION_ZSTD)
     target_link_libraries(wiredtiger wiredtiger_zstd)
 endif()
 
+if(HAVE_BUILTIN_EXTENSION_SODIUM)
+    target_link_libraries(wiredtiger wiredtiger_sodium)
+endif()
+
 # Build the wt utility.
 add_subdirectory(src/utilities)
 
diff --git a/ext/compressors/lz4/CMakeLists.txt b/ext/compressors/lz4/CMakeLists.txt
index 488b7de5d..1f03c76a2 100644
--- a/ext/compressors/lz4/CMakeLists.txt
+++ b/ext/compressors/lz4/CMakeLists.txt
@@ -46,11 +46,7 @@ set(sources "lz4_compress.c")
 set(link_type)
 
 if(HAVE_BUILTIN_EXTENSION_LZ4)
-    if(ENABLE_STATIC)
-        set(link_type "STATIC")
-    else()
-        set(link_type "SHARED")
-    endif()
+    set(link_type "OBJECT")
 else()
     set(link_type "MODULE")
 endif()
@@ -72,10 +68,13 @@ if(HAVE_BUILTIN_EXTENSION_LZ4 OR ENABLE_LZ4)
         PRIVATE ${COMPILER_DIAGNOSTIC_FLAGS}
     )
 
+    set_property(TARGET wiredtiger_lz4 PROPERTY POSITION_INDEPENDENT_CODE ON)
+endif()
+
+if(ENABLE_LZ4)
     install(TARGETS wiredtiger_lz4
         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
     )
 
-    set_property(TARGET wiredtiger_lz4 PROPERTY POSITION_INDEPENDENT_CODE ON)
 endif()
diff --git a/ext/compressors/snappy/CMakeLists.txt b/ext/compressors/snappy/CMakeLists.txt
index b7ecc5a60..10f99fa75 100644
--- a/ext/compressors/snappy/CMakeLists.txt
+++ b/ext/compressors/snappy/CMakeLists.txt
@@ -45,11 +45,7 @@ endif()
 set(sources "snappy_compress.c")
 set(link_type)
 if(HAVE_BUILTIN_EXTENSION_SNAPPY)
-    if(ENABLE_STATIC)
-        set(link_type "STATIC")
-    else()
-        set(link_type "SHARED")
-    endif()
+    set(link_type "OBJECT")
 else()
     set(link_type "MODULE")
 endif()
@@ -71,10 +67,12 @@ if(HAVE_BUILTIN_EXTENSION_SNAPPY OR ENABLE_SNAPPY)
         PRIVATE ${COMPILER_DIAGNOSTIC_FLAGS}
     )
 
+    set_property(TARGET wiredtiger_snappy PROPERTY POSITION_INDEPENDENT_CODE ON)
+endif()
+
+if(ENABLE_SNAPPY)
     install(TARGETS wiredtiger_snappy
         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
     )
-
-    set_property(TARGET wiredtiger_snappy PROPERTY POSITION_INDEPENDENT_CODE ON)
 endif()
diff --git a/ext/compressors/zlib/CMakeLists.txt b/ext/compressors/zlib/CMakeLists.txt
index 53930f97e..fd997c5c6 100644
--- a/ext/compressors/zlib/CMakeLists.txt
+++ b/ext/compressors/zlib/CMakeLists.txt
@@ -45,11 +45,7 @@ endif()
 set(sources "zlib_compress.c")
 set(link_type)
 if(HAVE_BUILTIN_EXTENSION_ZLIB)
-    if(ENABLE_STATIC)
-        set(link_type "STATIC")
-    else()
-        set(link_type "SHARED")
-    endif()
+    set(link_type "OBJECT")
 else()
     set(link_type "MODULE")
 endif()
@@ -71,10 +67,12 @@ if(HAVE_BUILTIN_EXTENSION_ZLIB OR ENABLE_ZLIB)
         PRIVATE ${COMPILER_DIAGNOSTIC_FLAGS}
     )
 
+    set_property(TARGET wiredtiger_zlib PROPERTY POSITION_INDEPENDENT_CODE ON)
+endif()
+
+if(ENABLE_ZLIB)
     install(TARGETS wiredtiger_zlib
         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
     )
-
-    set_property(TARGET wiredtiger_zlib PROPERTY POSITION_INDEPENDENT_CODE ON)
 endif()
diff --git a/ext/compressors/zstd/CMakeLists.txt b/ext/compressors/zstd/CMakeLists.txt
index a28dd4722..ff64feea4 100644
--- a/ext/compressors/zstd/CMakeLists.txt
+++ b/ext/compressors/zstd/CMakeLists.txt
@@ -45,11 +45,7 @@ endif()
 set(sources "zstd_compress.c")
 set(link_type)
 if(HAVE_BUILTIN_EXTENSION_ZSTD)
-    if(ENABLE_STATIC)
-        set(link_type "STATIC")
-    else()
-        set(link_type "SHARED")
-    endif()
+    set(link_type "OBJECT")
 else()
     set(link_type "MODULE")
 endif()
@@ -71,10 +67,12 @@ if(HAVE_BUILTIN_EXTENSION_ZSTD OR ENABLE_ZSTD)
         PRIVATE ${COMPILER_DIAGNOSTIC_FLAGS}
     )
 
+    set_property(TARGET wiredtiger_zstd PROPERTY POSITION_INDEPENDENT_CODE ON)
+endif()
+
+if(ENABLE_ZSTD)
     install(TARGETS wiredtiger_zstd
         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
     )
-
-    set_property(TARGET wiredtiger_zstd PROPERTY POSITION_INDEPENDENT_CODE ON)
 endif()
diff --git a/ext/encryptors/sodium/CMakeLists.txt b/ext/encryptors/sodium/CMakeLists.txt
index 75ae06cc8..ea3857365 100644
--- a/ext/encryptors/sodium/CMakeLists.txt
+++ b/ext/encryptors/sodium/CMakeLists.txt
@@ -45,11 +45,7 @@ endif()
 set(sources "sodium_encrypt.c")
 set(link_type)
 if(HAVE_BUILTIN_EXTENSION_SODIUM)
-    if(ENABLE_STATIC)
-        set(link_type "STATIC")
-    else()
-        set(link_type "SHARED")
-    endif()
+    set(link_type "OBJECT")
 else()
     set(link_type "MODULE")
 endif()
@@ -72,10 +68,12 @@ if(HAVE_BUILTIN_EXTENSION_SODIUM OR ENABLE_SODIUM)
         PRIVATE ${COMPILER_DIAGNOSTIC_FLAGS}
     )
 
+    set_property(TARGET wiredtiger_sodium PROPERTY POSITION_INDEPENDENT_CODE ON)
+endif()
+
+if(ENABLE_SODIUM)
     install(TARGETS wiredtiger_sodium
         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
     )
-
-    set_property(TARGET wiredtiger_sodium PROPERTY POSITION_INDEPENDENT_CODE ON)
 endif()
diff --git a/test/cppsuite/CMakeLists.txt b/test/cppsuite/CMakeLists.txt
index 68957b6e5..5904cfb74 100644
--- a/test/cppsuite/CMakeLists.txt
+++ b/test/cppsuite/CMakeLists.txt
@@ -54,7 +54,7 @@ create_test_executable(run
     CXX
 )
 
-if (HAVE_BUILTIN_EXTENSION_SNAPPY OR ENABLE_SNAPPY)
+if(ENABLE_SNAPPY)
     # We use Snappy compression to avoid excessive disk spage usage.
     target_compile_options(run PRIVATE -DSNAPPY_PATH=\"$<TARGET_FILE:wiredtiger_snappy>\")
 endif()
diff --git a/test/format/CMakeLists.txt b/test/format/CMakeLists.txt
index 9a19a23fb..a353e9837 100644
--- a/test/format/CMakeLists.txt
+++ b/test/format/CMakeLists.txt
@@ -55,19 +55,23 @@ create_test_executable(test_format
     ADDITIONAL_FILES ${CMAKE_CURRENT_SOURCE_DIR}/smoke.sh
 )
 
-if(HAVE_BUILTIN_EXTENSION_LZ4 OR ENABLE_LZ4)
+if(ENABLE_LZ4)
     target_compile_options(test_format PRIVATE -DLZ4_PATH=\"$<TARGET_FILE:wiredtiger_lz4>\")
 endif()
-if(HAVE_BUILTIN_EXTENSION_SNAPPY OR ENABLE_SNAPPY)
+
+if(ENABLE_SNAPPY)
     target_compile_options(test_format PRIVATE -DSNAPPY_PATH=\"$<TARGET_FILE:wiredtiger_snappy>\")
 endif()
-if(HAVE_BUILTIN_EXTENSION_ZLIB OR ENABLE_ZLIB)
+
+if(ENABLE_ZLIB)
     target_compile_options(test_format PRIVATE -DZLIB_PATH=\"$<TARGET_FILE:wiredtiger_zlib>\")
 endif()
-if(HAVE_BUILTIN_EXTENSION_ZLIB OR ENABLE_ZSTD)
+
+if(ENABLE_ZSTD)
     target_compile_options(test_format PRIVATE -DZSTD_PATH=\"$<TARGET_FILE:wiredtiger_zstd>\")
 endif()
-if(HAVE_BUILTIN_EXTENSION_SODIUM OR ENABLE_SODIUM)
+
+if(ENABLE_SODIUM)
     target_compile_options(test_format PRIVATE -DSODIUM_PATH=\"$<TARGET_FILE:wiredtiger_sodium>\")
 endif()
 target_compile_options(test_format PRIVATE -DREVERSE_PATH=\"$<TARGET_FILE:wiredtiger_reverse_collator>\")
