diff --git a/.gitignore b/.gitignore
index e97c609120476289487b69ea8f5b1a53eeaab3bc..09b4bb765ba71d56f79824919948c31c06117dba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
 # Prerequisites
 build/*
+cmake-build-*/
 build_stretch/*
 test/build
 *.txt.user
@@ -67,4 +68,8 @@ Makefile
 cmake_install.cmake
 
 # Editor's temp files
-*~
\ No newline at end of file
+*~
+.idea/
+
+# OS files
+.DS_Store
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8e7b2e50f20327ddeb2297296f39b24b3181f1a9..e57aa8d60076b4b9dc07d93906eab253a4eff2c3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,6 +7,21 @@ add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
 
 #set(BUILD_CRYPTO_TESTS ON)
 
+if(NOT DEFINED ${CELLFRAME_MODULES})
+    include (cmake/OS_Detection.cmake)
+    if (WIN32)
+        set(CELLFRAME_MODULES "core chains mining network srv cs-dag-poa cs-block-poa cs-dag-pos cs-block-pos cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange")
+    elseif(BSD)
+        set(CELLFRAME_MODULES "core chains mining network srv cs-dag-poa cs-block-poa cs-dag-pos cs-block-pos cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange")
+    elseif(DARWIN)
+        set(CELLFRAME_MODULES "core chains mining network srv cs-dag-poa cs-block-poa cs-dag-pos cs-block-pos cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange")
+    elseif(ANDROID)
+        set(CELLFRAME_MODULES "core chains mining network srv cs-dag-poa cs-block-poa cs-dag-pos cs-block-pos cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange")
+    elseif(LINUX)
+        set(CELLFRAME_MODULES "core chains mining network srv cs-dag-poa cs-block-poa cs-dag-pos cs-block-pos cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange modules-dynamic srv-vpn")
+    endif()
+endif()
+
 set(DAPSDK_MODULES "")
 message("Cellframe modules: ${CELLFRAME_MODULES}")