Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extra BSG dependencies #3

Open
Jessie555 opened this issue Mar 26, 2021 · 6 comments
Open

Extra BSG dependencies #3

Jessie555 opened this issue Mar 26, 2021 · 6 comments

Comments

@Jessie555
Copy link

Before I continue I would like to preface this with I am very new to Linux-based C++, and I don't really have an intuition for it just yet.
However, I was trying to run the cmake and I was returned with
CMake Error at source/CMakeLists.txt:21 (find_package): By not providing "FindBSG.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "BSG", but CMake did not find one.

I installed and build all of the other dependencies for this(geant4, boost, gsl ) so I thought it may be something in there. Where should I start resolving this issue? Thank you for your time

@leenderthayen
Copy link
Owner

Dear Jessie,

Sorry for the delay. Let me give you some background which might make things clearer from the getgo.

Going from code to executable in C++ requires two steps: compilation and linking. A critical step of compilation is checking that all variables, functions, classes, etc which are invoked somewhere are properly defined. In order to do this the compiler needs to know how these are all defined, meaning it needs access to the appropriate header files. Typically, you need to tell the compiler what folder(s) it can find all the files in. Second step is linking, which combines everything into an executable by pulling in already-compiled & linked code and folding in the actual functionality, in contrast with simply making sure all definitions are compatible in the compilation step.

CMake is a way of automating this build process, in part by making it OS-independent and by relegating the responsibility of making sure the correct folders are defined to the packages that you're pulling in. That what's a FindXXXX.cmake file does: it defines (at least) two variables: where to find the header files for compilation (XXXX_INCLUDE_DIR) and where to find library files (.so on Linux, .dll on Windows for shared libraries) (XXX_LIBRARIES).

Now, to get to this package specifically: BSG stands for Beta Spectrum Generator and refers to this package: https://github.com/leenderthayen/BSG. It calculates allowed beta spectra to high precision. The combination with this package is currently not functional on the master branch, and only experimental on the development branch. This is still a WIP with a substantial overhaul of CRADLE, BSG and other packages, which has halted right now in the face of a lot of other work. If you absolutely need this, I can put it higher on the priority list.

@Jessie555
Copy link
Author

Dear Leendert,

Thank you for the background! I think I'm still confused on why my machine thinks it is required. Should I go into the cmake list and remove it manually to resolve the issue, or should I install?

@leenderthayen
Copy link
Owner

It's probably easiest to comment out the find_package line in the CMakeLists.txt file, and try rebuilding that way. Note that the beta spectra are then not of the highest quality, since it's only the phase space and Fermi function.

@Jessie555
Copy link
Author

Dear Leendert,

I took out the line after some digging but another error came up leading to a ".o."
I'm not too sure how to resolve this problem since it doesn't lead to a file I am able to edit.
fatal error: BSGOptionContainer.h: No such file or directory #include "BSGOptionContainer.h"
I apologize if this is a trivial error, I haven't been able to find any other resources showing how to resolve this.
Thank you again for your time!

@leenderthayen
Copy link
Owner

Hi Jessie,

This looks like somehow a piece of the code is still trying to load some BSG files, specifically BSGOptionContainer.h and it's not able to find it due since we're not telling CMake to include it. What's the extended error message? I'll take a look at a clean master branch build and fix things, but in the mean time it's likely easiest to just have a zoom chat for getting you set up.

@Jessie555
Copy link
Author

That would be perfect! what would be the best way to exchange contact information? I prefer not to put my email out on public platforms. Thank you again for your help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants