| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_ENTERPRISE_COMPANION_INSTALLER_PATHS_H_ |
| #define CHROME_ENTERPRISE_COMPANION_INSTALLER_PATHS_H_ |
| |
| #include <optional> |
| |
| #include "base/files/file_path.h" |
| #include "build/build_config.h" |
| |
| // Utilities regarding installation paths for the Chrome Enterprise Companion |
| // App which may be depended upon by both the internal and client libraries. |
| namespace enterprise_companion { |
| |
| // The name of the program image. E.g. "enterprise_companion.exe". |
| extern const char kExecutableName[]; |
| |
| // Determines the install directory for the app. On Windows this is dependent on |
| // the architecture of the program image. |
| std::optional<base::FilePath> GetInstallDirectory(); |
| |
| // Searches the system for an existing installation of the app. On Windows, it |
| // is possible that 32 and 64-bit installations exist. In such cases, the latter |
| // is returned. Returns a path to the installed application binary, if one |
| // exists. |
| std::optional<base::FilePath> FindExistingInstall(); |
| |
| #if BUILDFLAG(IS_MAC) |
| // Returns the path to the system's ksadmin. |
| base::FilePath GetKSAdminPath(); |
| #endif |
| |
| #if BUILDFLAG(IS_WIN) |
| // Returns the path to the install directory used by other builds of this |
| // application. That is, for 32-bit builds this returns the 64-bit install |
| // directory and vice versa: |
| // * 32-bit process on 32-bit host: nullopt |
| // * 32-bit process on 64-bit host: C:\Program Files\... |
| // * 64-bit process on 64-bit host: C:\Program Files (x86)\... |
| std::optional<base::FilePath> GetInstallDirectoryForAlternateArch(); |
| #endif |
| |
| } // namespace enterprise_companion |
| |
| #endif // CHROME_ENTERPRISE_COMPANION_INSTALLER_PATHS_H_ |