diff --git a/CMakeLists.txt b/CMakeLists.txt
index b2dd02fb1b1b279112aa36f10c5aef58c5babce2..e7527c64ebf91f69d2ce0a78e1daa904cc210ffc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -439,6 +439,10 @@ if(ENABLE_LIBWRAP)
     ${LIBCLIENT_SRC_DIR}/qtwrapper/instancemanager_wrap.h)
 endif()
 
+set(BUILD_SFPM_PIC ON CACHE BOOL "enable -fPIC for SFPM" FORCE)
+add_subdirectory(3rdparty/SortFilterProxyModel)
+set(SFPM_OBJECTS $<TARGET_OBJECTS:SortFilterProxyModel>)
+
 # common executable sources
 qt_add_executable(
   ${PROJECT_NAME}
@@ -448,7 +452,8 @@ qt_add_executable(
   ${COMMON_SOURCES}
   ${QML_RESOURCES}
   ${QML_RESOURCES_QML}
-  ${LIBCLIENT_SRC_DIR}/webresource.qrc)
+  ${LIBCLIENT_SRC_DIR}/webresource.qrc
+  ${SFPM_OBJECTS})
 
 foreach(MODULE ${QT_MODULES})
   list(APPEND QT_LIBS "Qt::${MODULE}")