void BKE_id_lib_local_paths(struct Main *bmain, struct Library *lib, struct ID *id);
void id_lib_extern(struct ID *id);
void id_lib_indirect_weak_link(struct ID *id);
-void BKE_library_filepath_set(struct Main *bmain, struct Library *lib, const char *filepath);
void id_us_ensure_real(struct ID *id);
void id_us_clear_real(struct ID *id);
void id_us_plus_no_lib(struct ID *id);
char *BKE_id_to_unique_string_key(const struct ID *id);
-void BKE_library_free(struct Library *lib);
-
void BKE_library_make_local(struct Main *bmain,
const struct Library *lib,
struct GHash *old_to_new_ids,
--- /dev/null
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ */
+#ifndef __BKE_LIBRARY_H__
+#define __BKE_LIBRARY_H__
+
+/** \file
+ * \ingroup bke
+ *
+ * API to manage `Library` data-blocks.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "BLI_compiler_attrs.h"
+
+struct Library;
+struct Main;
+
+void BKE_library_free(struct Library *lib);
+
+void BKE_library_filepath_set(struct Main *bmain, struct Library *lib, const char *filepath);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __BKE_LIBRARY_H__ */
intern/lib_override.c
intern/lib_query.c
intern/lib_remap.c
+ intern/library.c
intern/light.c
intern/lightprobe.c
intern/linestyle.c
BKE_lib_override.h
BKE_lib_query.h
BKE_lib_remap.h
+ BKE_library.h
BKE_light.h
BKE_lightprobe.h
BKE_linestyle.h
#include "BKE_font.h"
#include "BKE_lib_id.h"
+#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_report.h"
return idn;
}
-void BKE_library_free(Library *lib)
-{
- if (lib->packedfile) {
- BKE_packedfile_free(lib->packedfile);
- }
-}
-
/* ***************** ID ************************ */
ID *BKE_libblock_find_name(struct Main *bmain, const short type, const char *name)
{
}
}
-void BKE_library_filepath_set(Main *bmain, Library *lib, const char *filepath)
-{
- /* in some cases this is used to update the absolute path from the
- * relative */
- if (lib->name != filepath) {
- BLI_strncpy(lib->name, filepath, sizeof(lib->name));
- }
-
- BLI_strncpy(lib->filepath, filepath, sizeof(lib->filepath));
-
- /* not essential but set filepath is an absolute copy of value which
- * is more useful if its kept in sync */
- if (BLI_path_is_rel(lib->filepath)) {
- /* note that the file may be unsaved, in this case, setting the
- * filepath on an indirectly linked path is not allowed from the
- * outliner, and its not really supported but allow from here for now
- * since making local could cause this to be directly linked - campbell
- */
- /* Never make paths relative to parent lib - reading code (blenloader) always set *all*
- * lib->name relative to current main, not to their parent for indirectly linked ones. */
- const char *basepath = BKE_main_blendfile_path(bmain);
- BLI_path_abs(lib->filepath, basepath);
- }
-}
-
void BKE_id_tag_set_atomic(ID *id, int tag)
{
atomic_fetch_and_or_int32(&id->tag, tag);
#include "BKE_lib_id.h"
#include "BKE_lib_override.h"
#include "BKE_lib_remap.h"
+#include "BKE_library.h"
#include "BKE_linestyle.h"
#include "BKE_mesh.h"
#include "BKE_material.h"
--- /dev/null
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ */
+
+/** \file
+ * \ingroup bke
+ *
+ * Contains code specific to the `Library` ID type.
+ */
+
+#include "CLG_log.h"
+
+#include "MEM_guardedalloc.h"
+
+/* all types are needed here, in order to do memory operations */
+#include "DNA_ID.h"
+
+#include "BLI_utildefines.h"
+
+#include "BLI_blenlib.h"
+
+#include "BKE_lib_id.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_packedFile.h"
+
+/* Unused currently. */
+// static CLG_LogRef LOG = {.identifier = "bke.library"};
+
+void BKE_library_free(Library *lib)
+{
+ if (lib->packedfile) {
+ BKE_packedfile_free(lib->packedfile);
+ }
+}
+
+void BKE_library_filepath_set(Main *bmain, Library *lib, const char *filepath)
+{
+ /* in some cases this is used to update the absolute path from the
+ * relative */
+ if (lib->name != filepath) {
+ BLI_strncpy(lib->name, filepath, sizeof(lib->name));
+ }
+
+ BLI_strncpy(lib->filepath, filepath, sizeof(lib->filepath));
+
+ /* not essential but set filepath is an absolute copy of value which
+ * is more useful if its kept in sync */
+ if (BLI_path_is_rel(lib->filepath)) {
+ /* note that the file may be unsaved, in this case, setting the
+ * filepath on an indirectly linked path is not allowed from the
+ * outliner, and its not really supported but allow from here for now
+ * since making local could cause this to be directly linked - campbell
+ */
+ /* Never make paths relative to parent lib - reading code (blenloader) always set *all*
+ * lib->name relative to current main, not to their parent for indirectly linked ones. */
+ const char *basepath = BKE_main_blendfile_path(bmain);
+ BLI_path_abs(lib->filepath, basepath);
+ }
+}
#include "BKE_key.h"
#include "BKE_lib_id.h"
+#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_report.h"
#include "BKE_idcode.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
+#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_modifier.h"
#include "BKE_object.h"
# include "BKE_lib_query.h"
# include "BKE_lib_override.h"
# include "BKE_lib_remap.h"
+# include "BKE_library.h"
# include "BKE_animsys.h"
# include "BKE_material.h"
# include "BKE_global.h" /* XXX, remove me */