chromiumembedded / java-cef

Java Chromium Embedded Framework (JCEF). A simple framework for embedding Chromium-based browsers in other applications using the Java programming language.
https://bitbucket.org/chromiumembedded/java-cef
Other
648 stars 142 forks source link

HEAD of master branch will not build in Visual Studio 2017 #409

Closed magreenblatt closed 2 years ago

magreenblatt commented 2 years ago

Original report by Dennis Stacer (Bitbucket: Dennis Stacer).


  1. Reproduce by following manual build steps at https://bitbucket.org/chromiumembedded/java-cef/wiki/BranchesAndBuilding. Building solution for x64 or Win32, Debug or Release, fails.
  2. Expected output: 4 succeeded, 0 failed. Instead, build fails with the following error: C:\projects\jcef94\src\third_party\cef\cef_binary_94.4.2+g6a963ca+chromium-94.0.4606.61_windows64\include/base/internal/cef_bind_internal.h(1250): error C2440: 'initializing': cannot convert from 'R (__cdecl *)(base::internal::BindStateBase *,conditional<_Test,const std::string&,const std::string&>::type)' to 'PolymorphicInvoke'
    2> with
    2> [
    2> R=std::basic_string<char,std::char_traits,std::allocator>
    2> ] (compiling source file C:\projects\jcef94\src\third_party\cef\cef_binary_94.4.2+g6a963ca+chromium-94.0.4606.61_windows64\libcef_dll\wrapper\cef_resource_manager.cc)
    2>C:\projects\jcef94\src\third_party\cef\cef_binary_94.4.2+g6a963ca+chromium-94.0.4606.61_windows64\include/base/internal/cef_bind_internal.h(1250): note: This conversion requires a reinterpret_cast, a C-style cast or function-style cast (compiling source file C:\projects\jcef94\src\third_party\cef\cef_binary_94.4.2+g6a963ca+chromium-94.0.4606.61_windows64\libcef_dll\wrapper\cef_resource_manager.cc)
    2>C:\projects\jcef94\src\third_party\cef\cef_binary_94.4.2+g6a963ca+chromium-94.0.4606.61_windows64\include/base/cef_bind.h(126): note: see reference to function template instantiation 'decltype(auto) base::internal::BindImpl<base::RepeatingCallback,std::string(__cdecl &)(const std::string &),>(Functor)' being compiled
    2> with
    2> [
    2> Functor=std::string (__cdecl &)(const std::string &)
    2> ] (compiling source file C:\projects\jcef94\src\third_party\cef\cef_binary_94.4.2+g6a963ca+chromium-94.0.4606.61_windows64\libcef_dll\wrapper\cef_resource_manager.cc)
    2>C:\projects\jcef94\src\third_party\cef\cef_binary_94.4.2+g6a963ca+chromium-94.0.4606.61_windows64\libcef_dll\wrapper\cef_resource_manager.cc(424): note: see reference to function template instantiation 'base::RepeatingCallback<std::string (const std::string &)> base::BindRepeating<std::string(__cdecl &)(const std::string &),>(Functor)' being compiled
    2> with
    2> [
    2> Functor=std::string (__cdecl &)(const std::string &)
    2> ]
    2>Done building project "libcef_dll_wrapper.vcxproj" -- FAILED.

The other projects compile but cannot link libcef_dll_wrapper.lib due to it not building.

3. Version: https://bitbucket.org/chromiumembedded/java-cef/commits/23a6e9616ab281fc1f4ce33f50a60d76323a1aeb (cef 94.4.2+g6a963ca+chromium-94.0.4606.61_windows64)

4. NA

5. NA

magreenblatt commented 2 years ago

Original comment by Johann Scheiterbauer (Bitbucket: Phylanx, GitHub: Phylanx).


Building current CEF Versions require Visual Studio 2019, maybe JCEF followed up with that?

magreenblatt commented 2 years ago

As mentioned above, Visual Studio 2019 is now required.

magreenblatt commented 2 years ago

Original comment by Dennis Stacer (Bitbucket: Dennis Stacer).


Tested with VS 2019, the build does succeed. I just thought it was odd that it failed, since the build 2 commits back, 926b08f, built fine under VS 2017. Apparently significant changes happened in the underlying CEF source between commits (92.0.25 → 94.4.2) that breaks VS 2017 support.

Thanks,

Dennis

magreenblatt commented 2 years ago