diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt
index d1c06e63cdf8b46e9ad1b511f03867d02341b980..2662a8f5298edcb5a6e9d9fd3ae80f6c0b932e67 100644
--- a/Core/CMakeLists.txt
+++ b/Core/CMakeLists.txt
@@ -18,9 +18,10 @@ if(${Cerf_IS_CPP})
     string(APPEND CMAKE_CXX_FLAGS " -DCERF_AS_CPP=ON")
 endif()
 
+# --- make the library ---
+
 MakeLib(${name} ${lib} ${CMAKE_CURRENT_BINARY_DIR}/Wrap)
 
-# exposing library name and list of include directories outside
 set(${lib}_LIBRARY ${lib} PARENT_SCOPE)
 
 # --- external dependencies ---
@@ -53,17 +54,3 @@ if(BORNAGAIN_MPI)
     include_directories(${MPI_INCLUDE_PATH})
     target_link_libraries(${lib} ${MPI_LIBRARIES})
 endif()
-
-if(APPLE AND BORNAGAIN_APPLE_BUNDLE)
-    set(link_flags "-Wl,-rpath,@loader_path/../../Frameworks")
-    set_target_properties(${lib} PROPERTIES LINK_FLAGS ${link_flags})
-endif()
-
-# --- installation ---
-
-install(TARGETS ${lib} DESTINATION ${destination_lib} COMPONENT Libraries)
-
-foreach(file ${include_files})
-    get_filename_component(dir ${file} DIRECTORY)
-    install(FILES ${file} DESTINATION ${destination_include}/${name}/${dir})
-endforeach()
diff --git a/Fit/CMakeLists.txt b/Fit/CMakeLists.txt
index 710583e208619c170f258cd0df1aa49c214ee5ff..69323b661196b7a44098d2c9e3fc9988a543d10d 100644
--- a/Fit/CMakeLists.txt
+++ b/Fit/CMakeLists.txt
@@ -10,21 +10,10 @@ set(lib BornAgain${name})
 file(GLOB source_files */*.cpp)
 file(GLOB include_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} */*.h)
 
-if(BORNAGAIN_PYTHON)
-    list(APPEND source_files "${AUTO_DIR}/lib${lib}_wrap.cpp")
-endif()
+# --- make the library ---
 
-# --- making library ---
+MakeLib(${name} ${lib} ${CMAKE_CURRENT_BINARY_DIR}/Wrap)
 
-add_library(${lib} SHARED ${source_files})
-set_target_properties(${lib} PROPERTIES PREFIX ${libprefix} SUFFIX ${libsuffix})
-set(${lib}_LIBRARY_TYPE SHARED)
-
-if(BORNAGAIN_PYTHON)
-    SwigLib(${name} ${lib} ${CMAKE_CURRENT_BINARY_DIR}/Wrap)
-endif(BORNAGAIN_PYTHON)
-
-# exposing library name and list of include directories outside
 set(${lib}_LIBRARY ${lib} PARENT_SCOPE)
 
 # --- external dependencies ---
@@ -32,18 +21,3 @@ set(${lib}_LIBRARY ${lib} PARENT_SCOPE)
 target_include_directories(${lib}
     PUBLIC ${RootMinimizers_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR})
 target_link_libraries(${lib} ${RootMinimizers_LIBRARY} ${Boost_LIBRARIES})
-
-
-if(APPLE AND BORNAGAIN_APPLE_BUNDLE)
-    set(link_flags "-Wl,-rpath,@loader_path/../../Frameworks")
-    set_target_properties(${lib} PROPERTIES LINK_FLAGS ${link_flags})
-endif()
-
-# --- installation ---
-
-install(TARGETS ${lib} DESTINATION ${destination_lib} COMPONENT Libraries)
-
-foreach(file ${include_files})
-    get_filename_component(dir ${file} DIRECTORY)
-    install(FILES ${file} DESTINATION ${destination_include}/${name}/${dir})
-endforeach()
diff --git a/cmake/BornAgain/MakeLib.cmake b/cmake/BornAgain/MakeLib.cmake
index c002122e899c431412de6960ac63b4649404f4db..cc23dd01b799f6a5efc6bccf0e842c64eb9210c5 100644
--- a/cmake/BornAgain/MakeLib.cmake
+++ b/cmake/BornAgain/MakeLib.cmake
@@ -3,12 +3,24 @@ function(MakeLib name lib tmpdir)
     if(BORNAGAIN_PYTHON)
         list(APPEND source_files "${AUTO_DIR}/lib${lib}_wrap.cpp")
     endif()
+
     add_library(${lib} SHARED ${source_files})
     set_target_properties(${lib} PROPERTIES PREFIX ${libprefix} SUFFIX ${libsuffix})
+    if(APPLE AND BORNAGAIN_APPLE_BUNDLE)
+        set(link_flags "-Wl,-rpath,@loader_path/../../Frameworks")
+        set_target_properties(${lib} PROPERTIES LINK_FLAGS ${link_flags})
+    endif()
+
     set(${lib}_LIBRARY_TYPE SHARED)
 
     if(BORNAGAIN_PYTHON)
         SwigLib(${name} ${lib} ${tmpdir})
     endif(BORNAGAIN_PYTHON)
 
+    install(TARGETS ${lib} DESTINATION ${destination_lib} COMPONENT Libraries)
+    foreach(file ${include_files})
+        get_filename_component(dir ${file} DIRECTORY)
+        install(FILES ${file} DESTINATION ${destination_include}/${name}/${dir})
+    endforeach()
+
 endfunction()