|
|
|
|
|
|
|
|
argv.push_back(pkg.c_str()); |
|
|
argv.push_back(pkg.c_str()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Execute $(PKG_CONFIG) --cflags $(PKGS) |
|
|
std::string output; |
|
|
std::string output; |
|
|
sys::execute(argv, &output); |
|
|
sys::execute(argv, &output); |
|
|
parseWhitespaceSeparated(output, flags); |
|
|
parseWhitespaceSeparated(output, flags); |
|
|
|
|
|
|
|
|
argv.push_back(pkg.c_str()); |
|
|
argv.push_back(pkg.c_str()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Execute $(PKG_CONFIG) --libs $(PKGS) |
|
|
std::string output; |
|
|
std::string output; |
|
|
sys::execute(argv, &output); |
|
|
sys::execute(argv, &output); |
|
|
parseWhitespaceSeparated(output, flags); |
|
|
parseWhitespaceSeparated(output, flags); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
argv.push_back("-MM"); |
|
|
argv.push_back("-MM"); |
|
|
argv.push_back("-c"); |
|
|
|
|
|
argv.push_back(sourcePath.c_str()); |
|
|
argv.push_back(sourcePath.c_str()); |
|
|
|
|
|
|
|
|
|
|
|
// Execute $(CC) $(flags) -MM $< |
|
|
std::string output; |
|
|
std::string output; |
|
|
sys::execute(argv, &output); |
|
|
sys::execute(argv, &output); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
std::string destDir = outDir + "/" + srcDir; |
|
|
std::string destDir = outDir + "/" + srcDir; |
|
|
std::string destPath = destDir + "/" + name + ".o"; |
|
|
std::string destPath = destDir + "/" + name + ".o"; |
|
|
|
|
|
|
|
|
|
|
|
// Ensure the output directory actually exists |
|
|
sys::mkdirp(outDir); |
|
|
sys::mkdirp(outDir); |
|
|
|
|
|
|
|
|
std::vector<const char *> argv; |
|
|
std::vector<const char *> argv; |
|
|
|
|
|
|
|
|
argv.push_back(destPath.c_str()); |
|
|
argv.push_back(destPath.c_str()); |
|
|
argv.push_back("-c"); |
|
|
argv.push_back("-c"); |
|
|
argv.push_back(sourcePath.c_str()); |
|
|
argv.push_back(sourcePath.c_str()); |
|
|
|
|
|
|
|
|
|
|
|
// Execute $(CC) $(flags) -o $@ -c $< |
|
|
sys::execute(argv, nullptr); |
|
|
sys::execute(argv, nullptr); |
|
|
} |
|
|
} |
|
|
|
|
|
|