diff --git a/Applications/CLI/CMakeLists.txt b/Applications/CLI/CMakeLists.txt
index 7b5f69a00fad0fc510da524d63aa98ca7df0e036..e049b6591a60602cb2eb8f8edb34972ecfb056d7 100644
--- a/Applications/CLI/CMakeLists.txt
+++ b/Applications/CLI/CMakeLists.txt
@@ -35,7 +35,7 @@ cpack_add_component(ogs_cli
     GROUP Applications
 )
 
-if(NOT APPLE)
+if(NOT APPLE AND OGS_PACKAGE_DEPENDENCIES)
     include(packaging/InstallDependencies)
     InstallDependencies(ogs)
 endif()
diff --git a/Applications/DataExplorer/DataExplorer.cmake b/Applications/DataExplorer/DataExplorer.cmake
index d7f1353aa5a81685f433fff88ea95925a1067379..261611523e37a074ca80eef3f77be2dc0e83d47c 100644
--- a/Applications/DataExplorer/DataExplorer.cmake
+++ b/Applications/DataExplorer/DataExplorer.cmake
@@ -117,7 +117,7 @@ cpack_add_component(ogs_gui
 set(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} "DataExplorer" "OGS Data Explorer" PARENT_SCOPE)
 set(CPACK_NSIS_MENU_LINKS ${CPACK_NSIS_MENU_LINKS} "bin/DataExplorer.exe" "Data Explorer" PARENT_SCOPE)
 
-if(NOT APPLE)
+if(NOT APPLE AND OGS_PACKAGE_DEPENDENCIES)
     include(packaging/InstallDependencies)
     InstallDependencies(DataExplorer)
 endif()
diff --git a/CMakeLists.txt b/CMakeLists.txt
index da5a3debce468fcb827fb07c73ed7764b29a8e7f..596cccdd2f99b21c60c0f85f753ffb39907a3dfb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -154,7 +154,8 @@ option(OGS_COVERAGE "Enables code coverage measurements with gcov/lcov." OFF)
 option(OGS_SYNC_SUBMODULES "Sync git submodules on CMake run. Overwrites custom URLs!" ON)
 
 # Packaging
-option(OGS_DOWNLOAD_ADDITIONAL_CONTENT "Should addional content such as manuals be downloaded and packaged?" OFF)
+option(OGS_DOWNLOAD_ADDITIONAL_CONTENT "Should additional content such as manuals be downloaded and packaged?" OFF)
+option(OGS_PACKAGE_DEPENDENCIES "Packages shared libraries when enabled." OFF)
 include(scripts/cmake/packaging/Pack.cmake)
 
 # Third-party libraries, names come from Conan package names
