Commit f5230da7 authored by rockot's avatar rockot Committed by Commit bot

Use .service.exe extension for service binaries on Windows

This is a simple solution to avoid conflicting ILK filenames
generated by the linker, which apparently just strips the
output file extension.

BUG=673521
TBR=ben@chromium.org

Review-Url: https://codereview.chromium.org/2578183003
Cr-Commit-Position: refs/heads/master@{#438935}
parent 32ca522f
...@@ -22,6 +22,12 @@ ...@@ -22,6 +22,12 @@
namespace catalog { namespace catalog {
namespace { namespace {
#if defined(OS_WIN)
const char kServiceExecutableExtension[] = ".service.exe";
#else
const char kServiceExecutableExtension[] = ".service";
#endif
base::FilePath GetManifestPath(const base::FilePath& package_dir, base::FilePath GetManifestPath(const base::FilePath& package_dir,
const std::string& name, const std::string& name,
const std::string& package_name_override) { const std::string& package_name_override) {
...@@ -34,7 +40,8 @@ base::FilePath GetManifestPath(const base::FilePath& package_dir, ...@@ -34,7 +40,8 @@ base::FilePath GetManifestPath(const base::FilePath& package_dir,
base::FilePath GetExecutablePath(const base::FilePath& package_dir, base::FilePath GetExecutablePath(const base::FilePath& package_dir,
const std::string& name) { const std::string& name) {
return package_dir.AppendASCII(name + "/" + name + ".service"); return package_dir.AppendASCII(
name + "/" + name + kServiceExecutableExtension);
} }
std::unique_ptr<Entry> ProcessManifest( std::unique_ptr<Entry> ProcessManifest(
......
...@@ -53,12 +53,18 @@ template("service") { ...@@ -53,12 +53,18 @@ template("service") {
service_data_deps += invoker.data_deps service_data_deps += invoker.data_deps
} }
if (is_win) {
executable_extension = "service.exe"
} else {
executable_extension = "service"
}
executable_target_name = base_target_name + "_executable" executable_target_name = base_target_name + "_executable"
executable_name = base_target_name + ".service" executable_name = base_target_name + "." + executable_extension
executable(executable_target_name) { executable(executable_target_name) {
output_name = base_target_name output_name = base_target_name
output_extension = "service" output_extension = executable_extension
if (defined(invoker.cflags)) { if (defined(invoker.cflags)) {
cflags = invoker.cflags cflags = invoker.cflags
......
...@@ -29,8 +29,14 @@ namespace { ...@@ -29,8 +29,14 @@ namespace {
const char kTestServiceName[] = "host_test_service"; const char kTestServiceName[] = "host_test_service";
const base::FilePath::CharType kPackagesPath[] = FILE_PATH_LITERAL("Packages"); const base::FilePath::CharType kPackagesPath[] = FILE_PATH_LITERAL("Packages");
#if defined(OS_WIN)
const base::FilePath::CharType kServiceExtension[] =
FILE_PATH_LITERAL(".service.exe");
#else
const base::FilePath::CharType kServiceExtension[] = const base::FilePath::CharType kServiceExtension[] =
FILE_PATH_LITERAL(".service"); FILE_PATH_LITERAL(".service");
#endif
void ProcessReadyCallbackAdapater(const base::Closure& callback, void ProcessReadyCallbackAdapater(const base::Closure& callback,
base::ProcessId process_id) { base::ProcessId process_id) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment