+MARK_AS_ADVANCED(SALOME_LIGHT_ONLY SALOME_USE_LIBBATCH SALOME_USE_SIMAN SALOME_PACO_PARALLEL SALOME_LAUNCHER_ONLY)
+
+# Required prerequisites
+# Find "big" prerequisites first - they reference themselves many others
+# -> this can help finding the smaller prerequisites and detect conficts.
+# =======================
+
+# Exception: LibBatch is optional but is loaded first, as it can
+# give Python, Pthread and SWIG:
+IF(SALOME_USE_LIBBATCH)
+ FIND_PACKAGE(SalomeLibBatch)
+ SALOME_LOG_OPTIONAL_PACKAGE(LibBatch SALOME_USE_LIBBATCH)
+ENDIF()
+
+FIND_PACKAGE(SalomePython REQUIRED)
+FIND_PACKAGE(SalomePThread REQUIRED)
+FIND_PACKAGE(SalomeSWIG REQUIRED)
+FIND_PACKAGE(SalomeLibXml2 REQUIRED)
+FIND_PACKAGE(SalomeHDF5 REQUIRED COMPONENTS C)
+FIND_PACKAGE(SalomeBoost REQUIRED)
+
+# Optional prerequisites
+# ======================
+
+IF(SALOME_USE_SIMAN)
+ FIND_PACKAGE(SalomeSIMANIO)
+ SALOME_LOG_OPTIONAL_PACKAGE(SIMANIO SALOME_USE_SIMAN)
+ ADD_DEFINITIONS(-DWITH_SIMANIO)
+ENDIF()
+IF(NOT SALOME_LIGHT_ONLY)
+ FIND_PACKAGE(SalomeOmniORB REQUIRED)
+ FIND_PACKAGE(SalomeOmniORBPy REQUIRED)
+ENDIF()
+IF(SALOME_USE_MPI)
+ FIND_PACKAGE(SalomeMPI REQUIRED)
+ IF(HDF5_IS_PARALLEL)
+ SALOME_ADD_MPI_TO_HDF5()
+ ENDIF()
+ENDIF()
+IF(SALOME_PACO_PARALLEL)
+ FIND_PACKAGE(SalomePaco REQUIRED)
+ENDIF()
+IF(SALOME_BUILD_TESTS)
+ ENABLE_TESTING()
+ FIND_PACKAGE(SalomeCppUnit)
+ SALOME_LOG_OPTIONAL_PACKAGE(CppUnit SALOME_BUILD_TESTS)
+ENDIF()
+IF(SALOME_BUILD_DOC)
+ FIND_PACKAGE(SalomeDoxygen)
+ FIND_PACKAGE(SalomeGraphviz)
+ FIND_PACKAGE(SalomeSphinx)
+ SALOME_LOG_OPTIONAL_PACKAGE(Doxygen SALOME_BUILD_DOC)
+ SALOME_LOG_OPTIONAL_PACKAGE(Graphviz SALOME_BUILD_DOC)
+ SALOME_LOG_OPTIONAL_PACKAGE(Sphinx SALOME_BUILD_DOC)
+ENDIF()
+
+# Detection summary:
+SALOME_PACKAGE_REPORT_AND_CHECK()