Bug #17189

libart_Version conflict with $ART_VERSION in mrb

Added by Ron Rechenmacher over 3 years ago. Updated over 3 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
16.00 h


artdaq depends on art and ups therefore establishes/sets env. var $ART_VERSION.
Additionally, some utilities in artdaq link against libart_Version using cmake
variable art_Version. If we add art to our $MRB_SOURCES, the art_Version cmake
variable seems to get set to the value of the $ART_VERSION env var.


#1 Updated by Lynn Garren over 3 years ago

  • Status changed from New to Feedback

Cetbuildtools has been definining <product_lower_case>_VERSION for some time. This is used by various cetbuildtools methods. If artdaq also makes its own definition of art_VERSION, then there is a clear conflict. Is there a reason that you cannot use the definition from cetbuildtools? If not, are you able to change the name of your variable?

#2 Updated by Eric Flumerfelt over 3 years ago

The problem is that one of our applications is trying to link against the library called, which in cetbuildtools CMake becomes art_Version in CMakeLists.txt. However, that variable is (as you noted) defined as other things in other places. Outside of mrb, we can put ${ART_LIB}/ in the library list, but this breaks if art is in mrb because ${ART_LIB} is undefined (and we would want CMake to figure out the correct library dependencies anyway).

Any code that calls art::getReleaseVersion outside of the art framework is going to have this issue. We have a workaround in CMake here:

#3 Updated by Lynn Garren over 3 years ago

  • Status changed from Feedback to Accepted

Thank you. We will investigate.

#4 Updated by Kyle Knoepfel over 3 years ago

  • Project changed from art to cetbuildtools
  • Status changed from Accepted to Assigned
  • Assignee set to Lynn Garren
  • Estimated time set to 16.00 h

Also available in: Atom PDF