cmLinkLineComputer.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #ifndef cmLinkLineComputer_h
  4. #define cmLinkLineComputer_h
  5. #include <cmConfigure.h> // IWYU pragma: keep
  6. #include <string>
  7. #include "cmStateDirectory.h"
  8. class cmComputeLinkInformation;
  9. class cmOutputConverter;
  10. class cmLinkLineComputer
  11. {
  12. public:
  13. cmLinkLineComputer(cmOutputConverter* outputConverter,
  14. cmStateDirectory stateDir);
  15. virtual ~cmLinkLineComputer();
  16. void SetUseWatcomQuote(bool useWatcomQuote);
  17. void SetForResponse(bool forResponse);
  18. void SetRelink(bool relink);
  19. virtual std::string ConvertToLinkReference(std::string const& input) const;
  20. std::string ComputeLinkPath(cmComputeLinkInformation& cli,
  21. std::string const& libPathFlag,
  22. std::string const& libPathTerminator);
  23. std::string ComputeFrameworkPath(cmComputeLinkInformation& cli,
  24. std::string const& fwSearchFlag);
  25. std::string ComputeLinkLibraries(cmComputeLinkInformation& cli,
  26. std::string const& stdLibString);
  27. private:
  28. std::string ComputeLinkLibs(cmComputeLinkInformation& cli);
  29. std::string ComputeRPath(cmComputeLinkInformation& cli);
  30. std::string ConvertToOutputFormat(std::string const& input);
  31. std::string ConvertToOutputForExisting(std::string const& input);
  32. cmStateDirectory StateDir;
  33. cmOutputConverter* OutputConverter;
  34. bool ForResponse;
  35. bool UseWatcomQuote;
  36. bool Relink;
  37. };
  38. #endif