Re: [GNC-dev] building gnucash

john <[email protected]>
Newsgroups gmane.comp.gnome.apps.gnucash.devel
Message-ID <[email protected]>

> On Jul 8, 2022, at 7:36 AM, Kevin T <[email protected]> wrote:
> 
> On Thu, 2022-07-07 at 17:21 -0700, John Ralls wrote:
>>> On Jul 7, 2022, at 4:34 PM, Kevin T via gnucash-devel <[email protected]> wrote:
>>> 
>>> 
>>> Hi All,
>>> 
>>> yan.  yet another newbie
>>> 
>>> New installation of centos stream 8
>>> 
>>> [kt@localhost gnucash-build]$ cat /etc/redhat-release 
>>> CentOS Stream release 8
>>> [kt@localhost gnucash-build]$ cmake --version
>>> cmake version 3.20.2
>>> 
>>> i had to install these packages to get to the starting point for
>>> gnucash.
>>> 
>>> drwxrwxr-x. 13 kt kt     4096 Jul  6 14:43 gc-8.0.6
>>> drwxrwxr-x. 16 kt kt     4096 Jul  5 21:27 gmp-6.2.1
>>> drwxr-xr-x. 15 kt kt     4096 Jul  6 19:04 gnucash-4.11
>>> drwxr-xr-x. 21 kt kt     4096 Jul  6 14:45 guile-3.0.8
>>> drwxrwxr-x. 11 kt kt     4096 Jul  6 14:20 libffi-3.4.2
>>> drwxrwxr-x. 10 kt kt     4096 Jul  5 21:32 libunistring-1.0
>>> 
>>> 
>>> I had to create the /glib-2.0 dir and other sub dirs.
>>> 
>>> [kt@localhost gnucash-build]$ echo $SRCROOT
>>> /home/kt/Sources/gnucash-4.11
>>> 
>>> [kt@localhost gnucash-build]$ ls $SRCROOT
>>> AUTHORS         ChangeLog.2001  ChangeLog.2007  ChangeLog.2013  ChangeL
>>> og.2019  CMakeLists.txt  gnucash     README
>>> bindings        ChangeLog.2002  ChangeLog.2008  ChangeLog.2014  ChangeL
>>> og.2020  common          HACKING     README.dependencies
>>> borrowed        ChangeLog.2003  ChangeLog.2009  ChangeLog.2015  ChangeL
>>> og.2021  data            libgnucash  test-templates
>>> ChangeLog       ChangeLog.2004  ChangeLog.2010  ChangeLog.2016  cmake  
>>>        doc             LICENSE     util
>>> ChangeLog.1999  ChangeLog.2005  ChangeLog.2011  ChangeLog.2017  CMakeCa
>>> che.txt  DOCUMENTERS     NEWS
>>> ChangeLog.2000  ChangeLog.2006  ChangeLog.2012  ChangeLog.2018  CMakeFi
>>> les      gnome           po
>>> 
>>> 
>>> The error @ line 66, I dont know what to do with.  The equal signs
>>> demarcate the output of the screen.
>>> 
>>> =======================================================================
>>> [kt@localhost gnucash-build]$ pwd
>>> /home/kt/gnucash-build
>>> [kt@localhost gnucash-build]$ cmake $SRCROOT/gnucash
>>> CMake Warning (dev) in CMakeLists.txt:
>>> No project() command is present.  The top-level CMakeLists.txt file
>>> must
>>> contain a literal, direct call to the project() command.  Add a line
>>> of
>>> code such as
>>> 
>>>   project(ProjectName)
>>> 
>>> near the top of the file, but after cmake_minimum_required().
>>> 
>>> CMake is pretending there is a "project(Project)" command on the
>>> first
>>> line.
>>> This warning is for project developers.  Use -Wno-dev to suppress it.
>>> 
>>> CMake Error at gnome/CMakeLists.txt:66 (gnc_add_swig_guile_command):
>>> Unknown CMake command "gnc_add_swig_guile_command".
>>> 
>>> 
>>> CMake Warning (dev) in CMakeLists.txt:
>>> No cmake_minimum_required command is present.  A line of code such as
>>> 
>>>   cmake_minimum_required(VERSION 3.20)
>>> 
>>> should be added at the top of the file.  The version specified may be
>>> lower
>>> if you wish to support older CMake versions for this project.  For
>>> more
>>> information run "cmake --help-policy CMP0000".
>>> This warning is for project developers.  Use -Wno-dev to suppress it.
>>> 
>>> -- Configuring incomplete, errors occurred!
>>> ================================================================
>>> 
>>> this error line is in the file: $SRCROOT/gnucash/gnome/CMakeLists.txt
>>> 
>>> Untar'd and I have changed NOTHING in the source code. 
>>> I have also tried the following (results from web search). Both
>>> resulted in the same error. 
>>> 
>>> cmake $SRCROOT -DCMAKE_INSTALL_PREFIX=/usr/local
>>> cmake $SRCROOT -DCMAKE_INSTALL_PREFIX=$HOME/.local
>>> 
>>> what is the solution to this stumbling block?
>> 
>> Follow the instructions more carefully: The cmake command should be `cmake $SRCROOT` not `cmake $SRCROOT/gnucash`.
> 
> The build directory is not the same as the src directory.
> 
> I tried that as well.  Same result.  The CMakeOutput.log has no errors listed.
> 
> [kt@localhost gnucash-build]$ cmake $SRCROOT
> CMake Warning (dev) in CMakeLists.txt:
>  No project() command is present.  The top-level CMakeLists.txt file must
>  contain a literal, direct call to the project() command.  Add a line of
>  code such as
> 
>    project(ProjectName)
> 
>  near the top of the file, but after cmake_minimum_required().
> 
>  CMake is pretending there is a "project(Project)" command on the first
>  line.
> This warning is for project developers.  Use -Wno-dev to suppress it.
> 
> CMake Error at gnome/CMakeLists.txt:66 (gnc_add_swig_guile_command):
>  Unknown CMake command "gnc_add_swig_guile_command".
> 
> 
> CMake Warning (dev) in CMakeLists.txt:
>  No cmake_minimum_required command is present.  A line of code such as
> 
>    cmake_minimum_required(VERSION 3.20)
> 
>  should be added at the top of the file.  The version specified may be lower
>  if you wish to support older CMake versions for this project.  For more
>  information run "cmake --help-policy CMP0000".
> This warning is for project developers.  Use -Wno-dev to suppress it.
> 
> -- Configuring incomplete, errors occurred!
> See also "/home/kt/Sources/gnucash-4.11/CMakeFiles/CMakeOutput.log".
> [kt@localhost gnucash-build]$ 


