diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7e1b839c37c3e0d47e23a823d9ed32427c5b2913..c9df3a80847aac400ebca7725a98c3815a8cc889 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,24 +11,32 @@ include(GNUInstallDirs)
 include(CTest)
 enable_testing()
 
+option(WITH_PCL "Use PCL if available" ON)
+option(WITH_FIXSTARS "Use Fixstars libSGM if available" ON)
+
 set(THREADS_PREFER_PTHREAD_FLAG ON)
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
 
 include(Findglog)
-#find_package( glog REQUIRED )
+
 find_package( OpenCV REQUIRED )
 find_package( Threads REQUIRED )
 find_package( URIParser REQUIRED )
 find_package( MsgPack REQUIRED )
-find_package( LibSGM )
-find_package( PCL )
-#find_package( ZLIB REQUIRED )
+
+if (WITH_FIXSTARS)
+	find_package( LibSGM )
+endif()
+
+if (WITH_PCL)
+	find_package( PCL QUIET COMPONENTS io common visualization registration )
+endif()
 
 set(CMAKE_CXX_STANDARD 17) # For PCL/VTK https://github.com/PointCloudLibrary/pcl/issues/2686
 set(HAVE_OPENCV TRUE)
 
 if (PCL_FOUND)
-set(HAVE_PCL TRUE)
+	set(HAVE_PCL TRUE)
 endif()
 
 # Readline library is not required on Windows