diff --git a/interpreter/cling/lib/Interpreter/CMakeLists.txt b/interpreter/cling/lib/Interpreter/CMakeLists.txt index c68ca4d3ed671e3f0d2b5c1c64353e75eddf511a..0702ee0b444ada111b522a2b9238a09beab089f1 100644 --- a/interpreter/cling/lib/Interpreter/CMakeLists.txt +++ b/interpreter/cling/lib/Interpreter/CMakeLists.txt @@ -282,6 +282,25 @@ if (UNIX) endif() endif() + # Modification for Fp311Online@Ruhr-Universität + option(BUILD_FOR_FLATPAK "Add include paths under /app to allow Cling to work in the Flatpak sandbox. (Please note that the Flatpak build manifest has to copy include files there in addition to setting this flag.)" OFF) + if (${BUILD_FOR_FLATPAK}) + set(CLING_CXX_HEADERS "${CLING_CXX_HEADERS}:/app/include:/app/include/root") + + file(GLOB flatpaksdk_cpp_inc_dirs LIST_DIRECTORIES TRUE "/usr/include/c++/*") + foreach(flatpaksdk_cpp_inc_dir ${flatpaksdk_cpp_inc_dirs}) + get_filename_component(flatpaksdk_cpp_version ${flatpaksdk_cpp_inc_dir} NAME) + set(CLING_CXX_HEADERS "${CLING_CXX_HEADERS}:/app/include/c++/${flatpaksdk_cpp_version}") + file(GLOB flatpaksdk_cpp_arch_dirs LIST_DIRECTORIES TRUE "/usr/include/c++/${flatpaksdk_cpp_version}/*linux*") + foreach(flatpaksdk_cpp_arch_dir ${flatpaksdk_cpp_arch_dirs}) + get_filename_component(flatpaksdk_cpp_arch ${flatpaksdk_cpp_arch_dir} NAME) + set(CLING_CXX_HEADERS "${CLING_CXX_HEADERS}:/app/include/c++/${flatpaksdk_cpp_version}/${flatpaksdk_cpp_arch}") + endforeach() + endforeach() + + endif (${BUILD_FOR_FLATPAK}) + # End Modification + MESSAGE(STATUS "Cling will look for C++ headers in '${CLING_CXX_HEADERS}' at runtime.") # In modules builds we 'mount' our own stl modulemap for libstdc++. In order to do this,