diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5154d7eeb7478a1060e616ba36f2b5187b91623e..1df240df14768fffcb0a007629e87342333da29a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,10 @@ set(VegaFEM_VERSION 2.0)
 cmake_minimum_required(VERSION 2.8)
 if(COMMAND CMAKE_POLICY)
   cmake_policy(SET CMP0003 NEW)
+  if (POLICY CMP0022)
+    # Use INTERFACE_LINK_LIBRARIES when available.
+    cmake_policy(SET CMP0022 NEW)
+  endif()
   if (POLICY CMP0042)
     cmake_policy(SET CMP0042 NEW)
   endif()
@@ -27,8 +31,9 @@ include(CMakePackageConfigHelpers)
 include(VegaFEMMacros)
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE OFF)
+option(VegaFEM_BUILD_UTILITIES "Build utility applications in addition to libraries." ON)
 option(VegaFEM_BUILD_MODEL_REDUCTION "Should model-reduction techniques be included?" ON)
-option(VegaFEM_ENABLE_ExpoKit_SUPPORT "Should matrix classes use ExpoKit for exponentiation?" OFF) 
+option(VegaFEM_ENABLE_ExpoKit_SUPPORT "Should matrix classes use ExpoKit for exponentiation?" OFF)
 # TODO: define USE_EXPOKIT if enabled
 option(VegaFEM_ENABLE_OpenGL_SUPPORT "Should modules that require OpenGL be enabled?" ON)
 option(VegaFEM_ENABLE_PTHREADS_SUPPORT "Use multithreading (pthread)" ON)
@@ -66,9 +71,6 @@ set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
 # directories outside the build tree to the install RPATH
 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
 
-# build utilities
-option(BUILD_UTILITIES "Build utility applications." ON)
-
 # Set directory variables
 if(NOT BIN_DIR)
   set(BIN_DIR bin)
@@ -182,7 +184,7 @@ if (VegaFEM_BUILD_MODEL_REDUCTION)
       find_package(LAPACKE REQUIRED) # Also searches for cblas
       include_directories(${LAPACKE_INCLUDE_DIR})
       include_directories(${CBLAS_INCLUDE_DIR})
-    endif() 
+    endif()
   endif()
   find_package(LAPACK) # Also searches for blas
 endif()
diff --git a/appveyor.yml b/appveyor.yml
index 17f73dd4b78d872a2d429b2e513b6fcdf650b102..5c78af4c423b1753ff189e6fc73a351eb492debf 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -34,7 +34,7 @@ build_script:
  - cmd: mkdir build
  - cmd: cd build
    # Run CMake on the source and build
- - cmd: cmake .. -Wdev --warn-uninitialized -G "%GENERATOR%" -D"VegaFEM_BUILD_MODEL_REDUCTION:BOOL=OFF" -D"VegaFEM_ENABLE_PTHREADS_SUPPORT:BOOL=OFF" -D"VegaFEM_ENABLE_OpenGL_SUPPORT:BOOL=OFF"
+ - cmd: cmake .. -Wdev --warn-uninitialized -G "%GENERATOR%" -D"VegaFEM_BUILD_MODEL_REDUCTION:BOOL=OFF" -D"VegaFEM_ENABLE_PTHREADS_SUPPORT:BOOL=OFF" -D"VegaFEM_ENABLE_OpenGL_SUPPORT:BOOL=OFF" -D"VegaFEM_BUILD_UTILITIES:BOOL=ON"
  - cmd: cmake --build .
 
 test_script:
diff --git a/src/libmassSpringSystem/CMakeLists.txt b/src/libmassSpringSystem/CMakeLists.txt
index 92f80e6b4e328a14e0ad33b6642c42daf811c037..a1d5f35358d9abb1b1785075fd672cc5f227094b 100644
--- a/src/libmassSpringSystem/CMakeLists.txt
+++ b/src/libmassSpringSystem/CMakeLists.txt
@@ -3,7 +3,6 @@ set(massspringsystem_srcs
   massSpringSystemFromObjMesh.cpp
   massSpringSystemFromTetMeshConfigFile.cpp
   massSpringSystemFromTetMesh.cpp
-  massSpringSystemMT.cpp
   massSpringSystem.cpp
   massSpringSystemFromCubicMesh.cpp
   massSpringSystemFromCubicMeshConfigFile.cpp
diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt
index e0ecbec4b6595464f0ca1f27672bc26e95db5444..08d85b8362c11b10d3040c85aa253ff883b601d0 100644
--- a/src/util/CMakeLists.txt
+++ b/src/util/CMakeLists.txt
@@ -1,10 +1,11 @@
-
-if(VegaFEM_BUILD_MODEL_REDUCTION)
+if (VegaFEM_BUILD_MODEL_REDUCTION)
   add_subdirectory(largeModalDeformationFactory)
-  if(VegaFEM_ENABLE_Cg_SUPPORT)
+  if (VegaFEM_ENABLE_Cg_SUPPORT)
     add_subdirectory(reducedDynamicSolver-rt)
   endif()
-endif(VegaFEM_BUILD_MODEL_REDUCTION)
-add_subdirectory(displayObj)
-add_subdirectory(interactiveDeformableSimulator)
+endif()
+if (VegaFEM_ENABLE_OpenGL_SUPPORT)
+  add_subdirectory(displayObj)
+  add_subdirectory(interactiveDeformableSimulator)
+endif()
 add_subdirectory(volumetricMeshUtilities)