ORNL-QCI / xacc

XACC - eXtreme-scale Accelerator programming framework
https://xacc.readthedocs.io
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Add "minimal" build mode #17

Open sethrj opened 6 days ago

sethrj commented 6 days ago

There are a number of 5+ year old dependencies from numerous projects built into XACC. Many of these fail to compile on modern Clang compilers due to use of deleted C++ functions.

There would be two big advantages to adding a CMake switch that disables everything except, for example, the Aer simulator:

  1. It would enable support for more machines because there's less probability of build failures due to out-of-date code that we can't afford to maintain.
  2. Building less code means we could add a minimal build to the CI for QIR-EE, allowing us to ensure that the XACC components are minimally functional.

cc @wongey

sethrj commented 3 days ago

@danclaudino Is this feasible to do without much effort? I could help with the cmake necessary to inject a compile-time constant that would let you #ifdef XACC_MINIMAL to disable inactive code regions...

danclaudino commented 6 hours ago

@sethrj I'll work on it today. This should be straightforward, but will let you know if I need help. Also for @wongey, if there's anything other than Aer that should be part of this minimal build, let me know.

sethrj commented 6 hours ago

Awesome! Thanks a bunch @danclaudino .

wongey commented 5 hours ago

@danclaudino I would say keeping at least one vendor plugin in the build would be helpful for qir-ee testing purposes. I am currently testing with Honeywell and IonQ (but I think Honeywell would be a better choice if we only want to pick one). Adding another simulator like qpp might also be useful to compare results with aer (but if that is too much, I can use Honeywell's emulator instead).