diff --git a/CMakeLists.txt b/CMakeLists.txt index 39798ec2..469b6375 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -377,6 +377,8 @@ macro(xeus_cpp_create_target target_name linkage output_name) target_link_libraries(${target_name} PRIVATE ${CMAKE_THREAD_LIBS_INIT}) endif() + target_compile_definitions(${target_name} PRIVATE "XEUS_SEARCH_PATH=\"$,:>\"") + endmacro() # xeus-cpp-headers diff --git a/src/xinterpreter.cpp b/src/xinterpreter.cpp index 5ed527e3..81635b45 100644 --- a/src/xinterpreter.cpp +++ b/src/xinterpreter.cpp @@ -46,6 +46,19 @@ void* createInterpreter(const Args &ExtraArgs = {}) { ClangArgs.push_back(CxxInclude.c_str()); } #endif + +#ifdef XEUS_SEARCH_PATH + std::string search_path = XEUS_SEARCH_PATH; + std::istringstream iss(search_path); + std::string path; + while (std::getline(iss, path, ':')) { + if (!path.empty()) { + ClangArgs.push_back("-I"); + ClangArgs.push_back(path.c_str()); + } + } +#endif + ClangArgs.insert(ClangArgs.end(), ExtraArgs.begin(), ExtraArgs.end()); // FIXME: We should process the kernel input options and conditionally pass // the gpu args here.