1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file LICENSE.rst or https://cmake.org/licensing for details. */
- #pragma once
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <string>
- #include <utility>
- #include <cm/optional>
- #include <cm/string_view>
- struct cmObjectLocation
- {
- public:
- cmObjectLocation() = default;
- cmObjectLocation(std::string path)
- : Path(std::move(path))
- {
- }
- void Update(std::string path);
- // Get the path to the object under the common directory for the target's
- // objects.
- std::string const& GetPath() const;
- // Get the directory of the object file under the common directory.
- cm::string_view GetDirectory() const;
- // Get the name of the object file.
- cm::string_view GetName() const;
- private:
- std::string Path;
- };
- struct cmObjectLocations
- {
- cmObjectLocations() = default;
- cm::optional<cmObjectLocation> ShortLoc;
- cmObjectLocation LongLoc;
- enum class UseShortPath
- {
- Yes,
- No,
- };
- cmObjectLocation const& GetLocation(UseShortPath use) const;
- std::string const& GetPath(UseShortPath use) const;
- };
|