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 @@
namespace catalog {
namespace {
#if defined(OS_WIN)
const char kServiceExecutableExtension[] = ".service.exe";
#else
const char kServiceExecutableExtension[] = ".service";
#endif
base::FilePath GetManifestPath(const base::FilePath& package_dir,
const std::string& name,
const std::string& package_name_override) {
......@@ -34,7 +40,8 @@ base::FilePath GetManifestPath(const base::FilePath& package_dir,
base::FilePath GetExecutablePath(const base::FilePath& package_dir,
const std::string& name) {
return package_dir.AppendASCII(name + "/" + name + ".service");
return package_dir.AppendASCII(
name + "/" + name + kServiceExecutableExtension);
}
std::unique_ptr<Entry> ProcessManifest(
......
......@@ -53,12 +53,18 @@ template("service") {
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_name = base_target_name + ".service"
executable_name = base_target_name + "." + executable_extension
executable(executable_target_name) {
output_name = base_target_name
output_extension = "service"
output_extension = executable_extension
if (defined(invoker.cflags)) {
cflags = invoker.cflags
......
......@@ -29,8 +29,14 @@ namespace {
const char kTestServiceName[] = "host_test_service";
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[] =
FILE_PATH_LITERAL(".service");
#endif
void ProcessReadyCallbackAdapater(const base::Closure& callback,
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