diff --git a/Applications/DataExplorer/CMakeLists.txt b/Applications/DataExplorer/CMakeLists.txt
index 4d04c84c4509c1a0c331f2f5547a69f52313a369..6f21ada93accf4a6c35cd9f779e472bbf9e31898 100644
--- a/Applications/DataExplorer/CMakeLists.txt
+++ b/Applications/DataExplorer/CMakeLists.txt
@@ -7,10 +7,6 @@ if(VTKFBXCONVERTER_FOUND)
     include_directories(${VTKFBXCONVERTER_INCLUDE_DIRS})
 endif()
 
-set(CMAKE_AUTOMOC TRUE)
-set(CMAKE_AUTOUIC TRUE)
-set(CMAKE_AUTORCC TRUE)
-
 # Add subprojects
 add_subdirectory(Base)
 add_subdirectory(DataView/StratView)
diff --git a/Applications/Utils/OGSFileConverter/CMakeLists.txt b/Applications/Utils/OGSFileConverter/CMakeLists.txt
index 0302190c9f185b605dc507734752482fb4a4baa5..36408229a68f6d08087e620fdc481e7027a2f2d6 100644
--- a/Applications/Utils/OGSFileConverter/CMakeLists.txt
+++ b/Applications/Utils/OGSFileConverter/CMakeLists.txt
@@ -1,31 +1,19 @@
-cmake_minimum_required(VERSION 2.8.6)
-
-project(OGSFileConverter)
-
-cmake_policy(SET CMP0020 NEW)
-
-set(CMAKE_AUTOMOC TRUE)
-set(CMAKE_AUTOUIC TRUE)
-set(CMAKE_AUTORCC TRUE)
-
 set(SOURCES
     FileListDialog.cpp
     OGSFileConverter.cpp
 )
 
