Blender V4.3
BKE_appdir.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4#pragma once
5
13#include <stddef.h>
14
15#include <optional>
16#include <string>
17
18#include "BLI_compiler_attrs.h"
19
20struct ListBase;
21
31void BKE_appdir_init();
32void BKE_appdir_exit();
33
50const char *BKE_appdir_folder_home();
70bool BKE_appdir_folder_caches(char *path, size_t path_maxncpy) ATTR_NONNULL(1);
78bool BKE_appdir_folder_id_ex(int folder_id,
79 const char *subfolder,
80 char *path,
81 size_t path_maxncpy);
82std::optional<std::string> BKE_appdir_folder_id(int folder_id,
83 const char *subfolder) ATTR_WARN_UNUSED_RESULT;
87std::optional<std::string> BKE_appdir_folder_id_create(int folder_id, const char *subfolder)
92std::optional<std::string> BKE_appdir_folder_id_user_notest(int folder_id, const char *subfolder)
98std::optional<std::string> BKE_appdir_resource_path_id_with_version(int folder_id,
99 bool check_is_dir,
100 int version);
101std::optional<std::string> BKE_appdir_resource_path_id(int folder_id, bool check_is_dir);
102
107bool BKE_appdir_app_template_id_search(const char *app_template, char *path, size_t path_maxncpy)
108 ATTR_NONNULL(1);
111
115void BKE_appdir_program_path_init(const char *argv0) ATTR_NONNULL(1);
116
125
129bool BKE_appdir_font_folder_default(char *dir, size_t dir_maxncpy);
130
135 size_t program_filepath_maxncpy,
136 int version_major,
137 int version_minor) ATTR_NONNULL(1);
138
142void BKE_tempdir_init(const char *userdir);
143
156
162enum {
163 /* general, will find based on user/local/system priority */
165
166 /* user-specific */
171
172 /* system */
177};
178
180enum {
184};
185
186#define BLENDER_STARTUP_FILE "startup.blend"
187#define BLENDER_USERPREF_FILE "userpref.blend"
188#define BLENDER_QUIT_FILE "quit.blend"
189#define BLENDER_BOOKMARK_FILE "bookmarks.txt"
190#define BLENDER_HISTORY_FILE "recent-files.txt"
191#define BLENDER_RECENT_SEARCHES_FILE "recent-searches.txt"
192#define BLENDER_PLATFORM_SUPPORT_FILE "platform_support.txt"
const char * BKE_appdir_program_dir() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition appdir.cc:948
bool BKE_appdir_app_template_id_search(const char *app_template, char *path, size_t path_maxncpy) ATTR_NONNULL(1)
Definition appdir.cc:1071
void BKE_tempdir_init(const char *userdir)
Definition appdir.cc:1190
std::optional< std::string > BKE_appdir_folder_id_user_notest(int folder_id, const char *subfolder) ATTR_WARN_UNUSED_RESULT
Definition appdir.cc:713
void BKE_appdir_init()
Definition appdir.cc:93
const char * BKE_appdir_program_path() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition appdir.cc:940
bool BKE_appdir_folder_id_ex(int folder_id, const char *subfolder, char *path, size_t path_maxncpy)
Definition appdir.cc:591
void BKE_appdir_app_templates(ListBase *templates) ATTR_NONNULL(1)
Definition appdir.cc:1105
std::optional< std::string > BKE_appdir_resource_path_id_with_version(int folder_id, bool check_is_dir, int version)
Definition appdir.cc:789
const char * BKE_appdir_folder_default() ATTR_WARN_UNUSED_RESULT
Definition appdir.cc:137
std::optional< std::string > BKE_appdir_resource_path_id(int folder_id, bool check_is_dir)
Definition appdir.cc:817
const char * BKE_appdir_folder_root() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition appdir.cc:152
void BKE_appdir_exit()
Definition appdir.cc:101
bool BKE_appdir_program_python_search(char *program_filepath, size_t program_filepath_maxncpy, int version_major, int version_minor) ATTR_NONNULL(1)
Definition appdir.cc:954
bool BKE_appdir_app_template_has_userpref(const char *app_template) ATTR_NONNULL(1)
Definition appdir.cc:1085
bool BKE_appdir_folder_documents(char *dir) ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT
Definition appdir.cc:196
@ BLENDER_USER_DATAFILES
@ BLENDER_USER_EXTENSIONS
@ BLENDER_SYSTEM_DATAFILES
@ BLENDER_SYSTEM_EXTENSIONS
@ BLENDER_DATAFILES
@ BLENDER_SYSTEM_PYTHON
@ BLENDER_SYSTEM_SCRIPTS
@ BLENDER_USER_CONFIG
@ BLENDER_USER_SCRIPTS
const char * BKE_appdir_folder_home()
Definition appdir.cc:172
std::optional< std::string > BKE_appdir_folder_id(int folder_id, const char *subfolder) ATTR_WARN_UNUSED_RESULT
Definition appdir.cc:704
const char * BKE_appdir_folder_default_or_root() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition appdir.cc:163
const char * BKE_tempdir_session() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition stubs.c:38
const char * BKE_tempdir_base() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition appdir.cc:1211
bool BKE_appdir_app_template_any()
Definition appdir.cc:1066
@ BLENDER_RESOURCE_PATH_SYSTEM
@ BLENDER_RESOURCE_PATH_LOCAL
@ BLENDER_RESOURCE_PATH_USER
bool BKE_appdir_folder_caches(char *path, size_t path_maxncpy) ATTR_NONNULL(1)
Definition appdir.cc:226
bool BKE_appdir_font_folder_default(char *dir, size_t dir_maxncpy)
Definition appdir.cc:250
void BKE_tempdir_session_purge()
Definition appdir.cc:1216
void BKE_appdir_program_path_init(const char *argv0) ATTR_NONNULL(1)
Definition appdir.cc:917
std::optional< std::string > BKE_appdir_folder_id_create(int folder_id, const char *subfolder) ATTR_WARN_UNUSED_RESULT
Definition appdir.cc:764
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_RETURNS_NONNULL
#define ATTR_NONNULL(...)
char program_filepath[FILE_MAX]
Definition appdir.cc:71
char app_template[64]
Definition wm_files.cc:1166