Flutter Linux Embedder
path_utils.cc
Go to the documentation of this file.
1
// Copyright 2013 The Flutter Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include "
flutter/shell/platform/common/path_utils.h
"
6
7
#if defined(_WIN32)
8
#include <windows.h>
9
#elif defined(__linux__)
10
#include <linux/limits.h>
11
#include <unistd.h>
12
#endif
13
14
namespace
flutter
{
15
16
std::filesystem::path
GetExecutableDirectory
() {
17
#if defined(_WIN32)
18
wchar_t
buffer
[MAX_PATH];
19
if
(GetModuleFileName(
nullptr
,
buffer
, MAX_PATH) == 0) {
20
return
std::filesystem::path();
21
}
22
std::filesystem::path executable_path(
buffer
);
23
return
executable_path.remove_filename();
24
#elif defined(__linux__)
25
char
buffer
[PATH_MAX + 1];
26
ssize_t
length
= readlink(
"/proc/self/exe"
,
buffer
,
sizeof
(
buffer
));
27
if
(
length
> PATH_MAX) {
28
return
std::filesystem::path();
29
}
30
std::filesystem::path executable_path(std::string(
buffer
,
length
));
31
return
executable_path.remove_filename();
32
#else
33
return
std::filesystem::path();
34
#endif
35
}
36
37
}
// namespace flutter
flutter::GetExecutableDirectory
std::filesystem::path GetExecutableDirectory()
Definition:
path_utils.cc:16
path_utils.h
flutter
Definition:
accessibility_bridge.cc:14
buffer
static const uint8_t buffer[]
Definition:
fl_pixel_buffer_texture_test.cc:44
length
size_t length
Definition:
fl_standard_message_codec_test.cc:1113
shell
platform
common
path_utils.cc
Generated by
1.8.17