From fe032e5f3c6f7116fb3734946878c20cee55b31e Mon Sep 17 00:00:00 2001 From: cxl Date: Sat, 24 Aug 2019 16:32:31 +0000 Subject: [PATCH] ide: pkg_config include paths in C++ parsing git-svn-id: svn://ultimatepp.org/upp/trunk@13560 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ide/Builders/Build.cpp | 1 - uppsrc/ide/Builders/GccBuilder.cpp | 3 --- uppsrc/ide/Methods.cpp | 12 +++++++++++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/uppsrc/ide/Builders/Build.cpp b/uppsrc/ide/Builders/Build.cpp index 7a5b24444..d9af0ee7b 100644 --- a/uppsrc/ide/Builders/Build.cpp +++ b/uppsrc/ide/Builders/Build.cpp @@ -311,7 +311,6 @@ bool MakeBuild::BuildPackage(const Workspace& wspc, int pkindex, int pknumber, i for(int i = 0; i < wspc.GetCount(); i++) for(String h : Split(Gather(wspc.GetPackage(i).pkg_config, b->config.GetKeys()), ' ')) b->pkg_config.FindAdd(h); - DDUMP(b->pkg_config); const TargetMode& m = targetmode == 0 ? debug : release; b->version = m.version; b->method = method; diff --git a/uppsrc/ide/Builders/GccBuilder.cpp b/uppsrc/ide/Builders/GccBuilder.cpp index 9a7e4ce4e..055725d88 100644 --- a/uppsrc/ide/Builders/GccBuilder.cpp +++ b/uppsrc/ide/Builders/GccBuilder.cpp @@ -130,9 +130,6 @@ bool GccBuilder::BuildPackage(const String& package, Vector& linkfile, V String cc = CmdLine(package, pkg); - DDUMP(pkg_config); - DDUMP(cc); - if(HasFlag("WIN32")/* && HasFlag("MT")*/) cc << " -mthreads"; if(HasFlag("DEBUG_MINIMAL")) diff --git a/uppsrc/ide/Methods.cpp b/uppsrc/ide/Methods.cpp index 62e245aab..35d4a3848 100644 --- a/uppsrc/ide/Methods.cpp +++ b/uppsrc/ide/Methods.cpp @@ -877,13 +877,23 @@ String Ide::GetIncludePath() MergeWith(include, ";", cppIncludeDir); } } - + const Workspace& wspc = GetIdeWorkspace(); + LocalHost dummy_host; + One b = CreateBuilder(&dummy_host); + Index pkg_config; for(int i = 0; i < wspc.GetCount(); i++) { const Package& pkg = wspc.GetPackage(i); for(int j = 0; j < pkg.include.GetCount(); j++) MergeWith(include, ";", SourcePath(wspc[i], pkg.include[j].text)); + for(String h : Split(Gather(pkg.pkg_config, b->config.GetKeys()), ' ')) + pkg_config.FindAdd(h); } + + for(String s : pkg_config) + for(String p : Split(Sys("pkg-config --cflags " + s), ' ')) + if(p.TrimStart("-I")) + MergeWith(include, ";", p); return include; }