From 22b84424c702a6a85ccf127dfcbb6ce28b101774 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 9 Sep 2022 11:13:05 +1000 Subject: Cleanup: check for Python module in BKE_appdir_program_path_init Replace the argument with an in ifdef in BKE_appdir_program_path_init. At the time `blenkernel` didn't define WITH_PYTHON_MODULE, since it does now there is no need for an argument. With the minor benefit of fewer preprocessor checks in the main() function. --- source/blender/blenkernel/BKE_appdir.h | 5 +---- source/blender/blenkernel/intern/appdir.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/BKE_appdir.h b/source/blender/blenkernel/BKE_appdir.h index 16488bdbf09..dcacc2ca7b3 100644 --- a/source/blender/blenkernel/BKE_appdir.h +++ b/source/blender/blenkernel/BKE_appdir.h @@ -105,11 +105,8 @@ void BKE_appdir_app_templates(struct ListBase *templates); /** * Initialize path to program executable. - * - * \param strict: When true, use `argv0` unmodified (besides making absolute & normalizing). - * Otherwise other methods may be used to find the program path, including searching `$PATH`. */ -void BKE_appdir_program_path_init(const char *argv0, bool strict); +void BKE_appdir_program_path_init(const char *argv0); /** * Path to executable diff --git a/source/blender/blenkernel/intern/appdir.c b/source/blender/blenkernel/intern/appdir.c index 4bd8cfd5f47..845a890ba8b 100644 --- a/source/blender/blenkernel/intern/appdir.c +++ b/source/blender/blenkernel/intern/appdir.c @@ -793,6 +793,8 @@ const char *BKE_appdir_folder_id_version(const int folder_id, * \param fullname: The full path and full name of the executable * (must be #FILE_MAX minimum) * \param name: The name of the executable (usually `argv[0]`) to be checked + * \param strict: When true, use `argv0` unmodified (besides making absolute & normalizing). + * Otherwise other methods may be used to find the program path, including searching `$PATH`. */ static void where_am_i(char *fullname, const size_t maxlen, const char *name, const bool strict) { @@ -864,8 +866,16 @@ static void where_am_i(char *fullname, const size_t maxlen, const char *name, co } } -void BKE_appdir_program_path_init(const char *argv0, const bool strict) +void BKE_appdir_program_path_init(const char *argv0) { +#ifdef WITH_PYTHON_MODULE + /* NOTE(@campbellbarton): Always use `argv[0]` as is, when building as a Python module. + * Otherwise other methods of detecting the binary that override this argument + * which must point to the Python module for data-files to be detected. */ + const bool strict = true; +#else + const bool strict = false; +#endif where_am_i(g_app.program_filepath, sizeof(g_app.program_filepath), argv0, strict); BLI_split_dir_part(g_app.program_filepath, g_app.program_dirname, sizeof(g_app.program_dirname)); } -- cgit v1.2.3