octobanana / octavia

octobanana's customizable text-based audio visualization interactive application.
https://octobanana.com/software/octavia
MIT License
26 stars 1 forks source link

Fails to build. Incorrect Boost::coroutine path? #1

Closed Barbaross93 closed 4 years ago

Barbaross93 commented 4 years ago

Hello!

You may already be aware of the issue since it looks like the project is still in its infancy, but I've attempted to build this using the instructions on the wiki and unfortunately, I get the following output:

Build type: release
-- The CXX compiler identification is GNU 10.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /sbin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building octavia 0.1.1 in release mode:
     System: Linux-5.8.8-arch1-1
     CXX compiler: GNU 10.2.0
-- Found Boost: /lib64/cmake/Boost-1.72.0/BoostConfig.cmake (found suitable version "1.72.0", minimum required is "1.72.0") found components: coroutine 
-- Configuring done
CMake Error in CMakeLists.txt:
  Imported target "Boost::coroutine" includes non-existent path

    "/include"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

  * The path was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and references files it does not
  provide.

CMake Error in CMakeLists.txt:
  Imported target "Boost::coroutine" includes non-existent path

    "/include"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

  * The path was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and references files it does not
  provide.

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

I have boost-1.72.0-2 cmake-3.18.2-1 icu-67.1-1 sfml-2.5.1-2 gcc-10.2.0-2 clang-10.0.1-1 installed on Arch Linux. The one listed dependency that I'm unsure of whether I have or not is Pthread as listed on the README. There seems to be no explicit package for pthread on Arch linux. Even running sudo ./RUNME.sh build gives the same error as above.

octobanana commented 4 years ago

Alright, after some digging I think I have a solution. It has to do with the PATH environment variable and how the new boost cmake modules parses the include paths.

Try running the following, which temporarily assigns the PATH variable to a standard set of directories.

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ./RUNME.sh build

I can reproduce the cmake build error you pasted above by running the following: PATH=/sbin:/bin:$PATH ./RUNME.sh build

The issue is that the /sbin and /bin paths are given a higher priority than /usr/bin. This seems to cause the BoostConfig.cmake module to try and find the include paths in the wrong directory.

You can see whats in your path by running echo $PATH. I suspect that /sbin and /bin are near or at the front of the output. The fix would be to change your PATH by removing the line in whichever script is prepending those two directories. You could try running grep -s '.*PATH=.*' ~/.* to find config files in your home directory that modify the PATH variable.

Thanks for trying out the program, let me know how it goes!

Barbaross93 commented 4 years ago

Hey, Your solution worked! Here's my $PATH: /home/barbarossa/.local/bin:/home/barbarossa/.local/bin:/sbin:/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl If by front, you mean near the beginning, then it looks like you're right. It look's like the only line I have that modifys my path is /home/barbarossa/.zprofile:export PATH="/home/barbarossa/.local/bin:$PATH" Not sure how to go about rearranging the order of $PATH

I'll go ahead and close this since this particular issue is technically solved. Unfortunately, I've noticed another issue while running octavia. I'll post a separate issue!