diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9cee03c6a021ca8e65135bc3833f6030773f9afa..c0da5e442033d7261ca65d292162633edf849c17 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,9 +6,10 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
 
 
 set(CMAKE_MODULE_PATH
-    ${CMAKE_SOURCE_DIR}/cmake/generic/modules
-    ${CMAKE_SOURCE_DIR}/cmake/bornagain/modules)
-set(TEMPLATE_DIR ${CMAKE_SOURCE_DIR}/cmake/bornagain/scripts)
+    ${CMAKE_SOURCE_DIR}/cmake/modules    # CMake modules specific for BornAgain
+    ${CMAKE_SOURCE_DIR}/cmake/extensions # CMake modules for use in various projects
+    )
+set(CONFIGURABLES_DIR ${CMAKE_SOURCE_DIR}/cmake/configurables)
 
 include(PreventInSourceBuilds)
 
@@ -107,7 +108,7 @@ endif()
 add_subdirectory(Tests/Functional)
 
 # after-install message
-add_subdirectory(cmake/bornagain)
+add_subdirectory(cmake)
 
 # make package targets
 include(BornAgainCPack)
diff --git a/GUI/main/CMakeLists.txt b/GUI/main/CMakeLists.txt
index acaec2e6e2f5ff75da3866de898a2330373be1f7..bcf4a674a66bb3213fcdf8ae26e826fd6c4218f3 100644
--- a/GUI/main/CMakeLists.txt
+++ b/GUI/main/CMakeLists.txt
@@ -59,7 +59,7 @@ endif()
 
 if(APPLE)
     set(MACOSX_BUNDLE_IDENTIFIER "org.bornagainproject.BornAgain")
-    configure_file("${TEMPLATE_DIR}/MacOSXBundleInfo.plist.in" "${BUILD_VAR_DIR}/Info.plist" @ONLY)
+    configure_file("${CONFIGURABLES_DIR}/MacOSXBundleInfo.plist.in" "${BUILD_VAR_DIR}/Info.plist" @ONLY)
 
     set_target_properties(${executable_name}
         PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${BUILD_VAR_DIR}/Info.plist)
@@ -104,10 +104,10 @@ if(UNIX)
         install( FILES ${CMAKE_SOURCE_DIR}/GUI/main/BornAgain.icns
             DESTINATION ${destination_bundle}/Contents/Resources/
         )