diff --git a/scripts/cmake/CMakeSetup.cmake b/scripts/cmake/CMakeSetup.cmake
index 87dcfe20d493e5e4d7915fee8c3ed86ac9358800..81f7e34675823be64f09e028ba0368c2f267471a 100644
--- a/scripts/cmake/CMakeSetup.cmake
+++ b/scripts/cmake/CMakeSetup.cmake
@@ -18,7 +18,7 @@ if(NOT PROJECT_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
     set(OGS_BUILD_CLI OFF CACHE BOOL "" FORCE)
 endif()
 
-if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+if(NOT CMAKE_BUILD_TYPE AND (NOT CMAKE_CONFIGURATION_TYPES OR OGS_USE_CONAN))
     message(STATUS "Setting build type to 'Debug' as none was specified.")
     set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build." FORCE)
     set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
diff --git a/scripts/cmake/CompilerSetup.cmake b/scripts/cmake/CompilerSetup.cmake
index e7cda0f899a168dd606f2af25b3f5e1dc8636043..e8f69dfb66c1b73a6f8cc1c2845452756fcdd82f 100644
--- a/scripts/cmake/CompilerSetup.cmake
+++ b/scripts/cmake/CompilerSetup.cmake
@@ -1,7 +1,5 @@
 include(ResetConfigurations)        # To Debug, Release, RelWithDebInfo
-include(SetDefaultBuildType)
 include(DisableCompilerFlag)
-SET_DEFAULT_BUILD_TYPE(Debug)
 include(MSVCMultipleProcessCompile) # /MP switch (multi processor) for VS
 set(CMAKE_OSX_ARCHITECTURES "x86_64")
 
@@ -138,8 +136,6 @@ if(WIN32)
         set(CMAKE_CXX_FLAGS_RELWITHDEBINFO  "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} \
             /ZI /Od /Ob0")
 
-        set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
-
         DisableCompilerFlag(DEBUG /RTC1)
     # cygwin
     else()
diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake
index 2af05fceeda6a67b7e7b905ab702b6f3132084c2..c25a6c86bac950ccc2767cbeb2f60f5970455b1a 100644
--- a/scripts/cmake/ConanSetup.cmake
+++ b/scripts/cmake/ConanSetup.cmake
@@ -2,6 +2,11 @@ if(NOT OGS_USE_CONAN)
     return()
 endif()
 
+if(CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
+    message(FATAL_ERROR "Multi-config generators are not yet supported when "
+        "using Conan. Specify CMAKE_BUILD_TYPE!")
+endif()
+
 set(OGS_QT_VERSION 5.6.2)
 if((${CMAKE_CXX_COMPILER_ID} STREQUAL AppleClang) AND
     (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 8.3))
diff --git a/scripts/cmake/conan/conan.cmake b/scripts/cmake/conan/conan.cmake
index 6b8e36d8137b27d8a3c33604e02696f74d052d81..6bf355531a07affb04a4165534a5e0943619c589 100644
--- a/scripts/cmake/conan/conan.cmake
+++ b/scripts/cmake/conan/conan.cmake
@@ -176,7 +176,7 @@ function(conan_cmake_detect_vs_runtime result)
     string(TOUPPER ${CMAKE_BUILD_TYPE} build_type)
     set(variables CMAKE_CXX_FLAGS_${build_type} CMAKE_C_FLAGS_${build_type} CMAKE_CXX_FLAGS CMAKE_C_FLAGS)
     foreach(variable ${variables})
-        string(REPLACE " " ";" flags ${variable})
+        string(REPLACE " " ";" flags ${${variable}})
         foreach (flag ${flags})
             if(${flag} STREQUAL "/MD" OR ${flag} STREQUAL "/MDd" OR ${flag} STREQUAL "/MT" OR ${flag} STREQUAL "/MTd")
                 string(SUBSTRING ${flag} 1 -1 runtime)
diff --git a/scripts/jenkins/gcc-conan.groovy b/scripts/jenkins/gcc-conan.groovy
index 9f9c99ce242198b61ccbedacf00798fc4d61ca8a..708a927e388c077bc398992973b832b15e442d58 100644
--- a/scripts/jenkins/gcc-conan.groovy
+++ b/scripts/jenkins/gcc-conan.groovy
@@ -4,7 +4,8 @@ def defaultDockerArgs = '-v /home/jenkins/.ccache:/usr/src/.ccache ' +
 def defaultCMakeOptions =
     '-DCMAKE_BUILD_TYPE=Release ' +
     '-DOGS_USE_CONAN=ON ' +
-    '-DOGS_CPU_ARCHITECTURE=generic '
+    '-DOGS_CPU_ARCHITECTURE=generic ' +
+    '-DOGS_PACKAGE_DEPENDENCIES=ON '
 
 def guiCMakeOptions =
     '-DOGS_BUILD_CLI=OFF ' +
diff --git a/scripts/jenkins/gcc.groovy b/scripts/jenkins/gcc.groovy
index aafb73e42a371d03b375d27f881a2a448cf9f87d..acac3702c0501cf8bfdd170fe21e71480e59c6b4 100644
--- a/scripts/jenkins/gcc.groovy
+++ b/scripts/jenkins/gcc.groovy
@@ -2,7 +2,8 @@ def defaultDockerArgs = '-v /home/jenkins/.ccache:/usr/src/.ccache'
 def defaultCMakeOptions =
     '-DCMAKE_BUILD_TYPE=Release ' +
     '-DOGS_CPU_ARCHITECTURE=generic ' +
-    '-DDOCS_GENERATE_LOGFILE=ON '
+    '-DDOCS_GENERATE_LOGFILE=ON ' +
+    '-DOGS_PACKAGE_DEPENDENCIES=ON '
 
 def guiCMakeOptions =
     '-DOGS_BUILD_CLI=OFF ' +
diff --git a/scripts/jenkins/msvc.groovy b/scripts/jenkins/msvc.groovy
index bce4f3d65528f5dcd8d319085913a00bfdada2a2..e589f0b8eb75f3685151facad480e365594344e0 100644
--- a/scripts/jenkins/msvc.groovy
+++ b/scripts/jenkins/msvc.groovy
@@ -1,7 +1,8 @@
 
 def defaultCMakeOptions =
     '-DOGS_USE_CONAN=ON ' +
-    '-DOGS_DOWNLOAD_ADDITIONAL_CONTENT=ON '
+    '-DOGS_DOWNLOAD_ADDITIONAL_CONTENT=ON ' +
+    '-DOGS_PACKAGE_DEPENDENCIES=ON '
 
 def guiCMakeOptions =
     '-DOGS_BUILD_GUI=ON ' +
diff --git a/scripts/jenkins/msvc32.groovy b/scripts/jenkins/msvc32.groovy
index 48ecb7f7aec908eadd2604e9d99de1a3dc9830b6..d9a512331191152404b69bfe1bd7c5f252c2bbf7 100644
--- a/scripts/jenkins/msvc32.groovy
+++ b/scripts/jenkins/msvc32.groovy
@@ -3,6 +3,7 @@ def defaultCMakeOptions =
     '-DOGS_USE_CONAN=ON ' +
     '-DOGS_32_BIT=ON ' +
     '-DOGS_DOWNLOAD_ADDITIONAL_CONTENT=ON ' +
+    '-DOGS_PACKAGE_DEPENDENCIES=ON ' +
     '-DOGS_BUILD_GUI=ON ' +
     '-DOGS_BUILD_UTILS=OFF ' +
     '-DOGS_BUILD_TESTS=OFF ' +