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
605 stars 135 forks source link

Build fails for windows on cef v110 #435

Closed magreenblatt closed 1 year ago

magreenblatt commented 1 year ago

Original report by FriwiDev (Bitbucket: Fritz Windisch).


The compile process for the newest cef v110 commit fails on all windows distributions with the following error:

-- *** CEF CONFIGURATION SETTINGS ***
-- Generator:                    Ninja
-- Platform:                     Windows
-- Project architecture:         x86_64
-- Build type:                   Release
-- Binary distribution root:     C:/jcef/third_party/cef/cef_binary_110.0.25+g75b1c96+chromium-110.0.5481.78_windows64
-- Visual Studio ATL support:    ON
-- CEF sandbox:                  ON
-- Standard libraries:           comctl32.lib;gdi32.lib;rpcrt4.lib;shlwapi.lib;ws2_32.lib;Advapi32.lib;dbghelp.lib;Delayimp.lib;OleAut32.lib;PowrProf.lib;Propsys.lib;psapi.lib;SetupAPI.lib;Shell32.lib;Userenv.lib;version.lib;wbemuuid.lib;winmm.lib
-- Compile defines:              __STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;WIN32;_WIN32;_WINDOWS;UNICODE;_UNICODE;WINVER=0x0A00;_WIN32_WINNT=0x0A00;NTDDI_VERSION=NTDDI_WIN10_FE;NOMINMAX;WIN32_LEAN_AND_MEAN;_HAS_EXCEPTIONS=0;PSAPI_VERSION=1;CEF_USE_SANDBOX;CEF_USE_ATL
-- Compile defines (Debug):      _HAS_ITERATOR_DEBUGGING=0
-- Compile defines (Release):    NDEBUG;_NDEBUG
-- C compile flags:              /MP;/Gy;/GR-;/W4;/WX;/wd4100;/wd4127;/wd4244;/wd4324;/wd4481;/wd4512;/wd4701;/wd4702;/wd4996;/Zi 
-- C compile flags (Debug):      /MTd;/RTC1;/Od 
-- C compile flags (Release):    /MT;/O2;/Ob2;/GF 
-- C++ compile flags:            /MP;/Gy;/GR-;/W4;/WX;/wd4100;/wd4127;/wd4244;/wd4324;/wd4481;/wd4512;/wd4701;/wd4702;/wd4996;/Zi /std:c++17
-- C++ compile flags (Debug):    /MTd;/RTC1;/Od 
-- C++ compile flags (Release):  /MT;/O2;/Ob2;/GF 
-- Exe link flags:                /MANIFEST:NO;/LARGEADDRESSAWARE;/STACK:0x800000
-- Exe link flags (Debug):       /DEBUG 
-- Exe link flags (Release):      
-- Shared link flags:             
-- Shared link flags (Debug):    /DEBUG 
-- Shared link flags (Release):   
-- CEF Binary files:             chrome_elf.dll;libcef.dll;libEGL.dll;libGLESv2.dll;snapshot_blob.bin;v8_context_snapshot.bin;vk_swiftshader.dll;vk_swiftshader_icd.json;vulkan-1.dll;d3dcompiler_47.dll
-- CEF Resource files:           chrome_100_percent.pak;chrome_200_percent.pak;resources.pak;icudtl.dat;locales
-- *** JCEF CONFIGURATION SETTINGS ***
-- Python executable:            C:/Python37/python.exe
-- Java directory:               C:/Program Files/Java/jdk1.8.0_211
-- JNI libraries:                C:/Program Files/Java/jdk1.8.0_211/lib/jawt.lib;C:/Program Files/Java/jdk1.8.0_211/lib/jvm.lib
-- JNI include directories:      C:/Program Files/Java/jdk1.8.0_211/include;C:/Program Files/Java/jdk1.8.0_211/include/win32;C:/Program Files/Java/jdk1.8.0_211/include
-- Configuring done
-- Generating done
-- Build files have been written to: C:/jcef/jcef_build
[1/258] Building CXX object libcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\transfer_util.cc.obj
[2/258] Building CXX object libcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\shutdown_checker.cc.obj
[3/258] Building CXX object libcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\base\cef_callback_internal.cc.obj
FAILED: libcef_dll_wrapper/CMakeFiles/libcef_dll_wrapper.dir/base/cef_callback_internal.cc.obj 
C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DCEF_USE_ATL -DCEF_USE_SANDBOX -DNDEBUG -DNOMINMAX -DNTDDI_VERSION=NTDDI_WIN10_FE -DPSAPI_VERSION=1 -DUNICODE -DWIN32 -DWIN32_LEAN_AND_MEAN -DWINVER=0x0A00 -DWRAPPING_CEF_SHARED -D_HAS_EXCEPTIONS=0 -D_NDEBUG -D_UNICODE -D_WIN32 -D_WIN32_WINNT=0x0A00 -D_WINDOWS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -I..\third_party\cef\cef_binary_110.0.25+g75b1c96+chromium-110.0.5481.78_windows64 /MP /Gy /GR- /W4 /WX /wd4100 /wd4127 /wd4244 /wd4324 /wd4481 /wd4512 /wd4701 /wd4702 /wd4996 /Zi /std:c++17 /MT /O2 /Ob2 /GF /showIncludes /Folibcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\base\cef_callback_internal.cc.obj /Fdlibcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\libcef_dll_wrapper.pdb /FS -c ..\third_party\cef\cef_binary_110.0.25+g75b1c96+chromium-110.0.5481.78_windows64\libcef_dll\base\cef_callback_internal.cc
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\fileapi.h(1105): error C2061: syntax error: identifier 'FILE_INFO_BY_HANDLE_CLASS'
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9118): error C2061: syntax error: identifier 'FILE_INFO_BY_HANDLE_CLASS'
[4/258] Building CXX object libcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\base\cef_atomic_flag.cc.obj
FAILED: libcef_dll_wrapper/CMakeFiles/libcef_dll_wrapper.dir/base/cef_atomic_flag.cc.obj 
C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DCEF_USE_ATL -DCEF_USE_SANDBOX -DNDEBUG -DNOMINMAX -DNTDDI_VERSION=NTDDI_WIN10_FE -DPSAPI_VERSION=1 -DUNICODE -DWIN32 -DWIN32_LEAN_AND_MEAN -DWINVER=0x0A00 -DWRAPPING_CEF_SHARED -D_HAS_EXCEPTIONS=0 -D_NDEBUG -D_UNICODE -D_WIN32 -D_WIN32_WINNT=0x0A00 -D_WINDOWS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -I..\third_party\cef\cef_binary_110.0.25+g75b1c96+chromium-110.0.5481.78_windows64 /MP /Gy /GR- /W4 /WX /wd4100 /wd4127 /wd4244 /wd4324 /wd4481 /wd4512 /wd4701 /wd4702 /wd4996 /Zi /std:c++17 /MT /O2 /Ob2 /GF /showIncludes /Folibcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\base\cef_atomic_flag.cc.obj /Fdlibcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\libcef_dll_wrapper.pdb /FS -c ..\third_party\cef\cef_binary_110.0.25+g75b1c96+chromium-110.0.5481.78_windows64\libcef_dll\base\cef_atomic_flag.cc
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\fileapi.h(1105): error C2061: syntax error: identifier 'FILE_INFO_BY_HANDLE_CLASS'
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9118): error C2061: syntax error: identifier 'FILE_INFO_BY_HANDLE_CLASS'
[5/258] Building CXX object libcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\base\cef_lock.cc.obj
FAILED: libcef_dll_wrapper/CMakeFiles/libcef_dll_wrapper.dir/base/cef_lock.cc.obj 
C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DCEF_USE_ATL -DCEF_USE_SANDBOX -DNDEBUG -DNOMINMAX -DNTDDI_VERSION=NTDDI_WIN10_FE -DPSAPI_VERSION=1 -DUNICODE -DWIN32 -DWIN32_LEAN_AND_MEAN -DWINVER=0x0A00 -DWRAPPING_CEF_SHARED -D_HAS_EXCEPTIONS=0 -D_NDEBUG -D_UNICODE -D_WIN32 -D_WIN32_WINNT=0x0A00 -D_WINDOWS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -I..\third_party\cef\cef_binary_110.0.25+g75b1c96+chromium-110.0.5481.78_windows64 /MP /Gy /GR- /W4 /WX /wd4100 /wd4127 /wd4244 /wd4324 /wd4481 /wd4512 /wd4701 /wd4702 /wd4996 /Zi /std:c++17 /MT /O2 /Ob2 /GF /showIncludes /Folibcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\base\cef_lock.cc.obj /Fdlibcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\libcef_dll_wrapper.pdb /FS -c ..\third_party\cef\cef_binary_110.0.25+g75b1c96+chromium-110.0.5481.78_windows64\libcef_dll\base\cef_lock.cc
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\fileapi.h(1105): error C2061: syntax error: identifier 'FILE_INFO_BY_HANDLE_CLASS'
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9118): error C2061: syntax error: identifier 'FILE_INFO_BY_HANDLE_CLASS'
[6/258] Building CXX object libcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\base\cef_callback_helpers.cc.obj
FAILED: libcef_dll_wrapper/CMakeFiles/libcef_dll_wrapper.dir/base/cef_callback_helpers.cc.obj 
C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DCEF_USE_ATL -DCEF_USE_SANDBOX -DNDEBUG -DNOMINMAX -DNTDDI_VERSION=NTDDI_WIN10_FE -DPSAPI_VERSION=1 -DUNICODE -DWIN32 -DWIN32_LEAN_AND_MEAN -DWINVER=0x0A00 -DWRAPPING_CEF_SHARED -D_HAS_EXCEPTIONS=0 -D_NDEBUG -D_UNICODE -D_WIN32 -D_WIN32_WINNT=0x0A00 -D_WINDOWS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -I..\third_party\cef\cef_binary_110.0.25+g75b1c96+chromium-110.0.5481.78_windows64 /MP /Gy /GR- /W4 /WX /wd4100 /wd4127 /wd4244 /wd4324 /wd4481 /wd4512 /wd4701 /wd4702 /wd4996 /Zi /std:c++17 /MT /O2 /Ob2 /GF /showIncludes /Folibcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\base\cef_callback_helpers.cc.obj /Fdlibcef_dll_wrapper\CMakeFiles\libcef_dll_wrapper.dir\libcef_dll_wrapper.pdb /FS -c ..\third_party\cef\cef_binary_110.0.25+g75b1c96+chromium-110.0.5481.78_windows64\libcef_dll\base\cef_callback_helpers.cc
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\fileapi.h(1105): error C2061: syntax error: identifier 'FILE_INFO_BY_HANDLE_CLASS'
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9118): error C2061: syntax error: identifier 'FILE_INFO_BY_HANDLE_CLASS'
ninja: build stopped: subcommand failed.

magreenblatt commented 1 year ago

Original comment by FriwiDev (Bitbucket: Fritz Windisch).


Apparently starting from v110, the build process only works on windows server 2022 with build tools 2022. I got it fixed in my setup by upgrading to these versions.

magreenblatt commented 1 year ago

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


It seems that you used the SDK “10.0.19041.0“, but for CEF version 110 the SDK “10.0.20348“ is required:

https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md

Seems like the dependency is needed for JCEF too.

Might be that Upgrade to Server2022 installed this SDK automatically.

magreenblatt commented 1 year ago

Original changes by FriwiDev (Bitbucket: Fritz Windisch).