diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index ec3911ece98642dc783cea36b517bff6cc6ebcc3..3a69373d331d81e179788888e08ebe5e29ebdfe3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -3,12 +3,30 @@ project (Synchronet C CXX)
 cmake_minimum_required(VERSION 2.8.11)
 
 if(NOT PROJECTS)
-	SET(PROJECTS SyncTERM;SyncDraw;SExPOTS;Tone;SMBLib CACHE STRING "Choose the projects to build, options are: SyncTERM" FORCE)
+	SET(PROJECTS SyncTERM;SyncDraw;SExPOTS;Tone;SMBLib;SBBS3 CACHE STRING "Choose the projects to build, options are: SyncTERM" FORCE)
 	if(WIN32)
 		list(APPEND PROJECTS CIOXtrn)
 	endif()
 endif()
 
+list(FIND PROJECTS SBBS3 BUILD_SBBS3)
+if(BUILD_SBBS3 GREATER -1)
+	if(NOT XPDEV_ADDED)
+		add_subdirectory(xpdev)
+		set(XPDEV_ADDED TRUE)
+	endif()
+	if(NOT CONIO_ADDED)
+		add_subdirectory(conio)
+		set(CONIO_ADDED TRUE)
+	endif()
+	if(NOT UIFC_ADDED)
+		add_subdirectory(uifc)
+		set(UIFC_ADDED TRUE)
+	endif()
+	list(APPEND PROJECTS SMBLib)
+	add_subdirectory(sbbs3)
+endif()
+
 list(FIND PROJECTS SyncTERM BUILD_SYNCTERM)
 if(BUILD_SYNCTERM GREATER -1)
 	if(NOT XPDEV_ADDED)