-        install( FILES ${CMAKE_SOURCE_DIR}/cmake/bornagain/scripts/qt.conf
+        install( FILES ${CMAKE_SOURCE_DIR}/cmake/configurables/qt.conf
             DESTINATION ${destination_bundle}/Contents/Resources/
         )
-        configure_file(${CMAKE_SOURCE_DIR}/cmake/bornagain/modules/FixAppleBundle.cmake.in
+        configure_file(${CMAKE_SOURCE_DIR}/cmake/configurables/FixAppleBundle.cmake.in
                        ${BUILD_VAR_DIR}/FixAppleBundle.cmake @ONLY)
         install(SCRIPT ${BUILD_VAR_DIR}/FixAppleBundle.cmake COMPONENT Runtime)
     elseif(WIN32)
diff --git a/cmake/bornagain/CMakeLists.txt b/cmake/CMakeLists.txt
similarity index 94%
rename from cmake/bornagain/CMakeLists.txt
rename to cmake/CMakeLists.txt
index 36cabf1e645a216f63c3d57ddf816f00d70e635d..d698fadc9a907469e27569ba514ff19c7750844e 100644
--- a/cmake/bornagain/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -21,5 +21,5 @@ install(CODE "MESSAGE(\"${after_install_text}\")")
 endif()
 
 # to show files in Qt creator
-FILE(GLOB_RECURSE ScriptFiles "scripts/*.*")
+FILE(GLOB_RECURSE ScriptFiles "configurables/*.*")
 add_custom_target(scripts SOURCES ${ScriptFiles})
diff --git a/cmake/bornagain/scripts/BABuild.h.in b/cmake/configurables/BABuild.h.in
similarity index 100%
rename from cmake/bornagain/scripts/BABuild.h.in
rename to cmake/configurables/BABuild.h.in
diff --git a/cmake/bornagain/scripts/BATesting.h.in b/cmake/configurables/BATesting.h.in
similarity index 100%
rename from cmake/bornagain/scripts/BATesting.h.in
rename to cmake/configurables/BATesting.h.in
diff --git a/cmake/bornagain/scripts/BAVersion.h.in b/cmake/configurables/BAVersion.h.in
similarity index 100%
rename from cmake/bornagain/scripts/BAVersion.h.in
rename to cmake/configurables/BAVersion.h.in
diff --git a/cmake/bornagain/scripts/CTestCustom.cmake.in b/cmake/configurables/CTestCustom.cmake.in
similarity index 100%
rename from cmake/bornagain/scripts/CTestCustom.cmake.in
rename to cmake/configurables/CTestCustom.cmake.in
diff --git a/cmake/bornagain/scripts/FindBornAgain.cmake.in b/cmake/configurables/FindBornAgain.cmake.in
similarity index 100%
rename from cmake/bornagain/scripts/FindBornAgain.cmake.in
rename to cmake/configurables/FindBornAgain.cmake.in
diff --git a/cmake/bornagain/modules/FixAppleBundle.cmake.in b/cmake/configurables/FixAppleBundle.cmake.in
similarity index 100%
rename from cmake/bornagain/modules/FixAppleBundle.cmake.in
rename to cmake/configurables/FixAppleBundle.cmake.in
diff --git a/cmake/bornagain/scripts/MacOSXBundleInfo.plist.in b/cmake/configurables/MacOSXBundleInfo.plist.in
similarity index 100%
rename from cmake/bornagain/scripts/MacOSXBundleInfo.plist.in
rename to cmake/configurables/MacOSXBundleInfo.plist.in
diff --git a/cmake/bornagain/scripts/auto_README.in b/cmake/configurables/auto_README.in
similarity index 100%
rename from cmake/bornagain/scripts/auto_README.in
rename to cmake/configurables/auto_README.in
diff --git a/cmake/bornagain/scripts/fix_apple_bundle.py b/cmake/configurables/fix_apple_bundle.py
similarity index 100%
rename from cmake/bornagain/scripts/fix_apple_bundle.py
rename to cmake/configurables/fix_apple_bundle.py
diff --git a/cmake/bornagain/scripts/postinst.in b/cmake/configurables/postinst.in
similarity index 100%
rename from cmake/bornagain/scripts/postinst.in
rename to cmake/configurables/postinst.in
diff --git a/cmake/bornagain/scripts/prerm.in b/cmake/configurables/prerm.in
similarity index 100%
rename from cmake/bornagain/scripts/prerm.in
rename to cmake/configurables/prerm.in
diff --git a/cmake/bornagain/scripts/qt.conf b/cmake/configurables/qt.conf
similarity index 100%
rename from cmake/bornagain/scripts/qt.conf
rename to cmake/configurables/qt.conf
diff --git a/cmake/bornagain/scripts/thisbornagain.csh.in b/cmake/configurables/thisbornagain.csh.in
similarity index 100%
rename from cmake/bornagain/scripts/thisbornagain.csh.in
rename to cmake/configurables/thisbornagain.csh.in
diff --git a/cmake/bornagain/scripts/thisbornagain.sh.in b/cmake/configurables/thisbornagain.sh.in
similarity index 100%
rename from cmake/bornagain/scripts/thisbornagain.sh.in
rename to cmake/configurables/thisbornagain.sh.in
diff --git a/cmake/generic/modules/CheckCoverage.cmake b/cmake/extensions/CheckCoverage.cmake
similarity index 100%
rename from cmake/generic/modules/CheckCoverage.cmake
rename to cmake/extensions/CheckCoverage.cmake
diff --git a/cmake/generic/modules/DebugOptimization.cmake b/cmake/extensions/DebugOptimization.cmake
similarity index 100%
rename from cmake/generic/modules/DebugOptimization.cmake
rename to cmake/extensions/DebugOptimization.cmake
diff --git a/cmake/generic/modules/FindFFTW3.cmake b/cmake/extensions/FindFFTW3.cmake
similarity index 100%
rename from cmake/generic/modules/FindFFTW3.cmake
rename to cmake/extensions/FindFFTW3.cmake
diff --git a/cmake/generic/modules/FindTIFF.cmake b/cmake/extensions/FindTIFF.cmake
similarity index 100%
rename from cmake/generic/modules/FindTIFF.cmake
rename to cmake/extensions/FindTIFF.cmake
diff --git a/cmake/generic/modules/GetFilenameComponent.cmake b/cmake/extensions/GetFilenameComponent.cmake
similarity index 100%
rename from cmake/generic/modules/GetFilenameComponent.cmake
rename to cmake/extensions/GetFilenameComponent.cmake
diff --git a/cmake/generic/modules/GlobDirectories.cmake b/cmake/extensions/GlobDirectories.cmake
similarity index 100%
rename from cmake/generic/modules/GlobDirectories.cmake
rename to cmake/extensions/GlobDirectories.cmake
diff --git a/cmake/generic/modules/PreventInSourceBuilds.cmake b/cmake/extensions/PreventInSourceBuilds.cmake
similarity index 100%
rename from cmake/generic/modules/PreventInSourceBuilds.cmake
rename to cmake/extensions/PreventInSourceBuilds.cmake
diff --git a/cmake/bornagain/modules/BornAgainCPack.cmake b/cmake/modules/BornAgainCPack.cmake
similarity index 100%
rename from cmake/bornagain/modules/BornAgainCPack.cmake
rename to cmake/modules/BornAgainCPack.cmake
diff --git a/cmake/bornagain/modules/BornAgainConfiguration.cmake b/cmake/modules/BornAgainConfiguration.cmake
similarity index 88%
rename from cmake/bornagain/modules/BornAgainConfiguration.cmake
rename to cmake/modules/BornAgainConfiguration.cmake
index 7423b73057415f530a4f053c9d6ae358737caa48..c72f0f5b92d94dd08d72a2e4095f4addd4dd6a07 100644
--- a/cmake/bornagain/modules/BornAgainConfiguration.cmake
+++ b/cmake/modules/BornAgainConfiguration.cmake
@@ -32,7 +32,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
 set(BUILD_VAR_DIR ${CMAKE_BINARY_DIR}/var)
 set(BUILD_INC_DIR ${CMAKE_BINARY_DIR}/inc)
 set(BUILD_SRC_DIR ${CMAKE_BINARY_DIR}/src)
-configure_file("${TEMPLATE_DIR}/auto_README.in" "${CMAKE_SOURCE_DIR}/auto/README" @ONLY)
+configure_file("${CONFIGURABLES_DIR}/auto_README.in" "${CMAKE_SOURCE_DIR}/auto/README" @ONLY)
 
 file(MAKE_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
 file(MAKE_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/bornagain)
@@ -107,7 +107,7 @@ message(STATUS "Destination directories:
 # configure files
 # -----------------------------------------------------------------------------
 
-configure_file(${TEMPLATE_DIR}/CTestCustom.cmake.in ${CMAKE_BINARY_DIR}/CTestCustom.cmake)
+configure_file(${CONFIGURABLES_DIR}/CTestCustom.cmake.in ${CMAKE_BINARY_DIR}/CTestCustom.cmake)
 
 if (WIN32)
     # Necessary to provide correct slashes in BABuild.h
@@ -119,9 +119,9 @@ if (WIN32)
     file(TO_CMAKE_PATH ${Python_SITELIB} Python_SITELIB)
 endif()
 
-configure_file(${TEMPLATE_DIR}/BAVersion.h.in  ${BUILD_INC_DIR}/BAVersion.h @ONLY)
-configure_file(${TEMPLATE_DIR}/BABuild.h.in  ${BUILD_INC_DIR}/BABuild.h @ONLY)
-configure_file(${TEMPLATE_DIR}/BATesting.h.in  ${BUILD_INC_DIR}/BATesting.h @ONLY)
+configure_file(${CONFIGURABLES_DIR}/BAVersion.h.in  ${BUILD_INC_DIR}/BAVersion.h @ONLY)
+configure_file(${CONFIGURABLES_DIR}/BABuild.h.in  ${BUILD_INC_DIR}/BABuild.h @ONLY)
+configure_file(${CONFIGURABLES_DIR}/BATesting.h.in  ${BUILD_INC_DIR}/BATesting.h @ONLY)
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${BUILD_INC_DIR}")
 
 configure_file(${CMAKE_SOURCE_DIR}/Examples/python/utils/plot_intensity_data.py
@@ -135,9 +135,9 @@ configure_file(${CMAKE_SOURCE_DIR}/Examples/python/utils/plot_intensity_data_dif
 
 set(this_bindir $BORNAGAINSYS/bin)
 set(this_libdir $BORNAGAINSYS/lib/${destination_suffix})
-configure_file(${TEMPLATE_DIR}/thisbornagain.sh.in
+configure_file(${CONFIGURABLES_DIR}/thisbornagain.sh.in
     ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/thisbornagain.sh @ONLY)
-configure_file(${TEMPLATE_DIR}/thisbornagain.csh.in
+configure_file(${CONFIGURABLES_DIR}/thisbornagain.csh.in
     ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/thisbornagain.csh @ONLY)
 
 # -----------------------------------------------------------------------------
@@ -146,7 +146,7 @@ configure_file(${TEMPLATE_DIR}/thisbornagain.csh.in
 
 if(BUILD_DEBIAN)
     set(CMAKE_INSTALL_PREFIX "/usr")
-    configure_file(${TEMPLATE_DIR}/postinst.in ${BUILD_VAR_DIR}/postinst @ONLY)
-    configure_file(${TEMPLATE_DIR}/prerm.in ${BUILD_VAR_DIR}/prerm @ONLY)
+    configure_file(${CONFIGURABLES_DIR}/postinst.in ${BUILD_VAR_DIR}/postinst @ONLY)
+    configure_file(${CONFIGURABLES_DIR}/prerm.in ${BUILD_VAR_DIR}/prerm @ONLY)
     set(CMAKE_INSTALL_RPATH \$ORIGIN/../;\$ORIGIN/../../lib/${destination_suffix})
 endif(BUILD_DEBIAN)
diff --git a/cmake/bornagain/modules/BornAgainPolicy.cmake b/cmake/modules/BornAgainPolicy.cmake
similarity index 100%
rename from cmake/bornagain/modules/BornAgainPolicy.cmake
rename to cmake/modules/BornAgainPolicy.cmake
diff --git a/cmake/bornagain/modules/CPackApple.cmake b/cmake/modules/CPackApple.cmake
similarity index 100%
rename from cmake/bornagain/modules/CPackApple.cmake
rename to cmake/modules/CPackApple.cmake
diff --git a/cmake/bornagain/modules/CPackDebian.cmake b/cmake/modules/CPackDebian.cmake
similarity index 100%
rename from cmake/bornagain/modules/CPackDebian.cmake
rename to cmake/modules/CPackDebian.cmake
diff --git a/cmake/bornagain/modules/CPackWindows.cmake b/cmake/modules/CPackWindows.cmake
similarity index 100%
rename from cmake/bornagain/modules/CPackWindows.cmake
rename to cmake/modules/CPackWindows.cmake
diff --git a/cmake/bornagain/modules/CheckCode.cmake b/cmake/modules/CheckCode.cmake
similarity index 100%
rename from cmake/bornagain/modules/CheckCode.cmake
rename to cmake/modules/CheckCode.cmake
diff --git a/cmake/bornagain/modules/CheckCompiler.cmake b/cmake/modules/CheckCompiler.cmake
similarity index 100%
rename from cmake/bornagain/modules/CheckCompiler.cmake
rename to cmake/modules/CheckCompiler.cmake
diff --git a/cmake/bornagain/modules/GeneratePythonDocs.cmake b/cmake/modules/GeneratePythonDocs.cmake
similarity index 100%
rename from cmake/bornagain/modules/GeneratePythonDocs.cmake
rename to cmake/modules/GeneratePythonDocs.cmake
diff --git a/cmake/bornagain/modules/NSIS.InstallOptions.ini.in b/cmake/modules/NSIS.InstallOptions.ini.in
similarity index 100%
rename from cmake/bornagain/modules/NSIS.InstallOptions.ini.in
rename to cmake/modules/NSIS.InstallOptions.ini.in
diff --git a/cmake/bornagain/modules/NSIS.template.in b/cmake/modules/NSIS.template.in
similarity index 100%
rename from cmake/bornagain/modules/NSIS.template.in
rename to cmake/modules/NSIS.template.in
diff --git a/cmake/bornagain/modules/PyExamplesLineLength.cmake b/cmake/modules/PyExamplesLineLength.cmake
similarity index 100%
rename from cmake/bornagain/modules/PyExamplesLineLength.cmake
rename to cmake/modules/PyExamplesLineLength.cmake
diff --git a/cmake/bornagain/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake
similarity index 100%
rename from cmake/bornagain/modules/SearchInstalledSoftware.cmake
rename to cmake/modules/SearchInstalledSoftware.cmake
diff --git a/cmake/bornagain/modules/SearchQt.cmake b/cmake/modules/SearchQt.cmake
similarity index 100%
rename from cmake/bornagain/modules/SearchQt.cmake
rename to cmake/modules/SearchQt.cmake
diff --git a/cmake/bornagain/modules/SetUpLinux.cmake b/cmake/modules/SetUpLinux.cmake
similarity index 100%
rename from cmake/bornagain/modules/SetUpLinux.cmake
rename to cmake/modules/SetUpLinux.cmake
diff --git a/cmake/bornagain/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
similarity index 100%
rename from cmake/bornagain/modules/SetUpMacOS.cmake
rename to cmake/modules/SetUpMacOS.cmake
diff --git a/cmake/bornagain/modules/SetUpWindows.cmake b/cmake/modules/SetUpWindows.cmake
similarity index 100%
rename from cmake/bornagain/modules/SetUpWindows.cmake
rename to cmake/modules/SetUpWindows.cmake
diff --git a/cmake/bornagain/modules/SetupCoverage.cmake b/cmake/modules/SetupCoverage.cmake
similarity index 100%
rename from cmake/bornagain/modules/SetupCoverage.cmake
rename to cmake/modules/SetupCoverage.cmake