Fold InternalUnoApi_embindtest into UnoApi_udkapi

80d3f33876 "Library_embindtest should use
comprehensive InternalUnoApi_embindtest" was an attempt at making type
information about that library available at runtime.  Which worked for cases
where code directly called one of the types' cppu_detail_getUnoType function.
But it would still fail for cases where code indirectly wants to obtain one of
the types' information by type name---which is what upcoming code will do that
changes the Embind'ing of UNO sequences.

So InternalUnoApi_embindtest would need to become a UnoApi_embindtest whose
instdir/program/types/embindtest.rdb would be available at runtime.  But I'm too
dumb to convince gbuild to create that new UnoApi_embindtest.  So instead just
tack the embindtest UNOIDL entities onto the existing UnoApi_udkapi for the
EMSCRIPTEN-ENABLE_DBGUTIL case.  (Which requires that the single embindtest.idl
is split into individual per-entity files, sigh.)

Change-Id: Ie189b17213ac5b2de7a61ac5f97a143fa097337f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164057
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
This commit is contained in:
Stephan Bergmann
2024-02-28 07:52:11 +01:00
parent 9071cd6e59
commit 80e2c4e5b9
8 changed files with 46 additions and 35 deletions
+10
View File
@@ -520,6 +520,16 @@ $(eval $(call gb_UnoApi_add_idlfiles,udkapi,com/sun/star/util,\
XVeto \
))
ifeq ($(OS)-$(ENABLE_DBGUTIL),EMSCRIPTEN-TRUE)
$(eval $(call gb_UnoApi_add_idlfiles,udkapi,org/libreoffice/embindtest, \
Struct \
XTest \
))
$(eval $(call gb_UnoApi_add_idlfiles_nohdl,udkapi,org/libreoffice/embindtest, \
Test \
))
endif
$(eval $(call gb_UnoApi_set_reference_rdbfile,udkapi,$(SRCDIR)/udkapi/type_reference/udkapi.idl))
# vim: set noet sw=4 ts=4:
@@ -0,0 +1,20 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
module org { module libreoffice { module embindtest {
struct Struct {
long m1;
double m2;
string m3;
};
}; }; };
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
@@ -0,0 +1,16 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
module org { module libreoffice { module embindtest {
singleton Test: XTest;
}; }; };
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
@@ -0,0 +1,71 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
module org { module libreoffice { module embindtest {
interface XTest {
boolean getBoolean();
boolean isBoolean([in] boolean value);
byte getByte();
boolean isByte([in] byte value);
short getShort();
boolean isShort([in] short value);
unsigned short getUnsignedShort();
boolean isUnsignedShort([in] unsigned short value);
long getLong();
boolean isLong([in] long value);
unsigned long getUnsignedLong();
boolean isUnsignedLong([in] unsigned long value);
hyper getHyper();
boolean isHyper([in] hyper value);
unsigned hyper getUnsignedHyper();
boolean isUnsignedHyper([in] unsigned hyper value);
float getFloat();
boolean isFloat([in] float value);
double getDouble();
boolean isDouble([in] double value);
char getChar();
boolean isChar([in] char value);
string getString();
boolean isString([in] string value);
Struct getStruct();
boolean isStruct([in] Struct value);
sequence<boolean> getSequenceBoolean();
boolean isSequenceBoolean([in] sequence<boolean> value);
sequence<byte> getSequenceByte();
boolean isSequenceByte([in] sequence<byte> value);
sequence<short> getSequenceShort();
boolean isSequenceShort([in] sequence<short> value);
sequence<unsigned short> getSequenceUnsignedShort();
boolean isSequenceUnsignedShort([in] sequence<unsigned short> value);
sequence<long> getSequenceLong();
boolean isSequenceLong([in] sequence<long> value);
sequence<unsigned long> getSequenceUnsignedLong();
boolean isSequenceUnsignedLong([in] sequence<unsigned long> value);
sequence<hyper> getSequenceHyper();
boolean isSequenceHyper([in] sequence<hyper> value);
sequence<unsigned hyper> getSequenceUnsignedHyper();
boolean isSequenceUnsignedHyper([in] sequence<unsigned hyper> value);
sequence<float> getSequenceFloat();
boolean isSequenceFloat([in] sequence<float> value);
sequence<double> getSequenceDouble();
boolean isSequenceDouble([in] sequence<double> value);
sequence<char> getSequenceChar();
boolean isSequenceChar([in] sequence<char> value);
sequence<string> getSequenceString();
boolean isSequenceString([in] sequence<string> value);
sequence<sequence<string> > getSequenceSequenceString();
boolean isSequenceSequenceString([in] sequence<sequence<string> > value);
sequence<Struct> getSequenceStruct();
boolean isSequenceStruct([in] sequence<Struct> value);
};
}; }; };
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */