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.
This commit is contained in:
Jacques Lucke 2021-12-06 17:30:42 +01:00
parent 7d1a10a9bb
commit c2292b2cd6
7 changed files with 0 additions and 107 deletions

View File

@ -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
/** \} */

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
/** \} */

View File

@ -52,7 +52,3 @@ class GeometryBuilder : public SocketDeclarationBuilder<Geometry> {
};
} // namespace blender::nodes::decl
namespace blender::nodes {
MAKE_EXTERN_SOCKET_DECLARATION(decl::Geometry)
}

View File

@ -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