The errors "no project() command is present" and "unknown cmake command gnc_add_swig_guile_command" are from telling cmake to start with gnucash-4.11/gnucash/CMakeLists.txt instead of gnucash-4.11/CMakeLists.txt, that is `cmake $SRCROOT/gnucash` instead of `cmake $SRCROOT`.

You must have run cmake inside of the source directory at some point, otherwise there would be no "/home/kt/Sources/gnucash-4.11/CMakeFiles/CMakeOutput.log". The existence of a CMakeCache.txt in $SRCROOT overrides the CMakeLists.txt there and foils any future build attempts.

Do the following:
  cd /home/kt/Sources
  rm -rf gnucash-4.11
  tar -xf /home/kt/Downloads/gnucash-4.11.tar.bz2 # Substitute the path you downloaded if it's different
  cd /home/kt/gnucash-build # Or wherever gnucash-build is really
  cmake /home/kt/Sources/gnucash-4.11

to make sure everything is clean.

You said in your first message that you'd had to install several packages and create /glib-2.0, but you didn't say how you'd done that. If you used dnf and installed the development packages then that's OK, but having to create /glib-2.0 (you meant /usr/lib64/glib-2.0, right?) indicates that you'll need to install a bunch of developer packages for at least the gtk stack. Cmake will continue to fail until you've satisfied all of the dependencies with headers as well as libraries; headers come from the development version of packages, commonly named with a -dev or -devel suffix, e.g. `sudo dnf install glib2-devel`.

Regards,
John Ralls
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.