diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7ff44a9e54b0b06993fe290aa7a02b7b85abe90d..5cbcf50f23e4a28060bdbd465c9ca71e1b19fd16 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,6 +9,18 @@ if( NOT DEFINED ITA_CONVOLUTION_UPCONV_WITH_POWER_SAVER )
 	set( ITA_CONVOLUTION_UPCONV_WITH_POWER_SAVER ON CACHE BOOL "Use power saving mode for uniform partitioned convolution (do not convolve blocks with zeros)" )
 endif( )
 
+if( NOT DEFINED ITA_CONVOLUTION_WITH_NUPCONV )
+	set( ITA_CONVOLUTION_WITH_NUPCONV OFF CACHE BOOL "Build with non-uniform partitioned convolution engine" )
+endif( )
+
+if( NOT DEFINED ITA_CONVOLUTION_NUPCONV_WITH_PERFORMANCE_LOGGER )
+	set( ITA_CONVOLUTION_NUPCONV_WITH_PERFORMANCE_LOGGER OFF CACHE BOOL "Include performance logger for non-uniform partitioned convolution" )
+endif( )
+
+if( NOT DEFINED ITA_CONVOLUTION_NUPCONV_WITH_XML_READER )
+	set( ITA_CONVOLUTION_NUPCONV_WITH_XML_READER OFF CACHE BOOL "Include XML read/write file format for non-uniform partitioned convolution filter segmentation" )
+endif( )
+
 # dependencies
 vista_use_package( ITABase REQUIRED FIND_DEPENDENCIES )
 vista_use_package( ITAFFT REQUIRED FIND_DEPENDENCIES )
@@ -34,8 +46,12 @@ set( ITAConvolutionSources
 	"src/ITADirectConvolution.cpp"
 	"src/ITADirectConvolutionImpl.cpp"
 	"src/ITADirectConvolutionImpl.h"
-	)	
+	)
 
+if( ITA_CONVOLUTION_WITH_NUPCONV )
+	list( APPEND ITAConvolutionHeader "include/LLC.h" "include/LLCDefinitions.h" "include/LLCFilter.h" )
+	include( "src/LLC/_SourceFiles.cmake" )
+endif( )
 
 # compiler settings
 if( ITA_VISTA_BUILD_STATIC )
@@ -51,13 +67,17 @@ if( NOT WIN32 )
 	add_definitions( -std=gnu++11)
 endif( )
 
-if( ITA_CONVOLUTION_UPCONV_WITH_POWER_SAVER )
-	add_definitions( -DITA_CONVOLUTION_UPCONV_WITH_POWER_SAVER )
+if( ITA_CONVOLUTION_NUPCONV_WITH_PERFORMANCE_LOGGER )
+	add_definitions( -DITA_CONVOLUTION_NUPCONV_WITH_PERFORMANCE_LOGGER )
+endif( )
+
+if( ITA_CONVOLUTION_NUPCONV_WITH_XML_READER )
+	add_definitions( -DITA_CONVOLUTION_NUPCONV_WITH_XML_READER )
 endif( )
 
 
 # linker
-add_library( ITAConvolution ${ITAConvolutionHeader} ${ITAConvolutionSources} )
+add_library( ITAConvolution ${ITAConvolutionHeader} ${ITAConvolutionSources} ${ProjectSources} )
 target_link_libraries( ITAConvolution ${VISTA_USE_PACKAGE_LIBRARIES} )