Dealing with breaking chromium M75 change

Having problems with building or using CEF's C/C++ APIs? This forum is here to help. Please do not post bug reports or feature requests here.

Dealing with breaking chromium M75 change

Postby linuxcef9 » Wed Sep 04, 2019 4:21 pm

Hi,

In version prior to 3770 branch, I followed https://bitbucket.org/chromiumembedded/ ... dows-setup and built the libcef.dll and libcef_dll_wrapper and then consumed them in my app. libcef.dll build used clang and lld-link and my app used MSVC toolchain (cl.exe and link.exe).

When using a branch after 3770, I again followed the same steps as above. libcef.dll and libcef_dll_wrapper built fine. However, when consuming them in my app, I ran into lot of linker errors. Another user (naoki) ran into same issue as mentioned here : https://magpcss.org/ceforum/viewtopic.php?f=6&t=16905

The root cause is that prior to 3770, chromium did NOT use libc++ . I verified that by checking that libc++ repository is not synced. Chromium moved to libc++ as per commit https://chromium.googlesource.com/chrom ... 04e96676e0 in 3770. So whenever we try to build a branch after 3770,
libcef.dll links against libc++. When my app tries to consume it via MSVC toolchain, it doesn't find the right definitions, as MSVC doesn't use libc++ and thus, there are many linker errors.

Marshall is kinda aware of this problem as per his comment here : https://bitbucket.org/chromiumembedded/ ... ink-errors.

So I've the following questions:

1) What's the right way to move forward, to ensure that the app, which uses MSVC toolchain (for now), can be built fine by consuming libcef.dll which links against libc++ ?

2) Using "AutomatedBuildSetup" (https://bitbucket.org/chromiumembedded/ ... BuildSetup) , the user naoki was able to link win32 app with libcef_dll_wrapper.lib as per viewtopic.php?f=6&t=16932#p42718 . I don't see the "Automated Method" adding any flags which turns off libc++ so I am confused how things worked there. Only reason I can think of is
naoki used clang-cl to compile and lld-link to link the MFC app with CEF

3) Builds on openspotify have the option to generate solution file and build application with Visual Studio. How does it work in their case? Ideally, they would run into the same issue , unless they somehow forced chromium to use MSVC toolchain?

So what should be the right way to move forward and can you shed some light on my above questions ?

Thanks in advance!

(Edited to add automatedBuildSetup link)
linuxcef9
Expert
 
Posts: 143
Joined: Tue Nov 06, 2018 3:08 pm

Re: Dealing with breaking chromium M75 change

Postby magreenblatt » Wed Sep 04, 2019 5:45 pm

The libcef library can be built with libc++ enabled because the C ABI isolates the runtime. The official setup builds cef_sandbox separately from libcef (different out directory), and with libc++ disabled. This is the version of cef_sandbox that is included in the official binary distribution. You should also be using a binary distribution to build libcef_dll_wrapper from source code as part of your msvc project so that it shares the same runtime.
magreenblatt
Site Admin
 
Posts: 12407
Joined: Fri May 29, 2009 6:57 pm

Re: Dealing with breaking chromium M75 change

Postby linuxcef9 » Wed Sep 04, 2019 7:25 pm

magreenblatt wrote: The libcef library can be built with libc++ enabled because the C ABI isolates the runtime. The official setup builds cef_sandbox separately from libcef (different out directory), and with libc++ disabled. This is the version of cef_sandbox that is included in the official binary distribution. You should also be using a binary distribution to build libcef_dll_wrapper from source code as part of your msvc project so that it shares the same runtime.


Sorry I am still confused. So libcef is built with libc++ enabled. cef_sandbox is built with libc++ disabled. So my app, using MSVC toolchain should be able to link fine with cef_sandbox.lib but it will have errors linking with libcef.

What if I want my build workflow to be similar to openspotify? Basically, get the libcef.dll and libcef.lib and then use visual studio to link them with my app. How can I get that to work with current setup?
linuxcef9
Expert
 
Posts: 143
Joined: Tue Nov 06, 2018 3:08 pm

