Trouble configuring cmake build

Hello all! I’ve been trying to compile non-release commits of the player by referencing the Github building documentation, the wiki, and the nightly builds console outputs. I’ve started by just trying to build the 0.7.0 major release, but I’ve hid a snag in configuration.

When I run cmake . -DCMAKE_BUILD_TYPE=Release as per the Github doc it returns an error:

CMake Error at CMakeLists.txt:615 (find_package):
  By not providing "Findliblcf.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "liblcf", but
  CMake did not find one.

  Could not find a package configuration file provided by "liblcf" with any
  of the following names:

    liblcfConfig.cmake
    liblcf-config.cmake

  Add the installation prefix of "liblcf" to CMAKE_PREFIX_PATH or set
  "liblcf_DIR" to a directory containing one of the above files.  If "liblcf"
  provides a separate development package or SDK, be sure it has been
  installed.


-- Configuring incomplete, errors occurred!

When I pass the directory of the files to the to the cmake prefix path cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/workspace/Player-0.7.0/.. it returns another error:

CMake Error at CMakeLists.txt:615 (find_package):
  Could not find a configuration file for package "liblcf" that is compatible
  with requested version "".

  The following configuration files were considered but not accepted:

    /workspace/liblcf/lib/cmake/liblcf/liblcf-config.cmake, version: 0.7.0 (32bit)



-- Configuring incomplete, errors occurred!

How do I resolve this? I anticipate this will be an easy question to answer, but I can’t for the life of me figure it out as I’m quite out of my depths when it comes to cmake. Any help would be greatly appreciated! :grin:

Potentially relevant info: I’m compiling with Ubuntu Linux 20.04, my cmake version is 3.16.3, and the liblcf referenced is 0.7.0 on its Github release page.

Hi by now 0.7.0 is very old. Better use the latest version (master branch) because we are close to releasing a new major version.

In general what you are doing should work though. Somehow it reject liblcf because it has the wrong architecture (32 bit). No idea how this happened :thinking:

Build liblcf with:

cmake . -GNinja -DCMAKE_BUILD_TYPE=Release

# This installs liblcf in /usr/local
cmake --build . --target install

Then for Player

cmake . -GNinja -DCMAKE_BUILD_TYPE=Release

# This installs Player in /usr/local
cmake --build . --target install

If you do not want /usr/local use -DCMAKE_INSTALL_PREFIX and reference liblcf with -DCMAKE_PREFIX_PATH. When it is in local it will be found automatically.

(Ninja needs ninja-build installed)