-find_package(Qt5 QUIET REQUIRED Gui Widgets Xml XmlPatterns)
-
 include_directories(
-    ${CMAKE_SOURCE_DIR}/BaseLib
-    ${CMAKE_SOURCE_DIR}/FileIO
-    ${CMAKE_SOURCE_DIR}/GeoLib
-    ${CMAKE_SOURCE_DIR}/MeshLib
-    ${CMAKE_SOURCE_DIR}/Applications/DataExplorer/Base
-    ${CMAKE_SOURCE_DIR}/Applications/DataExplorer/DataView
-    ${CMAKE_SOURCE_DIR}/Applications/DataExplorer/VtkVis
+    ${PROJECT_SOURCE_DIR}/BaseLib
+    ${PROJECT_SOURCE_DIR}/FileIO
+    ${PROJECT_SOURCE_DIR}/GeoLib
+    ${PROJECT_SOURCE_DIR}/MeshLib
+    ${PROJECT_SOURCE_DIR}/Applications/DataExplorer/Base
+    ${PROJECT_SOURCE_DIR}/Applications/DataExplorer/DataView
+    ${PROJECT_SOURCE_DIR}/Applications/DataExplorer/VtkVis
 
     # Qt generated file includes
-    ${CMAKE_BINARY_DIR}/Applications/Utils/OGSFileConverter
+    ${CMAKE_CURRENT_BINARY_DIR}
 
     # Workaround for CMake 3.8
     ${CMAKE_CURRENT_BINARY_DIR}/OGSFileConverterLib_autogen/include
@@ -52,10 +40,6 @@ target_link_libraries(OGSFileConverter
     GeoLib)
 ADD_VTK_DEPENDENCY(OGSFileConverter)
 
-set(CMAKE_CONFIGURATION_TYPES "Release;Debug" CACHE TYPE INTERNAL FORCE)
-set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
-set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
-
 set_property(TARGET OGSFileConverter PROPERTY FOLDER "Utilities")
 
 if(OGS_USE_PCH)
diff --git a/Applications/Utils/SWMMConverter/CMakeLists.txt b/Applications/Utils/SWMMConverter/CMakeLists.txt
index d9a14ae8ac04d5b309f25dbc6e7380b049124fd0..3f7406ab17f5b159d02b6541cdc5878247576965 100644
--- a/Applications/Utils/SWMMConverter/CMakeLists.txt
+++ b/Applications/Utils/SWMMConverter/CMakeLists.txt
@@ -9,7 +9,7 @@ target_link_libraries(SWMMConverter
     SwmmInterface
 )
 
-include_directories( ${CMAKE_SOURCE_DIR}/Applications/FileIO )
+include_directories( ${PROJECT_SOURCE_DIR}/Applications/FileIO )
 
 ADD_VTK_DEPENDENCY(SWMMConverter)
 
diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in
index 7ed5a95e132d82cda5e2afd0d165f871f8a846d2..387b5f891d08c21894a53497f2c7e557a4ebc7dc 100644
--- a/Documentation/Doxyfile.in
+++ b/Documentation/Doxyfile.in
@@ -162,7 +162,7 @@ FULL_PATH_NAMES        = YES
 # will be relative from the directory where doxygen is started.
 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
 
-STRIP_FROM_PATH        = ${CMAKE_SOURCE_DIR}
+STRIP_FROM_PATH        = ${PROJECT_SOURCE_DIR}
 
 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
 # path mentioned in the documentation of a class, which tells the reader which
@@ -700,10 +700,10 @@ FILE_VERSION_FILTER    =
 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
 # tag is left empty.
 
-LAYOUT_FILE            = ${CMAKE_SOURCE_DIR}/Documentation/DoxygenLayout.xml
+LAYOUT_FILE            = ${PROJECT_SOURCE_DIR}/Documentation/DoxygenLayout.xml
 
 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
-# the reference definitions. This must be a list of .bib files. The .bib
+# the reference definitions. This must be a list of .bib files The .bib
 # extension is automatically appended if omitted. This requires the bibtex tool
 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
 # For LaTeX the style of the bibliography can be controlled using
@@ -781,7 +781,7 @@ WARN_LOGFILE           = ${OGS_DOXYGEN_LOGFILE}
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = ${CMAKE_SOURCE_DIR}/ \
+INPUT                  = ${PROJECT_SOURCE_DIR}/ \
                          ${CMAKE_BINARY_DIR}/DocAux/dox
 
 # This tag can be used to specify the character encoding of the source files
@@ -825,11 +825,11 @@ RECURSIVE              = YES
 # Note that relative paths are relative to the directory from which doxygen is
 # run.
 
-EXCLUDE                = ${CMAKE_SOURCE_DIR}/ThirdParty \
-                         ${CMAKE_SOURCE_DIR}/scripts \
-                         ${CMAKE_SOURCE_DIR}/Tests \
-                         ${CMAKE_SOURCE_DIR}/Documentation/ProjectFile \
-                         ${CMAKE_SOURCE_DIR}/web \
+EXCLUDE                = ${PROJECT_SOURCE_DIR}/ThirdParty \
+                         ${PROJECT_SOURCE_DIR}/scripts \
+                         ${PROJECT_SOURCE_DIR}/Tests \
+                         ${PROJECT_SOURCE_DIR}/Documentation/ProjectFile \
+                         ${PROJECT_SOURCE_DIR}/web \
                          ${CMAKE_BINARY_DIR}/External
 
 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
@@ -885,7 +885,7 @@ EXAMPLE_RECURSIVE      = NO
 # that contain images that are to be included in the documentation (see the
 # \image command).
 
-IMAGE_PATH             = ${CMAKE_SOURCE_DIR}/Documentation/images
+IMAGE_PATH             = ${PROJECT_SOURCE_DIR}/Documentation/images
 
 # The INPUT_FILTER tag can be used to specify a program that doxygen should
 # invoke to filter for each input file. Doxygen will invoke the filter program
@@ -933,7 +933,7 @@ FILTER_SOURCE_PATTERNS =
 # (index.html). This can be useful if you have a project on for instance GitHub
 # and want to reuse the introduction page also for the doxygen output.
 
-USE_MDFILE_AS_MAINPAGE = ${CMAKE_SOURCE_DIR}/README.md
+USE_MDFILE_AS_MAINPAGE = ${PROJECT_SOURCE_DIR}/README.md
 
 #---------------------------------------------------------------------------
 # Configuration options related to source browsing
diff --git a/ThirdParty/CMakeLists.txt b/ThirdParty/CMakeLists.txt
index b4648795ebad85f0c84a546dc6f1defebab59f86..d16c5f0cde86a9160d155eace779dafbe14091da 100644
--- a/ThirdParty/CMakeLists.txt
+++ b/ThirdParty/CMakeLists.txt
@@ -40,13 +40,13 @@ endif()
 if(NOT TARGET vtkGUISupportQt AND OGS_BUILD_GUI)
     set(VTK_QT_VERSION 5 CACHE INTERNAL "")
     include_directories(SYSTEM ${VTK_INCLUDE_DIRS})
-    add_subdirectory(${CMAKE_SOURCE_DIR}/ThirdParty/vtkGUISupportQt)
+    add_subdirectory(vtkGUISupportQt)
 endif()
 
 if(OGS_BUILD_SWMM)
-    add_subdirectory(${CMAKE_SOURCE_DIR}/ThirdParty/SWMMInterface)
+    add_subdirectory(SWMMInterface)
 endif()
 
 if(OGS_BUILD_METIS)
-    include(${CMAKE_SOURCE_DIR}/scripts/cmake/MetisSetup.cmake)
+    include(${PROJECT_SOURCE_DIR}/scripts/cmake/MetisSetup.cmake)
 endif()
diff --git a/scripts/cmake/CMakeSetup.cmake b/scripts/cmake/CMakeSetup.cmake
index 4350954c6c0a849e3e63b2bb3e5d573e7cbf7be6..ce54b7ea0fcf9b09f85a8da83b5444de03412d48 100644
--- a/scripts/cmake/CMakeSetup.cmake
+++ b/scripts/cmake/CMakeSetup.cmake
@@ -16,7 +16,7 @@ ProcessorCount(NUM_PROCESSORS)
 set(NUM_PROCESSORS ${NUM_PROCESSORS} CACHE STRING "Processor count")
 
 # Check if this project is included in another
-if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+if(NOT PROJECT_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
     set(IS_SUBPROJECT ON CACHE INTERNAL "" FORCE)
     set(OGS_BUILD_CLI OFF CACHE BOOL "" FORCE)
 endif()
diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake
index a9e5f81ccd66c6a7957445ab60b5c3c75c0d0e33..914b14e37f6f0f28eb44d7b389c3fb9f4bad9896 100644
--- a/scripts/cmake/ConanSetup.cmake
+++ b/scripts/cmake/ConanSetup.cmake
@@ -1,21 +1,23 @@
 if($ENV{CONAN_INSTALL})
     find_program(CONAN_TOOL_PATH conan)
     if(CONAN_TOOL_PATH)
-        execute_process(COMMAND ${CONAN_TOOL_PATH} install -u ${CMAKE_CURRENT_SOURCE_DIR}
-            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+        execute_process(
+            COMMAND ${CONAN_TOOL_PATH} install -u ${PROJECT_SOURCE_DIR}
+            WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
+        )
     endif()
 endif()
 set(USE_CONAN false CACHE INTERNAL "")
-if(EXISTS ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-    include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+if(EXISTS ${PROJECT_BINARY_DIR}/conanbuildinfo.cmake)
+    include(${PROJECT_BINARY_DIR}/conanbuildinfo.cmake)
     set(USE_CONAN true)
-elseif(EXISTS ${CMAKE_SOURCE_DIR}/conanbuildinfo.cmake)
-    include(${CMAKE_SOURCE_DIR}/conanbuildinfo.cmake)
+elseif(EXISTS ${PROJECT_SOURCE_DIR}/conanbuildinfo.cmake)
+    include(${PROJECT_SOURCE_DIR}/conanbuildinfo.cmake)
     set(USE_CONAN true)
 endif()
 if(USE_CONAN)
     cmake_minimum_required(VERSION 3.4) # Conan Boost package requires this
-    set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/scripts/cmake/conan ${CONAN_CMAKE_MODULE_PATH} ${CMAKE_MODULE_PATH})
+    set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/scripts/cmake/conan ${CONAN_CMAKE_MODULE_PATH} ${CMAKE_MODULE_PATH})
     message(STATUS "Using conan package manager")
     set(OGS_LIB_VTK System CACHE INTERNAL "")
     set(OGS_LIB_BOOST System CACHE INTERNAL "")
diff --git a/scripts/cmake/Coverage.cmake b/scripts/cmake/Coverage.cmake
index cb4a0d2779c9f23a2062929916335dad455c25c1..6451d46b2e0842c75e903ad5cae74754bb765121 100644
--- a/scripts/cmake/Coverage.cmake
+++ b/scripts/cmake/Coverage.cmake
@@ -4,8 +4,8 @@ set(COVERAGE_EXCLUDES
     '/gpfs0/*'
     '/usr/*'
     '${CMAKE_BINARY_DIR}/*'
-    '${CMAKE_SOURCE_DIR}/Tests/*'
-    '${CMAKE_SOURCE_DIR}/ThirdParty/*'
+    '${PROJECT_SOURCE_DIR}/Tests/*'
+    '${PROJECT_SOURCE_DIR}/ThirdParty/*'
 )
 
 if(LCOV_PATH AND GENHTML_PATH)
diff --git a/scripts/cmake/ExternalProjectCatalyst.cmake b/scripts/cmake/ExternalProjectCatalyst.cmake
index 17227dbec9c37dbf19976a4813c24bc5113ae380..8e91b402d6794d927fd0b98f91e607ca6c9b9c65 100644
--- a/scripts/cmake/ExternalProjectCatalyst.cmake
+++ b/scripts/cmake/ExternalProjectCatalyst.cmake
@@ -65,7 +65,7 @@ ExternalProject_Add(Catalyst
 
 if(NOT ParaView_FOUND)
     # Rerun cmake in initial build
-    add_custom_target(VtkRescan ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} DEPENDS Catalyst)
+    add_custom_target(VtkRescan ${CMAKE_COMMAND} ${PROJECT_SOURCE_DIR} DEPENDS Catalyst)
 else()
     add_custom_target(VtkRescan) # dummy target for caching
 endif()
diff --git a/scripts/cmake/ExternalProjectVtk.cmake b/scripts/cmake/ExternalProjectVtk.cmake
index b576d5c0f569ce48b6e70081ac2cbdf88ad098db..a5d5af6a4e87c11a9a24af020e7350488736c9be 100644
--- a/scripts/cmake/ExternalProjectVtk.cmake
+++ b/scripts/cmake/ExternalProjectVtk.cmake
@@ -75,7 +75,7 @@ ExternalProject_Add(vtk
 
 if(NOT VTK_FOUND)
     # Rerun cmake in initial build
-    add_custom_target(VtkRescan ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} DEPENDS vtk)
+    add_custom_target(VtkRescan ${CMAKE_COMMAND} ${PROJECT_SOURCE_DIR} DEPENDS vtk)
 else()
     add_custom_target(VtkRescan) # dummy target for caching
 endif()
diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index f482c13d64787c971ff16df7c7c3e632da61d516..812086e9a6020d9880bb82f069f081b4b2556ff5 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -58,7 +58,7 @@ find_program(CCACHE_TOOL_PATH ccache)
 
 # Tools for web
 find_program(VTKJS_CONVERTER vtkDataConverter
-    PATHS ${CMAKE_SOURCE_DIR}/web/node_modules/.bin)
+    PATHS ${PROJECT_SOURCE_DIR}/web/node_modules/.bin)
 find_program(HUGO hugo)
 find_program(NPM npm)
 find_program(YARN yarn)
@@ -105,6 +105,9 @@ if(OGS_BUILD_GUI)
     endif()
     find_package( Qt5 5.2 REQUIRED Gui Widgets Xml XmlPatterns)
     cmake_policy(SET CMP0020 NEW)
+    set(CMAKE_AUTOMOC TRUE)
+    set(CMAKE_AUTOUIC TRUE)
+    set(CMAKE_AUTORCC TRUE)
     if(CMAKE_CROSSCOMPILING)
         find_package(PkgConfig REQUIRED)
         pkg_check_modules(QT_XML_DEPS REQUIRED Xml)
diff --git a/scripts/cmake/MetisSetup.cmake b/scripts/cmake/MetisSetup.cmake
index b8f7e7ee3e3099cff4d34a2c3b3b72116f63726e..35a0e882ef3a775b16d98321d2e673a126bd8bcf 100644
--- a/scripts/cmake/MetisSetup.cmake
+++ b/scripts/cmake/MetisSetup.cmake
@@ -1,7 +1,7 @@
 message( STATUS "The METIS package is copyrighted by the Regents of the University of Minnesota." )
 message( STATUS "Please read the license of the METIS package carefully before you use the METIS." )
 
-set(METIS_PATH "${CMAKE_SOURCE_DIR}/ThirdParty/metis")
+set(METIS_PATH ${PROJECT_SOURCE_DIR}/ThirdParty/metis)
 add_definitions(-DUSE_GKREGEX)
 set(GKLIB_PATH "${METIS_PATH}/GKlib" CACHE PATH "path to GKlib")
 
diff --git a/scripts/cmake/Web.cmake b/scripts/cmake/Web.cmake
index f1c16e9ab206aa88ffe9b43151b87404c190d17e..1a948528eeea7e2d8890df0586d68fb97547c532 100644
--- a/scripts/cmake/Web.cmake
+++ b/scripts/cmake/Web.cmake
@@ -10,18 +10,18 @@ endif()
 
 add_custom_target(web-install
     COMMAND ${PACKAGE_MANAGER}
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/web
-    BYPRODUCTS ${CMAKE_SOURCE_DIR}/web/node_modules
+    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/web
+    BYPRODUCTS ${PROJECT_SOURCE_DIR}/web/node_modules
 )
 
 if(PIP AND PYTHON_EXECUTABLE AND
-    (EXISTS ${CMAKE_SOURCE_DIR}/web/import/secret.py OR
+    (EXISTS ${PROJECT_SOURCE_DIR}/web/import/secret.py OR
      DEFINED ENV{CONTENTFUL_ACCESS_TOKEN}))
 
     add_custom_target(web-import
         COMMAND ${PIP} install -r ../requirements.txt
         COMMAND ${PYTHON_EXECUTABLE} import.py
-        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/web/import
+        WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/web/import
         DEPENDS web-install
     )
 
@@ -40,11 +40,11 @@ endif()
 
 add_custom_target(web
     COMMAND ${NPM} run build:release -- ${HUGO_ARGS}
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/web
+    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/web
     DEPENDS web-install ${IMPORT_TARGET}
 )
 
 add_custom_target(web-clean
     COMMAND ${NPM} run clean
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/web
+    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/web
 )
diff --git a/scripts/cmake/packaging/ArchiveTestdata.cmake b/scripts/cmake/packaging/ArchiveTestdata.cmake
index 3632122192b7b579e821c049a72765ed46fef54c..018c1e2fa86a94a529250134e0fcb8f8a67d1a1d 100644
--- a/scripts/cmake/packaging/ArchiveTestdata.cmake
+++ b/scripts/cmake/packaging/ArchiveTestdata.cmake
@@ -11,7 +11,7 @@ if(NOT REALPATH_TOOL_PATH OR NOT ZIP_TOOL_PATH)
 endif()
 
 add_custom_target(archive-data
-    bash ${CMAKE_SOURCE_DIR}/scripts/packaging/archive-testdata.sh
+    bash ${PROJECT_SOURCE_DIR}/scripts/packaging/archive-testdata.sh
     DEPENDS data
     WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
     COMMENT "Packaging testdata to ogs6-data.tar.gz and ogs6-data.zip" VERBATIM
diff --git a/scripts/cmake/packaging/Pack.cmake b/scripts/cmake/packaging/Pack.cmake
index 59805b107e1b8e7fea4103ffb38a089480ec1dd3..271c89bc9ee296455a066240e27a51553d388662 100644
--- a/scripts/cmake/packaging/Pack.cmake
+++ b/scripts/cmake/packaging/Pack.cmake
@@ -10,10 +10,10 @@ include(packaging/ArchiveTestdata)
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OGS-6 THM/C Simulator")
 set(CPACK_PACKAGE_VENDOR "OpenGeoSys Community (http://www.opengeosys.org)")
 set(CPACK_PACKAGE_INSTALL_DIRECTORY "OGS-${OGS_VERSION}")
-set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md")
-set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt")
-set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.md")
-# set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_SOURCE_DIR}/README.md")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md")
+set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.txt")
+set(CPACK_RESOURCE_FILE_README "${PROJECT_SOURCE_DIR}/README.md")
+# set(CPACK_RESOURCE_FILE_WELCOME "${PROJECT_SOURCE_DIR}/README.md")
 
 # Package file name
 if(OGS_BUILD_GUI)
diff --git a/scripts/cmake/packaging/PackagingLinux.cmake b/scripts/cmake/packaging/PackagingLinux.cmake
index fc3610024fed81b42442ee56623a2336fcd4be88..37b307773fa8c763783e3d4076fd1d1a287101b1 100644
--- a/scripts/cmake/packaging/PackagingLinux.cmake
+++ b/scripts/cmake/packaging/PackagingLinux.cmake
@@ -13,13 +13,13 @@ if(MODULE_CMD)
             set(MODULE_LOAD_STRING "${MODULE_LOAD_STRING}module load ${line}\n")
         endif()
     endforeach()
-    configure_file(${CMAKE_SOURCE_DIR}/scripts/cmake/packaging/module.in
-        ${CMAKE_BINARY_DIR}/module
+    configure_file(${PROJECT_SOURCE_DIR}/scripts/cmake/packaging/module.in
+        ${PROJECT_BINARY_DIR}/module
     )
     if(OGS_MODULEFILE)
         get_filename_component(MODULE_DIR ${OGS_MODULEFILE} DIRECTORY)
         get_filename_component(MODULE_NAME ${OGS_MODULEFILE} NAME)
-        install(FILES ${CMAKE_BINARY_DIR}/module DESTINATION ${MODULE_DIR}
+        install(FILES ${PROJECT_BINARY_DIR}/module DESTINATION ${MODULE_DIR}
             RENAME ${MODULE_NAME})
     endif()
 endif()
diff --git a/scripts/cmake/packaging/PackagingMac.cmake b/scripts/cmake/packaging/PackagingMac.cmake
index 8b32b22bc59be158d15b490a933412ee8bb1f7d0..cb0005a3b1d184b1ba01638e4b8a7239e78dc4f5 100644
--- a/scripts/cmake/packaging/PackagingMac.cmake
+++ b/scripts/cmake/packaging/PackagingMac.cmake
@@ -10,8 +10,8 @@ endif()
 set(CPACK_DMG_FORMAT "UDBZ")
 
 # See http://stackoverflow.com/a/16662169/80480 how to create the DS_Store file.
-set(CPACK_DMG_BACKGROUND_IMAGE ${CMAKE_SOURCE_DIR}/Documentation/OpenGeoSys-Logo.png)
-set(CPACK_DMG_DS_STORE ${CMAKE_SOURCE_DIR}/scripts/packaging/.DS_Store)
+set(CPACK_DMG_BACKGROUND_IMAGE ${PROJECT_SOURCE_DIR}/Documentation/OpenGeoSys-Logo.png)
+set(CPACK_DMG_DS_STORE ${PROJECT_SOURCE_DIR}/scripts/packaging/.DS_Store)
 
 if(USE_CONAN)
     SET(CMAKE_INSTALL_RPATH "@executable_path")
diff --git a/scripts/cmake/packaging/PackagingWin.cmake b/scripts/cmake/packaging/PackagingWin.cmake
index 0925720dd1dedef71591afd321d68dcb3dc9873a..3d220de3cc7d89618f76a244749cc93e36c487ba 100644
--- a/scripts/cmake/packaging/PackagingWin.cmake
+++ b/scripts/cmake/packaging/PackagingWin.cmake
@@ -4,8 +4,8 @@ set(CPACK_GENERATOR ZIP)
 #if(NOT CMAKE_CROSSCOMPILING)
 #    set(CPACK_GENERATOR NSIS ZIP)
 #endif()
-set(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/scripts/packaging/ogs-de-icon.ico)
-set(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/Documentation/OpenGeoSys-Logo.bmp)
+set(CPACK_NSIS_MUI_ICON ${PROJECT_SOURCE_DIR}/scripts/packaging/ogs-de-icon.ico)
+set(CPACK_PACKAGE_ICON ${PROJECT_SOURCE_DIR}/Documentation/OpenGeoSys-Logo.bmp)
 set(CPACK_NSIS_INSTALLED_ICON_NAME ${CPACK_NSIS_MUI_ICON})
 set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}")
 set(CPACK_NSIS_CONTACT "info@opengeosys.org")
diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake
index cba304268e36246be83a32b84078a3f0e229caf6..ab76d7b9dcd7d9be915bb0a8ef656d2184168b38 100644
--- a/scripts/cmake/test/AddTest.cmake
+++ b/scripts/cmake/test/AddTest.cmake
@@ -210,7 +210,7 @@ function (AddTest)
         -DTESTER_COMMAND=${TESTER_COMMAND}
         -DVTKJS_CONVERTER=${VTKJS_CONVERTER}
         -DBINARY_PATH=${AddTest_BINARY_PATH}
-        -DVTKJS_OUTPUT_PATH=${CMAKE_SOURCE_DIR}/web/static/vis/${AddTest_PATH}
+        -DVTKJS_OUTPUT_PATH=${PROJECT_SOURCE_DIR}/web/static/vis/${AddTest_PATH}
         "-DVIS_FILES=${AddTest_VIS}"
         -P ${PROJECT_SOURCE_DIR}/scripts/cmake/test/AddTestTester.cmake
     )