diff --git a/CMakeLists.txt b/CMakeLists.txt
index 922931a28271de11bb3dfe927849fc825cbb76b3..aeb6c570ae88cfb6aa1b07cc8629e201b2a96a25 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -97,13 +97,10 @@ endif(CM_ALL_USE_F08 AND MPI_Fortran_HAVE_F08_MODULE)
 if(CM_ALL_VORONOI)
     message(STATUS "compiling voro++ version in contrib/voro++")
     add_subdirectory(contrib/voro++)
-    #    set(CM_ALL_VORO_INC contrib/voro++/include)
-    #    set(CM_ALL_VORO_LIB contrib/voro++/src)
-    #set(CM_ALL_VORO_LIB "-L${CMAKE_BINARY_DIR}/contrib/voro++/src -lvoro")
     add_compile_options("-DALL_VORONOI_ACTIVE")
 endif()
 
-set(STB_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/contrib/stb)
+set(STB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/contrib/stb)
 
 add_subdirectory(src)
 add_subdirectory(example)
diff --git a/example/CMakeProjectSubdir/ALL_Staggered.cpp b/example/CMakeProjectSubdir/ALL_Staggered.cpp
new file mode 120000
index 0000000000000000000000000000000000000000..8bca7c2bfb9323f5e40ba4b3d616cf451accc289
--- /dev/null
+++ b/example/CMakeProjectSubdir/ALL_Staggered.cpp
@@ -0,0 +1 @@
+../ALL_Staggered.cpp
\ No newline at end of file
diff --git a/example/CMakeProjectSubdir/ALL_Staggered_f.F90 b/example/CMakeProjectSubdir/ALL_Staggered_f.F90
new file mode 120000
index 0000000000000000000000000000000000000000..824e45ef989b09920cc0a5660a3403b88361d251
--- /dev/null
+++ b/example/CMakeProjectSubdir/ALL_Staggered_f.F90
@@ -0,0 +1 @@
+../ALL_Staggered_f.F90
\ No newline at end of file
diff --git a/example/CMakeProjectSubdir/CMakeLists.txt b/example/CMakeProjectSubdir/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a7afacce6aca6f91786b62aab9c81e1a7323a7da
--- /dev/null
+++ b/example/CMakeProjectSubdir/CMakeLists.txt
@@ -0,0 +1,30 @@
+# REMEMBER TO SET CC AND CXX! CMake is too dumb to find compiler in your path!
+# mkdcd build
+# CC=gcc CXX=g++ cmake -DALL_DIR=`pwd`/../../jall_bin/lib/cmake/ALL ../
+
+cmake_minimum_required(VERSION 3.14)
+project(ExampleProject)
+
+enable_language(CXX)
+enable_language(Fortran)
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
+
+set(CM_ALL_FORTRAN ON)
+#set(CM_ALL_USE_F08 ON)
+set(CM_ALL_VORONOI ON)
+#set(CM_ALL_VTK_OUTPUT ON)
+
+add_subdirectory(all)
+
+#find_package(MPI REQUIRED COMPONENTS CXX Fortran)
+
+add_executable(EALL_Staggered ALL_Staggered.cpp)
+target_link_libraries(EALL_Staggered PRIVATE ALL)
+
+add_executable(EALL_Staggered_f ALL_Staggered_f.F90)
+target_link_libraries(EALL_Staggered_f LINK_PRIVATE ALL)
+target_link_libraries(EALL_Staggered_f LINK_PRIVATE ALL_fortran)
+set_property(TARGET EALL_Staggered_f PROPERTY LINKER_LANGUAGE Fortran)
+#todo(s.schulz): link against MPI
diff --git a/example/CMakeProjectSubdir/all_contains_source_tree b/example/CMakeProjectSubdir/all_contains_source_tree
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/example/CMakeProjectSubdir/build_all.sh b/example/CMakeProjectSubdir/build_all.sh
new file mode 100755
index 0000000000000000000000000000000000000000..960c622ad9954a6f7a94d0518cfcfd5fab210e34
--- /dev/null
+++ b/example/CMakeProjectSubdir/build_all.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+rm -rf build && CC=gcc CXX=g++ cmake -S . -B build && VERBOSE=1 cmake --build build
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 22186485c76aed7d1b9325515c796efb67b9df6d..e8aca7b28cd439be97ed5a2b30aabef4757d1d9f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-set(ALL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include)
+set(ALL_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../include)
 set(ALL_HEADER_FILES
     ${ALL_INCLUDE_DIR}/ALL_CustomExceptions.hpp
     ${ALL_INCLUDE_DIR}/ALL_Defines.h
@@ -43,7 +43,7 @@ install(FILES ${ALL_HEADER_FILES}
     DESTINATION include)
 
 if (CM_ALL_FORTRAN)
-    set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/modules)
+    set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../modules)
     add_library (ALL_fortran ALL_module.F90)
     set_property(TARGET ALL_fortran PROPERTY LINKER_LANGUAGE Fortran)