tree: 2636d89acd414c9cc3d7488a60cff2217b55c5ea
  1. doc/
  2. inc/
  3. prj/
  4. qa/
  5. source/
  6. src2xml/
  7. test/
  8. uiconfig/
  9. util/
  10. workben/
  11. BUILD.bazel
  12. JunitTest_toolkit_complex.mk
  13. JunitTest_toolkit_unoapi.mk
  14. Library_tk.mk
  15. Makefile
  16. Module_toolkit.mk
  17. Package_inc.mk
  18. Package_source.mk
  19. Package_util.mk
  20. readme.md
main/toolkit/readme.md

toolkit — Bazel Migration

Output

  • ootk.dll — UNO toolkit component (AWT window/control wrappers, layout engine)

Key decisions

Dead source file excluded

source/awt/vclxtabpagemodel.cxx is present on disk but not listed in Library_tk.mk. It calls GetWindow() / getGraphics() from VCLXWindow even though VCLXTabPageModel inherits from UnoControlModel, not VCLXWindow. Excluded via glob exclude = [...].

MSVC boost::bind fix (inc/pch/boost_bind_msvc_fix.hpp)

The original build used MinGW/GCC which ignores calling convention and exception specifications in member-function-pointer template type matching.

MSVC 9.0 encodes both into the type:

  • SAL_CALL = __cdecl is part of the member-function-pointer type
  • Boost 1.55 only generates __cdecl mf-wrapper overloads when BOOST_MEM_FN_ENABLE_CDECL is defined; without it, bind(R(T::*f)(B1),...) does not match a __cdecl pointer and the call falls through to the generic path, which then fails at result_traits<unspecified, F>::type (C2825).

Fix: define BOOST_MEM_FN_ENABLE_CDECL before any boost include (via /FI force-include of the shim). MSVC then matches the __cdecl overloads, and also allows implicit conversion from throw(RuntimeException) to no-throw-spec pointers within the same calling convention, covering all UNO listener method binds.

This fix is injected at the toolkit level only; it will be needed by any future module that uses boost::bind with SAL_CALL member function pointers.