ORNL / DataFed

A Federated Scientific Data Management System
https://ornl.github.io/DataFed/
Other
18 stars 14 forks source link

Attempting to create more specific targets in CMake build system #860

Closed JoshuaSBrown closed 1 year ago

JoshuaSBrown commented 1 year ago

Well this was a pain to get sort of working.

JoshuaSBrown commented 1 year ago

The goal of this pr is to move as much of the build steps as can be moved into the CMake side of things. The other goal was to better separate installation of "services" from the actual "servers". This pr still needs a lot of work.

Ultimately we should be able to pick and build a specific target without having to build or install any of the other targets.

JoshuaSBrown commented 1 year ago

@dvstans I think this addressed what you wanted. Please take a look and make sure. If so I'll clean it up. You should now have the ability to install individual servers, libraries and services using individual targets.

cmake --build build --target install-core-server
cmake --build build --target install-core-service
cmake --build build --target install-repo-server
cmake --build build --target install-repo-service
cmake --build build --target install-authz
cmake --build build --target install-web-server
cmake --build build --target install-web-service

If there are a few more additional targets you think would be useful to define let me know though I don't want to spend too much more time on this given there are other more pressing priorities.

JoshuaSBrown commented 1 year ago

NOTES after meeting the following changes need to be made:

  1. Don’t overwrite master config file if already exist
  2. If no master config file exists generate them automatically on build – should not require a separate generate_script on install call
  3. Package specific config files should be automatically generated from settings in the master config file.

./DataFed/scripts/generate_datafed.sh – run during build ./DataFed/scripts/generate_core_config.sh – This would should be run during install

  1. Option for not by default overwriting Install directory should be customizable /opt/datafed – default but needs to be flexible