kpeeters / cadabra2

A field-theory motivated approach to computer algebra.
https://cadabra.science/
GNU General Public License v3.0
223 stars 37 forks source link

2.1.7 fails to build: undefined reference to `boost::python::exec(char const*, boost::python::api::object, boost::python::api::object)' #64

Closed yurivict closed 6 years ago

yurivict commented 6 years ago

client_server/libcadabra_server.so: undefined reference to `boost::python::exec(char const*, boost::python::api::object, boost::python::api::object)'

clang-4.0 on FreeBSD 11 amd64.

kpeeters commented 6 years ago

We are switching away from boost::python to pybind11 (for various reasons, one being the upcoming windows port), so this will soon be a thing of the past anyway.

yurivict commented 6 years ago

Ok, thanks, I will wait with the port update then.

kpeeters commented 6 years ago

The current github master no longer uses boost::python, can you try again and let me know? Thanks.

yurivict commented 6 years ago

Build fails.

When git is installed:

fatal: Not a git repository (or any parent up to mount point /usr)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
fatal: Not a git repository (or any parent up to mount point /usr)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
fatal: Not a git repository (or any parent up to mount point /usr)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Package builder can't be auto-downloading anything. Could you add a cmake variable, like NO_GIT_DOWNLOADS.

When git isn't installed:

CMake Error: CMake can not determine linker language for target: cadabra_server
CMake Error: CMake can not determine linker language for target: cadabra_client
kpeeters commented 6 years ago

If you cloned the repository git should not have failed (but if you just downloaded the tarball from github, things are expected to fail). I only run git during build so that I can get the commit SHA into the binary. Not sure why that would should be a problem on FreeBSD.

yurivict commented 6 years ago

The port uses tarball downloaded from github. It isn't a git repository.

The best way to handle it is if CMakeLists.txt first accepted the version supplied from outside and ran git if it wasn'tsupplied.

I will have to patch it for now.