[Bf-blender-cvs] [c2292b2cd62] master: Cleanup: remove unnecessary extern template implementations

Jacques Lucke noreply at git.blender.org
Mon Dec 6 17:31:57 CET 2021


Commit: c2292b2cd62ae3155928385251bbcb1a00c29ad1
Author: Jacques Lucke
Date:   Mon Dec 6 17:30:42 2021 +0100
Branches: master
https://developer.blender.org/rBc2292b2cd62ae3155928385251bbcb1a00c29ad1

Cleanup: remove unnecessary extern template implementations

This technique isn't really necessary anymore, because unity builds
avoid instantiating the same template too many times already.

===================================================================

M	source/blender/blenkernel/BKE_attribute_access.hh
M	source/blender/blenkernel/CMakeLists.txt
D	source/blender/blenkernel/intern/extern_implementations.cc
M	source/blender/nodes/CMakeLists.txt
M	source/blender/nodes/NOD_socket_declarations.hh
M	source/blender/nodes/NOD_socket_declarations_geometry.hh
D	source/blender/nodes/intern/extern_implementations.cc

===================================================================

diff --git a/source/blender/blenkernel/BKE_attribute_access.hh b/source/blender/blenkernel/BKE_attribute_access.hh
index 4402f6fbf74..b39d3c69bfd 100644
--- a/source/blender/blenkernel/BKE_attribute_access.hh
+++ b/source/blender/blenkernel/BKE_attribute_access.hh
@@ -516,19 +516,3 @@ template<typename T> inline MutableSpan<T> OutputAttribute::as_span()
 /** \} */
 
 }  // namespace blender::bke
-
-/* -------------------------------------------------------------------- */
-/** \name External Template Instantiations
- *
- * Defined in `intern/extern_implementations.cc`.
- * \{ */
-
-namespace blender::bke {
-extern template class OutputAttribute_Typed<float>;
-extern template class OutputAttribute_Typed<int>;
-extern template class OutputAttribute_Typed<float3>;
-extern template class OutputAttribute_Typed<bool>;
-extern template class OutputAttribute_Typed<ColorGeometry4f>;
-}  // namespace blender::bke
-
-/** \} */
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index c7e3a993ace..a2179a42520 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -139,7 +139,6 @@ set(SRC
   intern/editmesh_cache.c
   intern/editmesh_tangent.c
   intern/effect.c
-  intern/extern_implementations.cc
   intern/fcurve.c
   intern/fcurve_cache.c
   intern/fcurve_driver.c
diff --git a/source/blender/blenkernel/intern/extern_implementations.cc b/source/blender/blenkernel/intern/extern_implementations.cc
deleted file mode 100644
index 07a4b6fc455..00000000000
--- a/source/blender/blenkernel/intern/extern_implementations.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.
- */
-
-#include "BKE_attribute_access.hh"
-
-namespace blender::bke {
-
-template class OutputAttribute_Typed<float>;
-template class OutputAttribute_Typed<int>;
-template class OutputAttribute_Typed<float3>;
-template class OutputAttribute_Typed<bool>;
-template class OutputAttribute_Typed<ColorGeometry4f>;
-
-}  // namespace blender::bke
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index 88a851cfecb..a05063af067 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -277,7 +277,6 @@ set(SRC
   texture/node_texture_util.c
 
   intern/derived_node_tree.cc
-  intern/extern_implementations.cc
   intern/geometry_nodes_eval_log.cc
   intern/math_functions.cc
   intern/node_common.cc
diff --git a/source/blender/nodes/NOD_socket_declarations.hh b/source/blender/nodes/NOD_socket_declarations.hh
index f7aea212f73..7cb32a37ae2 100644
--- a/source/blender/nodes/NOD_socket_declarations.hh
+++ b/source/blender/nodes/NOD_socket_declarations.hh
@@ -369,26 +369,3 @@ inline Image::Image() : IDSocketDeclaration("NodeSocketImage")
 /** \} */
 
 }  // namespace blender::nodes::decl
-
-/* -------------------------------------------------------------------- */
-/** \name External Template Instantiations
- *
- * Defined in `intern/extern_implementations.cc`.
- * \{ */
-
-namespace blender::nodes {
-#define MAKE_EXTERN_SOCKET_DECLARATION(TYPE) \
-  extern template class SocketDeclarationBuilder<TYPE>; \
-  extern template TYPE::Builder &NodeDeclarationBuilder::add_input<TYPE>(StringRef, StringRef); \
-  extern template TYPE::Builder &NodeDeclarationBuilder::add_output<TYPE>(StringRef, StringRef);
-
-MAKE_EXTERN_SOCKET_DECLARATION(decl::Float)
-MAKE_EXTERN_SOCKET_DECLARATION(decl::Int)
-MAKE_EXTERN_SOCKET_DECLARATION(decl::Vector)
-MAKE_EXTERN_SOCKET_DECLARATION(decl::Bool)
-MAKE_EXTERN_SOCKET_DECLARATION(decl::Color)
-MAKE_EXTERN_SOCKET_DECLARATION(decl::String)
-
-}  // namespace blender::nodes
-
-/** \} */
diff --git a/source/blender/nodes/NOD_socket_declarations_geometry.hh b/source/blender/nodes/NOD_socket_declarations_geometry.hh
index 1531f82d67d..3c919729da9 100644
--- a/source/blender/nodes/NOD_socket_declarations_geometry.hh
+++ b/source/blender/nodes/NOD_socket_declarations_geometry.hh
@@ -52,7 +52,3 @@ class GeometryBuilder : public SocketDeclarationBuilder<Geometry> {
 };
 
 }  // namespace blender::nodes::decl
-
-namespace blender::nodes {
-MAKE_EXTERN_SOCKET_DECLARATION(decl::Geometry)
-}
diff --git a/source/blender/nodes/intern/extern_implementations.cc b/source/blender/nodes/intern/extern_implementations.cc
deleted file mode 100644
index 35de319f20b..00000000000
--- a/source/blender/nodes/intern/extern_implementations.cc
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.
- */
-
-#include "NOD_socket_declarations.hh"
-#include "NOD_socket_declarations_geometry.hh"
-
-namespace blender::nodes {
-#define MAKE_EXTERN_SOCKET_IMPLEMENTATION(TYPE) \
-  template class SocketDeclarationBuilder<TYPE>; \
-  template TYPE::Builder &NodeDeclarationBuilder::add_input<TYPE>(StringRef, StringRef); \
-  template TYPE::Builder &NodeDeclarationBuilder::add_output<TYPE>(StringRef, StringRef);
-
-MAKE_EXTERN_SOCKET_IMPLEMENTATION(decl::Float)
-MAKE_EXTERN_SOCKET_IMPLEMENTATION(decl::Int)
-MAKE_EXTERN_SOCKET_IMPLEMENTATION(decl::Vector)
-MAKE_EXTERN_SOCKET_IMPLEMENTATION(decl::Bool)
-MAKE_EXTERN_SOCKET_IMPLEMENTATION(decl::Color)
-MAKE_EXTERN_SOCKET_IMPLEMENTATION(decl::String)
-MAKE_EXTERN_SOCKET_IMPLEMENTATION(decl::Geometry)
-
-#undef MAKE_EXTERN_SOCKET_IMPLEMENTATION
-}  // namespace blender::nodes



More information about the Bf-blender-cvs mailing list