Re: [GNC-dev] Windows Build VM
Manfred Usselmann <[email protected]> Mon, 13 Nov 2023 03:13:25 +0100
| Newsgroups | gmane.comp.gnome.apps.gnucash.devel |
|---|---|
| Organization | Usselmann Software Solutions GmbH |
| Message-ID | <[email protected]> |
Am 2023-11-12 05:55, schrieb john: >> On Nov 11, 2023, at 17:47, Manfred Usselmann <[email protected]> >> wrote: >> >> Am 2023-11-11 18:46, schrieb john: >>>> On Nov 11, 2023, at 04:18, Manfred Usselmann <[email protected]> >>>> wrote: >>>> # Next issue: >>>> # >>>> ------------------------------------------------------------------------------- >>>> *** Checking out gnucash-git *** [12/14] >>>> [...] >>>> CMake Error at CMakeLists.txt:345 (message): >>>> Neither guile 3.0, guile 2.2, nor guile 2.0 were found GnuCash can't >>>> run >>>> without one of them. Ensure that one is installed and can be found >>>> with >>>> pkg-config. >>>> -- Configuring incomplete, errors occurred! >>>> *** Error during phase configure of gnucash-git: ########## Error >>>> running cmake >>>> -DCMAKE_INSTALL_PREFIX=/C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst >>>> -DCMAKE_INSTALL_LIBDIR=lib -G Ninja -DCMAKE_PREFIX_PATH=$MSYS2ROOT >>>> -DPERL_EXECUTABLE=/usr/bin/perl -DGNC_DBD_DIR=$PREFIX/lib/dbd >>>> -DGTEST_ROOT=$SRCROOT/googletest/ -DCMAKE_BUILD_TYPE=Debug >>>> /C/users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/src/gnucash-git >>>> *** [12/14] >>>> # >>>> ------------------------------------------------------------------------------- >>>> Not sure what this one is. I believe there was already a long >>>> running build of guile2. >>>> *** Checking out guile2 *** [10/14] >>>> *** Skipping guile2 (package and dependencies not updated) *** >>>> [10/14] >>>> Any hint for me? >>> You probably need at least >>> mingw-w64-i686-webkitgtk3-2.4.11-999.5-any. WebKit is a long-running >>> sore point. MSYS2 periodically updates one of the webkit dependencies >>> and I have to build another one, a process that can take several >>> days. Another wrinkle is that Derek's windows VM and my windows VM >>> sometimes diverge. Getting them back is another manual process that I >>> have to make time to do carefully so as not to break the nightly >>> builds; keeping those working is the top priority for >>> gnucash-on-windows. >> >> Completely understandable. >> >>> With a new installation you're likely out of sync with both of those >>> reference MSYS2 installations. Having a mismatch will cause link >>> errors with libgnc-html.dll. >> >> We'll see... >> >> >>> For guile, make sure that $PREFIX/lib/pkgconfig/guile-2.2.pc exists; >>> if it does make sure that PKG_CONFIG_PATH contains >>> $PREFIX/lib/pkgconfig. >> >> It does. >> >> $ pkg-config --list-all >> aqbanking AqBanking - A library for online >> banking functions and financial data import/export >> atomic_ops The atomic_ops library - Atomic memory >> update operations portable implementation >> bdw-gc Boehm-Demers-Weiser Conservative >> Garbage Collector - A garbage collector for C and C++ >> guile-2.2 GNU Guile - GNU's Ubiquitous >> Intelligent Language for Extension >> [...]0 >> >> But for cmake / pkg_check_modules only the packages from >> gcdev64/msys2/mingw32/lib/pkgconfig are visible. >> >> Strange... > > Dunno if it's strange. jhbuildrc should add $PREFIX/lib/pkgconfig/ to > PKG_CONFIG_PATH. Maybe that's gotten messed up? > PKG_CONFIG_PATH eventually contains 7 path elements. 4) /c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/pkgconfig 4) /c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/share/pkgconfig 1) /mingw64/lib/pkgconfig 1) /mingw64/share/pkgconfig 2) /c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/pkgconfig 3) /c/Users/mu/Entwicklung/GnuCash/gcdev64/msys2/mingw32/lib/pkgconfig 4) /c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/pkgconfig 1) Set by msys2 in C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\etc\profile (bash.bashrc: source /etc/profile) MINGW_MOUNT_POINT="${MINGW_PREFIX}" PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig" 2) I added it to C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\home\Manfred\.bashrc export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/pkgconfig 3) Set by jhbuildrc _mingw_base = os.path.join(_basedir, 'msys2', _arch) _mingw_libs = os.path.join(_mingw_base, 'lib') add_to_path_var('PKG_CONFIG_PATH', os.path.join(_mingw_libs, 'pkgconfig')) 4) After jhbuildrc, but I didn't find where exactly. But makes 2) superfluous. ------------------------------------------------------------------------------------------- For testing purposes I extended CMakeLists.txt a little bit around the Guile check to see what is found and what not: ------------------------------------------------------------------------------------------- # guile library and include dir message(STATUS "PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH}") pkg_check_modules (AQB_DUMMY_TEST aqbanking) pkg_check_modules (GWGUI_DUMMY_TEST gwengui-gtk3) pkg_check_modules (GOBJECT_DUMMY_TEST gobject-2.0) pkg_check_modules (GMP_DUMMY_TEST gmp) pkg_check_modules (GUILE3 guile-3.0) pkg_check_modules (GUILE22 guile-2.2) pkg_check_modules (GUILE2 guile-2.0>=2.0.9) execute_process( COMMAND pkg-config --path guile-3.0 OUTPUT_VARIABLE GUILE_PKG_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND pkg-config --exists guile-3.0 RESULT_VARIABLE GUILE_EXISTS_RESULT ) if (${GUILE_EXISTS_RESULT} EQUAL 0) execute_process( COMMAND pkg-config --validate guile-3.0 RESULT_VARIABLE GUILE_VALID_RESULT ) else() set(GUILE_VALID_RESULT 1) endif() message(STATUS "guile-3.0 exists: ${GUILE_EXISTS_RESULT}, path: ${GUILE_PKG_RESULT}, valid: ${GUILE_VALID_RESULT}") execute_process( COMMAND pkg-config --path guile-2.2 OUTPUT_VARIABLE GUILE_PKG_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND pkg-config --exists guile-2.2 RESULT_VARIABLE GUILE_EXISTS_RESULT ) if (${GUILE_EXISTS_RESULT} EQUAL 0) execute_process( COMMAND pkg-config --validate guile-2.2 RESULT_VARIABLE GUILE_VALID_RESULT ) else() set(GUILE_VALID_RESULT 1) endif() message(STATUS "guile-2.2 exists: ${GUILE_EXISTS_RESULT}, path: ${GUILE_PKG_RESULT}, valid: ${GUILE_VALID_RESULT}") execute_process( COMMAND pkg-config --path guile-2.0 OUTPUT_VARIABLE GUILE_PKG_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND pkg-config --exists guile-2.0 RESULT_VARIABLE GUILE_EXISTS_RESULT ) if (${GUILE_EXISTS_RESULT} EQUAL 0) execute_process( COMMAND pkg-config --validate guile-2.0 RESULT_VARIABLE GUILE_VALID_RESULT ) else() set(GUILE_VALID_RESULT 1) endif() message(STATUS "guile-2.0 exists: ${GUILE_EXISTS_RESULT}, path: ${GUILE_PKG_RESULT}, valid: ${GUILE_VALID_RESULT}") execute_process( COMMAND pkg-config --path gmp OUTPUT_VARIABLE GUILE_PKG_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND pkg-config --exists gmp RESULT_VARIABLE GUILE_EXISTS_RESULT ) if (${GUILE_EXISTS_RESULT} EQUAL 0) execute_process( COMMAND pkg-config --validate gmp RESULT_VARIABLE GUILE_VALID_RESULT ) else() set(GUILE_VALID_RESULT 1) endif() message(STATUS "gmp exists: ${GUILE_EXISTS_RESULT}, path: ${GUILE_PKG_RESULT}, valid: ${GUILE_VALID_RESULT}") ------------------------------------------------------------------------------------------- Output: ------------------------------------------------------------------------------------------- -- PKG_CONFIG_PATH=C:\Users\mu\Entwicklung\GnuCash\gcdev64\gnucash\stable\inst\lib\pkgconfig;C:\Users\mu\Entwicklung\GnuCash\gcdev64\gnucash\stable\inst\share\pkgconfig;C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\mingw64\lib\pkgconfig;C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\mingw64\share\pkgconfig;C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\mingw32\lib\pkgconfig -- Checking for module 'aqbanking' -- Package 'aqbanking', required by 'virtual:world', not found -- Checking for module 'gwengui-gtk3' -- Package 'gwengui-gtk3', required by 'virtual:world', not found -- Checking for module 'gobject-2.0' -- Found gobject-2.0, version 2.78.1 -- Checking for module 'gmp' -- Found gmp, version 6.3.0 -- Checking for module 'guile-3.0' -- Package 'guile-3.0', required by 'virtual:world', not found -- Checking for module 'guile-2.2' -- Package 'guile-2.2', required by 'virtual:world', not found -- Checking for module 'guile-2.0>=2.0.9' -- Package 'guile-2.0', required by 'virtual:world', not found -- guile-3.0 exists: 1, path: , valid: 1 -- guile-2.2 exists: 0, path: C:\Users\mu\Entwicklung\GnuCash\gcdev64\gnucash\stable\inst\lib\pkgconfig\guile-2.2.pc, valid: 0 -- guile-2.0 exists: 1, path: , valid: 1 -- gmp exists: 0, path: C:\Users\mu\Entwicklung\GnuCash\gcdev64\msys2\mingw32\lib\pkgconfig\gmp.pc, valid: 0 ------------------------------------------------------------------------------------------- Result: ------------------------------------------------------------------------------------------- ==> Packages with .pc files in /c/Users/mu/Entwicklung/GnuCash/gcdev64/msys2/mingw32/lib/pkgconfig are found by pkg_check_modules(), those in /c/Users/mu/Entwicklung/GnuCash/gcdev64/gnucash/stable/inst/lib/pkgconfig are not. ==> Although pkg-config seems to be fine with both of them. ??? Regards, Manfred