Re: Dealing with breaking chromium M75 change

Postby magreenblatt » Wed Sep 04, 2019 7:37 pm

Libcef does not export C++ symbols, so there is no linking error due to the C++ runtime.
magreenblatt
Site Admin
 
Posts: 12407
Joined: Fri May 29, 2009 6:57 pm

Re: Dealing with breaking chromium M75 change

Postby linuxcef9 » Wed Sep 04, 2019 7:48 pm

Ah I see. I am seeing multiple libcef_dll_wrapper.lib errors. I guess libcef_dll_wrapper uses libc++ and hence I am seeing these errors?
Never saw such errors with previous versions of cef.


Code: Select all
MyFile.obj : error LNK2019: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,wchar_t const *)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@PB_W@Z) referenced in function "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "protected: void __thiscall std::__1::ios_base::init(void *)" (?init@ios_base@__1@std@@IAEXPAX@Z) referenced in function "public: __thiscall cef::logging::LogMessage::LogMessage(char const *,int,int)" (??0LogMessage@logging@cef@@QAE@PBDHH@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "protected: __thiscall std::__1::basic_streambuf<char,struct std::__1::char_traits<char> >::basic_streambuf<char,struct std::__1::char_traits<char> >(void)" (??0?$basic_streambuf@DU?$char_traits@D@__1@std@@@__1@std@@IAE@XZ) referenced in function "public: __thiscall cef::logging::LogMessage::LogMessage(char const *,int,int)" (??0LogMessage@logging@cef@@QAE@PBDHH@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: virtual __thiscall std::__1::basic_streambuf<char,struct std::__1::char_traits<char> >::~basic_streambuf<char,struct std::__1::char_traits<char> >(void)" (??1?$basic_streambuf@DU?$char_traits@D@__1@std@@@__1@std@@UAE@XZ) referenced in function "public: __thiscall cef::logging::LogMessage::~LogMessage(void)" (??1LogMessage@logging@cef@@QAE@XZ)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: virtual __thiscall std::__1::basic_ostream<char,struct std::__1::char_traits<char> >::~basic_ostream<char,struct std::__1::char_traits<char> >(void)" (??1?$basic_ostream@DU?$char_traits@D@__1@std@@@__1@std@@UAE@XZ) referenced in function "public: __thiscall cef::logging::LogMessage::~LogMessage(void)" (??1LogMessage@logging@cef@@QAE@XZ)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: virtual __thiscall std::__1::basic_ios<char,struct std::__1::char_traits<char> >::~basic_ios<char,struct std::__1::char_traits<char> >(void)" (??1?$basic_ios@DU?$char_traits@D@__1@std@@@__1@std@@UAE@XZ) referenced in function "public: __thiscall cef::logging::LogMessage::~LogMessage(void)" (??1LogMessage@logging@cef@@QAE@XZ)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > & __thiscall std::__1::basic_ostream<char,struct std::__1::char_traits<char> >::operator<<(unsigned long)" (??6?$basic_ostream@DU?$char_traits@D@__1@std@@@__1@std@@QAEAAV012@K@Z) referenced in function "class std::__1::basic_string<char,struct std::__1::char_traits<char>,class std::__1::allocator<char> > __cdecl cef::logging::SystemErrorCodeToString(unsigned long)" (?SystemErrorCodeToString@logging@cef@@YA?AV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@K@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: class std::__1::basic_string<char,struct std::__1::char_traits<char>,class std::__1::allocator<char> > & __thiscall std::__1::basic_string<char,struct std::__1::char_traits<char>,class std::__1::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@QAEAAV123@II@Z) referenced in function "class std::__1::basic_string<char,struct std::__1::char_traits<char>,class std::__1::allocator<char> > __cdecl cef::logging::SystemErrorCodeToString(unsigned long)" (?SystemErrorCodeToString@logging@cef@@YA?AV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@K@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: virtual __thiscall std::__1::basic_iostream<char,struct std::__1::char_traits<char> >::~basic_iostream<char,struct std::__1::char_traits<char> >(void)" (??1?$basic_iostream@DU?$char_traits@D@__1@std@@@__1@std@@UAE@XZ) referenced in function "class std::__1::basic_string<char,struct std::__1::char_traits<char>,class std::__1::allocator<char> > __cdecl cef::logging::SystemErrorCodeToString(unsigned long)" (?SystemErrorCodeToString@logging@cef@@YA?AV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@K@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "protected: void __thiscall std::__1::__basic_string_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__basic_string_common@$00@__1@std@@IBEXXZ) referenced in function "class std::__1::basic_string<char,struct std::__1::char_traits<char>,class std::__1::allocator<char> > __cdecl cef::logging::SystemErrorCodeToString(unsigned long)" (?SystemErrorCodeToString@logging@cef@@YA?AV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@K@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: void __thiscall std::__1::basic_string<char,struct std::__1::char_traits<char>,class std::__1::allocator<char> >::push_back(char)" (?push_back@?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@QAEXD@Z) referenced in function "protected: virtual int __thiscall std::__1::basic_stringbuf<char,struct std::__1::char_traits<char>,class std::__1::allocator<char> >::overflow(int)" (?overflow@?$basic_stringbuf@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@MAEHH@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: void __thiscall std::__1::basic_string<char,struct std::__1::char_traits<char>,class std::__1::allocator<char> >::resize(unsigned int,char)" (?resize@?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@QAEXID@Z) referenced in function "protected: virtual int __thiscall std::__1::basic_stringbuf<char,struct std::__1::char_traits<char>,class std::__1::allocator<char> >::overflow(int)" (?overflow@?$basic_stringbuf@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@MAEHH@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > & __thiscall std::__1::basic_ostream<char,struct std::__1::char_traits<char> >::flush(void)" (?flush@?$basic_ostream@DU?$char_traits@D@__1@std@@@__1@std@@QAEAAV123@XZ) referenced in function "class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > & __cdecl std::__1::__put_character_sequence<char,struct std::__1::char_traits<char> >(class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > &,char const *,unsigned int)" (??$__put_character_sequence@DU?$char_traits@D@__1@std@@@__1@std@@YAAAV?$basic_ostream@DU?$char_traits@D@__1@std@@@01@AAV201@PBDI@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: class std::__1::locale __thiscall std::__1::ios_base::getloc(void)const " (?getloc@ios_base@__1@std@@QBE?AVlocale@23@XZ) referenced in function "class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > & __cdecl std::__1::__put_character_sequence<char,struct std::__1::char_traits<char> >(class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > &,char const *,unsigned int)" (??$__put_character_sequence@DU?$char_traits@D@__1@std@@@__1@std@@YAAAV?$basic_ostream@DU?$char_traits@D@__1@std@@@01@AAV201@PBDI@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: static class std::__1::locale::id std::__1::ctype<char>::id" (?id@?$ctype@D@__1@std@@2V0locale@23@A) referenced in function "class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > & __cdecl std::__1::__put_character_sequence<char,struct std::__1::char_traits<char> >(class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > &,char const *,unsigned int)" (??$__put_character_sequence@DU?$char_traits@D@__1@std@@@__1@std@@YAAAV?$basic_ostream@DU?$char_traits@D@__1@std@@@01@AAV201@PBDI@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "private: class std::__1::locale::facet const * __thiscall std::__1::locale::use_facet(class std::__1::locale::id &)const " (?use_facet@locale@__1@std@@ABEPBVfacet@123@AAVid@123@@Z) referenced in function "class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > & __cdecl std::__1::__put_character_sequence<char,struct std::__1::char_traits<char> >(class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > &,char const *,unsigned int)" (??$__put_character_sequence@DU?$char_traits@D@__1@std@@@__1@std@@YAAAV?$basic_ostream@DU?$char_traits@D@__1@std@@@01@AAV201@PBDI@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: __thiscall std::__1::locale::~locale(void)" (??1locale@__1@std@@QAE@XZ) referenced in function "class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > & __cdecl std::__1::__put_character_sequence<char,struct std::__1::char_traits<char> >(class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > &,char const *,unsigned int)" (??$__put_character_sequence@DU?$char_traits@D@__1@std@@@__1@std@@YAAAV?$basic_ostream@DU?$char_traits@D@__1@std@@@01@AAV201@PBDI@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: void __thiscall std::__1::ios_base::clear(unsigned int)" (?clear@ios_base@__1@std@@QAEXI@Z) referenced in function "class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > & __cdecl std::__1::__put_character_sequence<char,struct std::__1::char_traits<char> >(class std::__1::basic_ostream<char,struct std::__1::char_traits<char> > &,char const *,unsigned int)" (??$__put_character_sequence@DU?$char_traits@D@__1@std@@@__1@std@@YAAAV?$basic_ostream@DU?$char_traits@D@__1@std@@@01@AAV201@PBDI@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2019: unresolved external symbol "public: virtual __thiscall std::__1::basic_istream<char,struct std::__1::char_traits<char> >::~basic_istream<char,struct std::__1::char_traits<char> >(void)" (??1?$basic_istream@DU?$char_traits@D@__1@std@@@__1@std@@UAE@XZ) referenced in function "public: virtual void * __thiscall std::__1::basic_istream<char,struct std::__1::char_traits<char> >::`scalar deleting destructor'(unsigned int)" (??_G?$basic_istream@DU?$char_traits@D@__1@std@@@__1@std@@UAEPAXI@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2001: unresolved external symbol "protected: virtual void __thiscall std::__1::basic_streambuf<char,struct std::__1::char_traits<char> >::imbue(class std::__1::locale const &)" (?imbue@?$basic_streambuf@DU?$char_traits@D@__1@std@@@__1@std@@MAEXABVlocale@23@@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2001: unresolved external symbol "protected: virtual class std::__1::basic_streambuf<char,struct std::__1::char_traits<char> > * __thiscall std::__1::basic_streambuf<char,struct std::__1::char_traits<char> >::setbuf(char *,int)" (?setbuf@?$basic_streambuf@DU?$char_traits@D@__1@std@@@__1@std@@MAEPAV123@PADH@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2001: unresolved external symbol "protected: virtual int __thiscall std::__1::basic_streambuf<char,struct std::__1::char_traits<char> >::sync(void)" (?sync@?$basic_streambuf@DU?$char_traits@D@__1@std@@@__1@std@@MAEHXZ)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2001: unresolved external symbol "protected: virtual int __thiscall std::__1::basic_streambuf<char,struct std::__1::char_traits<char> >::showmanyc(void)" (?showmanyc@?$basic_streambuf@DU?$char_traits@D@__1@std@@@__1@std@@MAEHXZ)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2001: unresolved external symbol "protected: virtual int __thiscall std::__1::basic_streambuf<char,struct std::__1::char_traits<char> >::xsgetn(char *,int)" (?xsgetn@?$basic_streambuf@DU?$char_traits@D@__1@std@@@__1@std@@MAEHPADH@Z)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2001: unresolved external symbol "protected: virtual int __thiscall std::__1::basic_streambuf<char,struct std::__1::char_traits<char> >::uflow(void)" (?uflow@?$basic_streambuf@DU?$char_traits@D@__1@std@@@__1@std@@MAEHXZ)
libcef_dll_wrapper.lib(cef_logging.obj) : error LNK2001: unresolved external symbol "protected: virtual int __thiscall std::__1::basic_streambuf<char,struct std::__1::char_traits<char> >::xsputn(char const *,int)" (?xsputn@?$basic_streambuf@DU?$char_traits@D@__1@std@@@__1@std@@MAEHPBDH@Z)
libcef_dll_wrapper.lib(print_settings_ctocpp.obj) : error LNK2001: unresolved external symbol "protected: void __thiscall std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IBEXXZ)
libcef_dll_wrapper.lib(render_handler_cpptoc.obj) : error LNK2001: unresolved external symbol "protected: void __thiscall std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IBEXXZ)
libcef_dll_wrapper.lib(request_handler_cpptoc.obj) : error LNK2001: unresolved external symbol "protected: void __thiscall std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IBEXXZ)
libcef_dll_wrapper.lib(x509certificate_ctocpp.obj) : error LNK2001: unresolved external symbol "protected: void __thiscall std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IBEXXZ)
libcef_dll_wrapper.lib(post_data_ctocpp.obj) : error LNK2001: unresolved external symbol "protected: void __thiscall std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IBEXXZ)
libcef_dll_wrapper.lib(browser_ctocpp.obj) : error LNK2001: unresolved external symbol "protected: void __thiscall std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IBEXXZ)
libcef_dll_wrapper.lib(transfer_util.obj) : error LNK2001: unresolved external symbol "protected: void __thiscall std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IBEXXZ)
libcef_dll_wrapper.lib(v8handler_cpptoc.obj) : error LNK2001: unresolved external symbol "protected: void __thiscall std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IBEXXZ)
libcef_dll_wrapper.lib(drag_handler_cpptoc.obj) : error LNK2001: unresolved external symbol "protected: void __thiscall std::__1::__vector_base_common<1>::__throw_length_error(void)const " (?__throw_length_error@?$__vector_base_common@$00@__1@std@@IBEXXZ)
MyCefPlayer.exe : fatal error LNK1120: 27 unresolved externals

linuxcef9
Expert
 
Posts: 143
Joined: Tue Nov 06, 2018 3:08 pm

Re: Dealing with breaking chromium M75 change

Postby magreenblatt » Wed Sep 04, 2019 7:53 pm

As stated above, you should be using a binary distribution to build libcef_dll_wrapper from source code as part of your msvc project so that it shares the same runtime.
magreenblatt
Site Admin
 
Posts: 12407
Joined: Fri May 29, 2009 6:57 pm

Re: Dealing with breaking chromium M75 change

Postby linuxcef9 » Wed Sep 04, 2019 8:00 pm

magreenblatt wrote:As stated above, you should be using a binary distribution to build libcef_dll_wrapper from source code as part of your msvc project so that it shares the same runtime.


Alright, thanks. One final question. I can think of 2 ways to solve the issue:

1) Use binary distribution as you suggested
2) Replace cefclient source code with my app code and just built it once and then use the resulting binary directly

Do you think option 2 should be okay or are there any drawbacks which I haven't thought of?

THanks again.
linuxcef9
Expert
 
Posts: 143
Joined: Tue Nov 06, 2018 3:08 pm

Re: Dealing with breaking chromium M75 change

Postby magreenblatt » Wed Sep 04, 2019 10:15 pm

Well, it depends on your application, but always having to build CEF/Chromium from source code seems like a drawback with option 2.
magreenblatt
Site Admin
 
Posts: 12407
Joined: Fri May 29, 2009 6:57 pm

Re: Dealing with breaking chromium M75 change

Postby linuxcef9 » Thu Sep 05, 2019 2:06 pm

magreenblatt wrote:Well, it depends on your application, but always having to build CEF/Chromium from source code seems like a drawback with option 2.


Yes true. I have thought of another approach and need little help figuring out changes. I can actually just make libcef_dll_wrapper with ninja with use_custom_libcxx = False.
But I am not sure where do I make that change?

For Cef_sandbox, you made that change here : https://bitbucket.org/chromiumembedded/ ... gn_args.py but I don't see any way to change it only for libcef_dll_wrapper.

This seems to be a good place https://bitbucket.org/chromiumembedded/ ... e/BUILD.gn but I am not sure if I can just do use_custom_libcxx = false there.

Any ideas?
linuxcef9
Expert
 
Posts: 143
Joined: Tue Nov 06, 2018 3:08 pm

Re: Dealing with breaking chromium M75 change

Postby magreenblatt » Thu Sep 05, 2019 2:52 pm

You would need to build libcef_dll_wrapper in a different output directory with different args.gn, similar to how cef_sandbox is built when is_official_build=true. Look at how the --sandbox-distrib flag works with automate-git.py.
magreenblatt
Site Admin
 
Posts: 12407
Joined: Fri May 29, 2009 6:57 pm

Next

Return to Support Forum

Who is online

Users browsing this forum: No registered users and 28 guests