Blender V5.0
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
12
13#include <cstddef>
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
64bool BKE_appdir_folder_caches(char *path, size_t path_maxncpy) ATTR_NONNULL(1);
72bool BKE_appdir_folder_id_ex(int folder_id,
73 const char *subfolder,
74 char *path,
75 size_t path_maxncpy);
76std::optional<std::string> BKE_appdir_folder_id(int folder_id,
77 const char *subfolder) ATTR_WARN_UNUSED_RESULT;
81std::optional<std::string> BKE_appdir_folder_id_create(int folder_id, const char *subfolder)
86std::optional<std::string> BKE_appdir_folder_id_user_notest(int folder_id, const char *subfolder)
92std::optional<std::string> BKE_appdir_resource_path_id_with_version(int folder_id,
93 bool check_is_dir,
94 int version);
95std::optional<std::string> BKE_appdir_resource_path_id(int folder_id, bool check_is_dir);
96
101bool BKE_appdir_app_template_id_search(const char *app_template, char *path, size_t path_maxncpy)
102 ATTR_NONNULL(1);
105
109void BKE_appdir_program_path_init(const char *argv0) ATTR_NONNULL(1);
110
119
123bool BKE_appdir_font_folder_default(char *dir, size_t dir_maxncpy);
124
129 size_t program_filepath_maxncpy,
130 int version_major,
131 int version_minor) ATTR_NONNULL(1);
132
136void BKE_tempdir_init(const char *userdir);
137
150
156enum {
157 /* general, will find based on user/local/system priority */
159
160 /* user-specific */
165
166 /* system */
171};
172
174enum {
178};
179
180#define BLENDER_STARTUP_FILE "startup.blend"
181#define BLENDER_USERPREF_FILE "userpref.blend"
182#define BLENDER_QUIT_FILE "quit.blend"
183#define BLENDER_BOOKMARK_FILE "bookmarks.txt"
184#define BLENDER_HISTORY_FILE "recent-files.txt"
185#define BLENDER_RECENT_SEARCHES_FILE "recent-searches.txt"
186#define BLENDER_PLATFORM_SUPPORT_FILE "platform_support.txt"
const char * BKE_appdir_program_dir() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition appdir.cc:964
bool BKE_appdir_app_template_id_search(const char *app_template, char *path, size_t path_maxncpy) ATTR_NONNULL(1)
Definition appdir.cc:1082
void BKE_tempdir_init(const char *userdir)
Definition appdir.cc:1200
std::optional< std::string > BKE_appdir_folder_id_user_notest(int folder_id, const char *subfolder) ATTR_WARN_UNUSED_RESULT
Definition appdir.cc:730
void BKE_appdir_init()
Definition appdir.cc:93
const char * BKE_appdir_program_path() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition appdir.cc:956
bool BKE_appdir_folder_id_ex(int folder_id, const char *subfolder, char *path, size_t path_maxncpy)
Definition appdir.cc:608
void BKE_appdir_app_templates(ListBase *templates) ATTR_NONNULL(1)
Definition appdir.cc:1116
std::optional< std::string > BKE_appdir_resource_path_id_with_version(int folder_id, bool check_is_dir, int version)
Definition appdir.cc:806
const char * BKE_appdir_folder_default() ATTR_WARN_UNUSED_RESULT
Definition appdir.cc:137
@ BLENDER_RESOURCE_PATH_SYSTEM
@ BLENDER_RESOURCE_PATH_LOCAL
@ BLENDER_RESOURCE_PATH_USER
std::optional< std::string > BKE_appdir_resource_path_id(int folder_id, bool check_is_dir)
Definition appdir.cc:834
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:970
bool BKE_appdir_app_template_has_userpref(const char *app_template) ATTR_NONNULL(1)
Definition appdir.cc:1096
bool BKE_appdir_folder_documents(char *dir) ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT
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:721
const char * BKE_appdir_folder_default_or_root() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition appdir.cc:163
@ 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_tempdir_base() ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition appdir.cc:1243
bool BKE_appdir_app_template_any()
Definition appdir.cc:1077
bool BKE_appdir_folder_caches(char *path, size_t path_maxncpy) ATTR_NONNULL(1)
Definition appdir.cc:203
bool BKE_appdir_font_folder_default(char *dir, size_t dir_maxncpy)
Definition appdir.cc:233
void BKE_tempdir_session_purge()
Definition appdir.cc:1248
void BKE_appdir_program_path_init(const char *argv0) ATTR_NONNULL(1)
Definition appdir.cc:933
std::optional< std::string > BKE_appdir_folder_id_create(int folder_id, const char *subfolder) ATTR_WARN_UNUSED_RESULT
Definition appdir.cc:781
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_RETURNS_NONNULL
#define ATTR_NONNULL(...)
char program_filepath[FILE_MAX]
Definition appdir.cc:66
void * BKE_tempdir_session
Definition stubs.c:38
char app_template[64]
Definition wm_files.cc:1191