Description: LibreOffice SDK setsdkenv_windows.bat has issues with using vcvars64.bat, filed as tdf#55956. But even when using a workaround for that by manually setting the script path and name, the C++ SDK make does not work neither in Cygwin shell nor in CMD. Steps to Reproduce: I assume that Visual Studio 2022 with x64 Cygwin installed in c:\cygwin64 are used. 1. Build LibreOffice from sources with SDK on Windows x64 using Cygwin with --enable-odk 2. Edit C:\cygwin64\home\user\lode\dev\core\instdir\sdk\cfgWin.js. Temporarily change line 990 from "if defined OO_SDK_CPP_HOME call \"%OO_SDK_CPP_HOME%\\VCVARS32.bat\"\n" + To: "if defined OO_SDK_CPP_HOME call \"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\VCVARS64.bat\"\n" + 3. Invoke these commands in Cygwin shell or cmd (omit ./ in CMD): $ cd instdir $ cd sdk $ ./setsdkenv_windows.bat 4. Enter details of the system configuration 5. Go to examples/cpp/DocumentLoader in either Cygwin shell or CMD 6. Invoke make Actual Results: In Cygwin shell: user@windows ~/lode/dev/core/instdir/sdk/examples/cpp/DocumentLoader $ make ../../../settings/settings.mk:22: /settings/dk.mk: No such file or directory make: *** No rule to make target '/settings/dk.mk'. Stop. In CMD, an assertion failure for cppumaker.exe is shown in addition to this error: c:\cygwin64\home\user\lode\dev\core\instdir\sdk\examples\cpp\DocumentLoader>make mkdir c:\libreoffice24.2_sdk\WINexample.out\misc del c:\libreoffice24.2_sdk\WINexample.out\misc\oosdk_cpp_types.flag make: del: No such file or directory make: [../../../settings/stdtarget.mk:33: c:/libreoffice24.2_sdk/WINexample.out/misc/oosdk_cpp_types.flag] Error 127 (ignored) "C:\cygwin64\home\user\lode\dev\core\instdir\sdk/bin/cppumaker" -Gc -Oc:/libreoffice24.2_sdk/WINexample.out/inc "C:/Program Files/LibreOffice/program/types.rdb" "C:/Program Files/LibreOffice/program/types/offapi.rdb" make: *** [../../../settings/stdtarget.mk:34: c:/libreoffice24.2_sdk/WINexample.out/misc/oosdk_cpp_types.flag] Error 3 Expected Results: Compilation should be done without error in Cygwin shell and CMD. Reproducible: Always User Profile Reset: No Additional Info: Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: e7f486f10fd21bee78dea0d2eda241dd094d783d CPU threads: 20; OS: Windows 10.0 Build 22621; UI render: Skia/Vulkan; VCL: win Locale: en-US (en_DE); UI: en-US Calc: CL threaded
Created attachment 188039 [details] Cppumaker.exe assertion failure
As discussed in tdf#155956, it seems that the office dir is mixed with the binary installation. So, I tried to do the steps again. In this test, cppumaker is not problematic, but I still get the error: c:\cygwin64\home\user\lode\dev\core\instdir\sdk\examples\cpp\DocumentLoader>make mkdir c:\libreoffice24.2_sdk\WINexample.out\misc mkdir: cannot create directory 'c:\\libreoffice24.2_sdk\\WINexample.out\\misc': File exists make: [../../../settings/stdtarget.mk:32: c:/libreoffice24.2_sdk/WINexample.out/misc/oosdk_cpp_types.flag] Error 1 (ignored) del c:\libreoffice24.2_sdk\WINexample.out\misc\oosdk_cpp_types.flag make: del: No such file or directory make: [../../../settings/stdtarget.mk:33: c:/libreoffice24.2_sdk/WINexample.out/misc/oosdk_cpp_types.flag] Error 127 (ignored) "C:\cygwin64\home\user\lode\dev\core\instdir\sdk/bin/cppumaker" -Gc -Oc:/libreoffice24.2_sdk/WINexample.out/inc "C:/cygwin64/home/user/lode/dev/core/instdir/program/types.rdb" "C:/cygwin64/home/user/lode/dev/core/instdir/program/types/offapi.rdb" echo flagged > c:/libreoffice24.2_sdk/WINexample.out/misc/oosdk_cpp_types.flag mkdir c:\libreoffice24.2_sdk\WINexample.out\obj\DocumentLoader mkdir: cannot create directory 'c:\\libreoffice24.2_sdk\\WINexample.out\\obj\\DocumentLoader': No such file or directory make: [Makefile:64: c:/libreoffice24.2_sdk/WINexample.out/obj/DocumentLoader/DocumentLoader.obj] Error 1 (ignored) cl -c -MDd -Zm500 -Zc:wchar_t- -wd4251 -wd4275 -wd4290 -wd4675 -wd4786 -wd4800 -GR -EHa -I. -Ic:/libreoffice24.2_sdk/WINexample.out/inc -Ic:/libreoffice24.2_sdk/WINexample.out/inc/examples -I../../../include -Ic:/libreoffice24.2_sdk/WINexample.out/inc/DocumentLoader -DWIN32 -DWNT -D_DLL -DCPPU_ENV=mscx -Foc:\libreoffice24.2_sdk\WINexample.out\obj\DocumentLoader\DocumentLoader.obj DocumentLoader.cxx Microsoft (R) C/C++ Optimizing Compiler Version 19.36.32534 for x64 Copyright (C) Microsoft Corporation. All rights reserved. DocumentLoader.cxx c:\cygwin64\home\user\lode\dev\core\instdir\sdk\examples\cpp\DocumentLoader\DocumentLoader.cxx : fatal error C1083: Cannot open compiler generated file: 'c:\libreoffice24.2_sdk\WINexample.out\obj\DocumentLoader\DocumentLoader.obj': No such file or directory make: *** [Makefile:65: c:/libreoffice24.2_sdk/WINexample.out/obj/DocumentLoader/DocumentLoader.obj] Error 1 By creating the obj directory in C:\libreoffice24.2_sdk\WINexample.out manually, the build passes. I think some commands in cygwin and cmd are mixed, although I did all the configuration in cmd here. The new output is: c:\cygwin64\home\user\lode\dev\core\instdir\sdk\examples\cpp\DocumentLoader>make mkdir c:\libreoffice24.2_sdk\WINexample.out\obj\DocumentLoader cl -c -MDd -Zm500 -Zc:wchar_t- -wd4251 -wd4275 -wd4290 -wd4675 -wd4786 -wd4800 -GR -EHa -I. -Ic:/libreoffice24.2_sdk/WINexample.out/inc -Ic:/libreoffice24.2_sdk/WINexample.out/inc/examples -I../../../include -Ic:/libreoffice24.2_sdk/WINexample.out/inc/DocumentLoader -DWIN32 -DWNT -D_DLL -DCPPU_ENV=mscx -Foc:\libreoffice24.2_sdk\WINexample.out\obj\DocumentLoader\DocumentLoader.obj DocumentLoader.cxx Microsoft (R) C/C++ Optimizing Compiler Version 19.36.32534 for x64 Copyright (C) Microsoft Corporation. All rights reserved. DocumentLoader.cxx mkdir c:\libreoffice24.2_sdk\WINexample.out\bin mkdir c:\libreoffice24.2_sdk\WINexample.out\misc\DocumentLoader link /MAP /OPT:NOREF /SUBSYSTEM:CONSOLE /BASE:0x1100000 /OUT:c:/libreoffice24.2_sdk/WINexample.out/bin/DocumentLoader.exe /MAP:c:/libreoffice24.2_sdk/WINexample.out/misc/DocumentLoader/DocumentLoader.map \ c:/libreoffice24.2_sdk/WINexample.out/obj/DocumentLoader/DocumentLoader.obj icppuhelper.lib icppu.lib isalhelper.lib isal.lib Microsoft (R) Incremental Linker Version 14.36.32534.0 Copyright (C) Microsoft Corporation. All rights reserved. Creating library c:\libreoffice24.2_sdk\WINexample.out\bin\DocumentLoader.lib and object c:\libreoffice24.2_sdk\WINexample.out\bin\DocumentLoader.exp LINK : warning LNK4281: undesirable base address 0x1100000 for x64 image; set base address above 4GB for best ASLR optimization -------------------------------------------------------------------------------- The example loads the test.odt document in the DocumentLoader example directory. If you want to load your own document, please use: DocumentLoader -env:URE_MORE_TYPES=<fileurl_office_types_rdb> filename [connection_url] - Use the following command to execute the example! - make DocumentLoader.run - NOTE: This example does not use the new UNO bootstrap mechanism, it uses still a socket connection. The example use the defaultBootstrap_InitialComponentContext method and provides the additional office types via the UNO environment variable -env:URE_MORE_TYPES=... Before you can run this example you have to start your office in listening mode. - soffice --accept=socket,host=localhost,port=2083;urp;StarOffice.ServiceManager --------------------------------------------------------------------------------
This is the output from make make DocumentLoader.run: c:\cygwin64\home\user\lode\dev\core\instdir\sdk\examples\cpp\DocumentLoader>make DocumentLoader.run cd c:\libreoffice24.2_sdk\WINexample.out\bin && DocumentLoader -env:URE_MORE_TYPES=file:///"C:/cygwin64/home/user/lode/dev/core/instdir/program/types/offapi.rdb" "C:\cygwin64\home\user\lode\dev\core\instdir\sdk\examples\cpp\DocumentLoader\test.odt" /bin/sh: line 1: cd: c:libreoffice24.2_sdkWINexample.outbin: No such file or directory make: *** [Makefile:100: DocumentLoader.run] Error 1 It seems that directory separators are lost: /bin/sh: line 1: cd: c:libreoffice24.2_sdkWINexample.outbin: No such file or directory
For me, your recipe from comment 0 works fine if I use GNU make (as required at <https://api.libreoffice.org/docs/install.html>) in CMD. (I'm not aware that using Cygwin shell for the SDK would be supported now. At least traditionally, you had to use CMD.)
Per the last comment, there is nothing to bibisect and this should be an enhancement.