On Sun, Jul 26, 2020 at 4:56 PM Tobias Klein <cont...@tklein.info> wrote:
> Hi Troy, > > The latest version builds successfully. > > I created a new intermediate release of sword-build-win32 for further > testing on Windows: > It's still failing for me trying to do a cross-compile with MinGW: [ 6%] Building CXX object CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj /usr/bin/i686-w64-mingw32-g++ -DCLUCENE2 -DCURLAVAILABLE -DCURLSFTPAVAILABLE -DEXCLUDEBZIP2 -DEXCLUDEXZ -DGLOBCONFPATH=\"/usr/i686-w64-mingw32/sys-root/mingw/etc/sword.conf\" -DUSEICUREGEX -DUSELUCENE -DU_USING_ICU_NAMESPACE -D_FTPLIB_NO_COMPAT -D_ICU_ -Dsword_EXPORTS @CMakeFiles/sword.dir/includes_CXX.rsp -D_ICUSWORD_ -g3 -Wall -O0 -D_ICUSWORD_ -o CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj -c /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp: In static member function 'static int sword::FileMgr::createParent(const char*)': /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:439:5: error: '_wmkdir' was not declared in this scope; did you mean 'mkdir'? 439 | _wmkdir((const wchar_t *)utf8ToWChar(buf).getRawData()); | ^~~~~~~ | mkdir make[2]: *** [CMakeFiles/sword.dir/build.make:282: CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj] Error 1 make[2]: Leaving directory '/builddir/build/BUILD/sword-1.8.900/build_win32' make[1]: Leaving directory '/builddir/build/BUILD/sword-1.8.900/build_win32' make[1]: *** [CMakeFiles/Makefile2:277: CMakeFiles/sword.dir/all] Error 2 make: *** [Makefile:152: all] Error 2 make: Leaving directory '/builddir/build/BUILD/sword-1.8.900/build_win32' Commands to do the build, from Fedora 32, include this lovely invocation of CMake from within a subfolder of the source (build_win32 for the above): /usr/bin/cmake -DCMAKE_TOOLCHAIN_FILE=/usr/share/mingw/toolchain-mingw32.cmake -DBUILD_SHARED_LIBS:BOOL=ON -DSYSCONF_INSTALL_DIR:PATH=/usr/i686-w64-mingw32/sys-root/mingw/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/i686-w64-mingw32/sys-root/mingw/share -DCMAKE_INSTALL_PREFIX:PATH=/usr/i686-w64-mingw32/sys-root/mingw -DCMAKE_INSTALL_LIBDIR:PATH=/usr/i686-w64-mingw32/sys-root/mingw/lib -DICU_CONFIG_BIN_PATH=/usr/i686-w64-mingw32/sys-root/mingw/bin -DINCLUDE_INSTALL_DIR:PATH=/usr/i686-w64-mingw32/sys-root/mingw/include -DCMAKE_VERBOSE_MAKEFILE=ON -DLIBSWORD_LIBRARY_TYPE=Shared -DSWORD_BUILD_EXAMPLES=Yes -DCMAKE_BUILD_TYPE=Debug -DICU_CONFIG_OPTS=--noverify -DCROSS_COMPILE_MINGW32=TRUE .. Followed by make --Greg > > https://github.com/tobias-klein/sword-build-win32/releases/tag/v1.8.900-2020-07-26 > > Best regards, > Tobias > On 7/26/20 8:37 PM, Troy A. Griffitts wrote: > > Thanks Tobias, > > I've made these updates and should have fixed the error in filemgr.cpp on > line 410. I appreciate the feedback. Please update and try this out and > let me know. Thanks for testing your compiler. > > Troy > > > On 7/26/20 8:25 PM, Tobias Klein wrote: > > To address the errors below I had to add the include for <windows.h> both > in *src/mgr/filemgr.cpp* and in *src/modules/commons/zipmgr.cpp*. > > After that I'm getting the next error: > > 1>C:\Users\tobi\Dev\sword-build-win32\sword\src\mgr\filemgr.cpp(410): > error C2664: 'BOOL FindNextFileA(HANDLE,LPWIN32_FIND_DATAA)': cannot > convert argument 2 from 'WIN32_FIND_DATAW *' to 'LPWIN32_FIND_DATAA' > 1>C:\Users\tobi\Dev\sword-build-win32\sword\src\mgr\filemgr.cpp(410): > note: Types pointed to are unrelated; conversion requires reinterpret_cast, > C-style cast or function-style cast > > Best regards, > Tobias > On 7/26/20 4:44 PM, Troy A. Griffitts wrote: > > Can one of you guys try simply including <windows.h> at the top of > filemgr.cpp and see if this fixes it for you? > > > On 7/26/20 4:01 PM, Tobias Klein wrote: > > I'm getting similar error messages with Visual Studio 2019. Note that I'm > also generating the make files via CMake. > > First couple of error messages: > 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(395,2): > error C2065: 'WIN32_FIND_DATAW': undeclared identifier > 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(395,19): > error C2146: syntax error: missing ';' before identifier 'fileData' > > 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(395,19): > error C2065: 'fileData': undeclared identifier > > 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,2): > error C2065: 'HANDLE': undeclared identifier > > 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,9): > error C2146: syntax error: missing ';' before identifier 'findIterator' > 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,9): > error C2065: 'findIterator': undeclared identifier > 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,51): > error C2065: 'fileData': undeclared identifier > > > Best regards, > Tobias > > On 7/26/20 3:00 PM, Greg Hellings wrote: > > > > On Sun, Jul 26, 2020 at 6:42 AM Troy A. Griffitts <scr...@crosswire.org> > wrote: > >> I've just committed the last bit for fixing the WIN32 Unicode issues. If >> anyone can try compiling and running Xiphos without the Xiphos patch or any >> other projects for Windows, and let me know if things work for them in >> folders which include Unicode character, I would appreciate it. I've >> tested BibleCS and it now works with a SWORD_PATH defined to /books/χαρις. >> I've tested using and installing modules in this configuration and believe >> all the bugs are squashed, but I would love confirmation from other >> projects. >> >> Thanks for any feedback, >> >> Troy >> > During cross-compile I'm getting the following errors: > > [ 6%] Building CXX object CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj > /usr/bin/i686-w64-mingw32-g++ -DCLUCENE2 -DCURLAVAILABLE > -DCURLSFTPAVAILABLE -DEXCLUDEBZIP2 -DEXCLUDEXZ > -DGLOBCONFPATH=\"/usr/i686-w64-mingw32/sys-root/mingw/etc/sword.conf\" > -DUSEICUREGEX -DUSELUCENE -DU_USING_ICU_NAMESPACE -D_FTPLIB_NO_COMPAT > -D_ICU_ -Dsword_EXPORTS @CMakeFiles/sword.dir/includes_CXX.rsp -D_ICUSWORD_ > -g3 -Wall -O0 -D_ICUSWORD_ -o > CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj -c > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp: In static member > function 'static std::vector<sword::DirEntry> > sword::FileMgr::getDirList(const char*, bool, bool)': > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:395:2: error: > 'WIN32_FIND_DATAW' was not declared in this scope > 395 | WIN32_FIND_DATAW fileData; > | ^~~~~~~~~~~~~~~~ > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:398:2: error: > 'HANDLE' was not declared in this scope > 398 | HANDLE findIterator = FindFirstFileW(wcharPath, &fileData); > | ^~~~~~ > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:399:6: error: > 'findIterator' was not declared in this scope > 399 | if (findIterator != INVALID_HANDLE_VALUE) { > | ^~~~~~~~~~~~ > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:399:22: error: > 'INVALID_HANDLE_VALUE' was not declared in this scope > 399 | if (findIterator != INVALID_HANDLE_VALUE) { > | ^~~~~~~~~~~~~~~~~~~~ > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:401:35: error: > 'fileData' was not declared in this scope > 401 | SWBuf dirEntName = wcharToUTF8(fileData.cFileName); > | ^~~~~~~~ > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:405:49: error: > 'FILE_ATTRIBUTE_DIRECTORY' was not declared in this scope > 405 | i.isDirectory = fileData.dwFileAttributes & > FILE_ATTRIBUTE_DIRECTORY; > | > ^~~~~~~~~~~~~~~~~~~~~~~~ > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:409:40: error: > 'fileData' was not declared in this scope > 409 | } while (FindNextFile(findIterator, &fileData) != 0); > | ^~~~~~~~ > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:409:12: error: > 'FindNextFile' was not declared in this scope > 409 | } while (FindNextFile(findIterator, &fileData) != 0); > | ^~~~~~~~~~~~ > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:410:3: error: > 'FindClose' was not declared in this scope; did you mean '_findclose'? > 410 | FindClose(findIterator); > | ^~~~~~~~~ > | _findclose > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:397:17: warning: > unused variable 'wcharPath' [-Wunused-variable] > 397 | const wchar_t *wcharPath = (const wchar_t *)wcharBuf.getRawData(); > | ^~~~~~~~~ > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp: In static member > function 'static int sword::FileMgr::createParent(const char*)': > /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:436:5: error: > '_wmkdir' was not declared in this scope; did you mean 'mkdir'? > 436 | _wmkdir((const wchar_t *)utf8ToWChar(buf).getRawData()); > | ^~~~~~~ > | mkdir > make[2]: *** [CMakeFiles/sword.dir/build.make:283: > CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj] Error 1 > > I'm assuming there's a new package or macro I need to define? On my system > the WIN32_FIND_DATAW struct is defined in both minwinbase.h and shtypes.h. > I'm building with MinGW which might have a different header structure than > your compilers, if you're using Borland? > > --Greg > >> >> On 7/20/20 7:18 PM, Greg Hellings wrote: >> >> Sorry for the previous blank email - user error when I tried to reply: >> >> On Sun, Jul 19, 2020 at 2:40 PM Tobias Klein <cont...@tklein.info> wrote: >> >>> Thanks for giving me the background on this, Karl! I appreciate it! >>> >>> Is Xiphos the only frontend that has been patching Sword for this >>> purpose? Then I suppose all other frontends suffer from this issue, huh? >>> >> >> When I first encountered this patch in Xiphos I tested with BibleTime and >> The Sword Project for Windows and both of them do crash under these >> circumstances. >> >> Yes, other toolkits such as Qt do have wrappers for this shortcoming >> already, but none of the other front ends I've worked with have bothered to >> put in the effort to produce a patched version of Sword to fix the crash. >> >> --Greg >> >> _______________________________________________ >> sword-devel mailing list: >> sword-devel@crosswire.orghttp://www.crosswire.org/mailman/listinfo/sword-devel >> Instructions to unsubscribe/change your settings at above page >> >> _______________________________________________ >> sword-devel mailing list: sword-devel@crosswire.org >> http://www.crosswire.org/mailman/listinfo/sword-devel >> Instructions to unsubscribe/change your settings at above page > > > _______________________________________________ > sword-devel mailing list: > sword-devel@crosswire.orghttp://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page > > > _______________________________________________ > sword-devel mailing list: > sword-devel@crosswire.orghttp://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page > > > _______________________________________________ > sword-devel mailing list: > sword-devel@crosswire.orghttp://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page > > > _______________________________________________ > sword-devel mailing list: > sword-devel@crosswire.orghttp://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page > > > _______________________________________________ > sword-devel mailing list: > sword-devel@crosswire.orghttp://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page > > _______________________________________________ > sword-devel mailing list: sword-devel@crosswire.org > http://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page
_______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page