Project

General

Profile

Bug #20079

OSX Builds take an extraordinary amount of time

Added by Tracy Usher over 1 year ago. Updated 11 months ago.

Status:
Assigned
Priority:
Normal
Assignee:
Category:
Install / build / code mgmt
Target version:
-
Start date:
06/01/2018
Due date:
% Done:

0%

Estimated time:
20.00 h
Occurs In:
Experiment:
ICARUS
Co-Assignees:
Duration:

Description

Building on osx machines has become quite painful since around the time of the change to the clang compiler. It is NOT the compilation/build step but rather the installation. The first time through installation is relatively painless but if you are force to do a build with the "install" included then the installation step takes a ridiculously long amount of time - to the point where so much time is lost that development work is significantly impacted.

The major plus of OSX support is the ability to do development on a local machine, particularly for those non-resident at Fermilab where network latency makes useful development on Fermi linux machines impracticable. But this is advantage is becoming negated by these long installation times.

There really needs to be a solution to this problem... (and I'm not even sure I know where to look if I wanted to try to solve myself).

History

#1 Updated by Kyle Knoepfel over 1 year ago

  • Status changed from New to Feedback

Tracy, what part of your general development is forcing you to do the install step?

#2 Updated by Tracy Usher over 1 year ago

Kyle Knoepfel wrote:

Tracy, what part of your general development is forcing you to do the install step?

The first place is during the installation of the latest version of larsoft. I build it locally (I've not had good experience trying to debug with downloaded packages since the path to the source appears to get scrambled). Just building the larsoft modules can now take >3 hours. Then again when I update the development area to the new version of larsoft. Finally, when new modules/fhicl files/folders/etc. are added I have been doing "mrb i" so that I can run a clean setup from a different window. This ends up reinstalling, as near as I can tell, all the files in my development area regardless of whether they have been rebuilt. This is something that I believe came in relatively recently (I want to say around the time of the c2 builds) so is definitely "new" (hence the feeling it could be fixed).

#3 Updated by Kyle Knoepfel over 1 year ago

For debugging purposes, gdb provides the 'set substitute-path <from-path> <to-path>' (where the '*-path' values are prefixes).

#4 Updated by Kyle Knoepfel over 1 year ago

Note that for setting up to use your build area from a different login window, it is not necessary to call 'mrb i'. Please contact us for further guidance.

#5 Updated by Lynn Garren over 1 year ago

When building on macOS, cmake inserts the rpath into libraries and executables. At the install step, the rpath must be changed. Unfortunately, cmake recognizes that the newly installed library is not the same as the library in the build area. This means that it always reinstalls the library. This is a feature of cmake and macOS. It is not under our control.

For this reason, we encourage you to avoid using "mrb i" unless absolutely necessary.

#6 Updated by Lynn Garren over 1 year ago

Tracy, have you tried to work on the dedicated MicroBooNE build machine, uboonebuild01.fnal.gov?

#7 Updated by Tracy Usher over 1 year ago

Lynn Garren wrote:

Tracy, have you tried to work on the dedicated MicroBooNE build machine, uboonebuild01.fnal.gov?

No I have not... my strategy is to try to avoid remote access to other machines. I have a very nice laptop with 2 TB storage, 16 GB RAM, etc. So the point is to have the complete debug (that actually works as debug) environment built on my machine. This is particularly handy when flying and once again the wifi doesn't work or 99% of the rest of the time won't support remote access.

Mention is made in this thread that I don't need to use mrb i... but once the make files have been made even "ninja install" suffers the same fate. But if there is a way to get around using mrb for builds and it will be much faster I'm happy to try.

#8 Updated by Lynn Garren over 1 year ago

You can always do the builds directly, mrb is just for convenience when developing several packages at the same time. But it won't help you. The problem is primarily with macOS.

#9 Updated by Tracy Usher over 1 year ago

Obviously, I don't claim to be anything more than a casual user of cmake (using mrb) so perhaps this has already been explored... This thread [https://cmake.org/Bug/print_bug_page.php?bug_id=15178] seems to indicate the issue is the overuse of otool during the install step, the claim is that it can be alleviated by setting CMAKE_PLATFORM_HAS_INSTALLNAME OFF. Perhaps this is already done, if not can I get some instructions on how I could try this locally on my laptop?

#10 Updated by Tracy Usher over 1 year ago

Ok, I did the stupidest thing possible, I had a development area with two packages and I modified the top level CMakeLists.txt files for both to include the lines in the previously mentioned link. Unbelievably faster. And code still executes. It would be nice if someone who actually knows what they are doing could try this as well.
The one downside is that it does NOT work with ninja... when I used mrb I --generator=ninja I got an error almost right away about rpaths. But if I simply did mrb i then it appears to work fine.

#11 Updated by Lynn Garren over 1 year ago

Tracy, that's interesting. The discussion linked above is from 2014 and a fix went into cmake at that time which invokes CMAKE_USE_MACH_PARSER. I find CMAKE_USE_MACH_PARSER in cmake 3.6.2 through 3.9.2, but not in cmake 3.9.5 or newer. One would hope that different mechanism has been provided, but it is as yet unclear.

#12 Updated by Tracy Usher over 1 year ago

Yes, I agree the discussion was old, but... well, in my particular case it appears to do the right thing... it would be great if someone who really knew what they were doing could look at it and confirm either that it works or that I missed something (which is entirely possible!).
So, for the record, in the top level CMakeLists.txt file for a given package I inserted the following near the beginning:

set( CMAKE_BUILD_WITH_INSTALL_RPATH ON )
set( CMAKE_INSTALL_NAME_DIR "@executable_path" )
set( CMAKE_PLATFORM_HAS_INSTALLNAME OFF )

I went back to the build area, did mrb z, mrbsetenv and then mrb i --j6 (no ninja) and, as reported earlier, was surprised at how fast it was.
Subsequently I went and did a simple modification to one of the files then just to be sure I ran mrb i again this time recording the build log (see below). You can't see here how much faster the install goes, but you can see from the log that the file I touched did, indeed, get updated while the rest were reported as "up to date".

/LArSoft/ICARUS/artdaq_core/v06_80_00/build_d17.x86_64
calling buildtool -I /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug -i -j6
INFO: Install prefix = /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug
INFO: CETPKG_TYPE = Debug

------------------------------------
INFO: Stage cmake.
------------------------------------

-- cetbuildtools_BINDIR = /LArSoft/Products/cetbuildtools/v7_02_01/bin
-- full qual c2:debug reduced to c2
-- Product is artdaq_core v3_03_00 c2:debug
-- Module path is /LArSoft/Products/canvas_root_io/v1_01_06/Modules;/LArSoft/Products/canvas/v3_03_02/Modules;/LArSoft/Products/cetbuildtools/v7_02_01/Modules
-- set_install_root: PACKAGE_TOP_DIRECTORY is /LArSoft/ICARUS/artdaq_core/v06_80_00/srcs/artdaq_core
-- cet dot version: 3.03.00
-- CET_REPORT: /LArSoft/Products/cetbuildtools/v7_02_01/bin/cet_report
-- Building for Darwin d17 x86_64
-- install_license: files will be installed in artdaq_core/v3_03_00
-- Selected diagnostics option VIGILANT
-- find_ups_boost: Boost version and qualifier are v1_66_0a c2:debug
-- Boost version: 1.66.0
-- Found the following Boost libraries:
-- chrono
-- date_time
-- filesystem
-- graph
-- iostreams
-- locale
-- prg_exec_monitor
-- program_options
-- random
-- regex
-- serialization
-- signals
-- system
-- thread
-- timer
-- unit_test_framework
-- wave
-- wserialization
-- atomic
-- find_ups_root: ROOT version and qualifier are v6_12_06a c2:debug
-- compiler flags for directory and below
-- C++ FLAGS: g -gdwarf-4 -O0 -std=c++98 -Werror -pedantic -std=c++17 -Wall -Werror=return-type -Wextra -Wno-long-long -Winit-self -Wno-unused-local-typedefs -Woverloaded-virtual -Wnon-virtual-dtor -Wdelete-non-virtual-dtor
-
C FLAGS: g -gdwarf-4 -O0 -Werror -pedantic -Wall -Werror=return-type -Wextra -Wno-long-long -Winit-self -Wno-unused-local-typedefs
-
changing MF_MessageLogger to /LArSoft/Products/messagefacility/v2_02_02/d17.x86_64.c2.debug/lib/libMF_MessageLogger.dylib
-- changing MF_MessageLogger to /LArSoft/Products/messagefacility/v2_02_02/d17.x86_64.c2.debug/lib/libMF_MessageLogger.dylib
-- changing fhiclcpp to /LArSoft/Products/fhiclcpp/v4_06_08/d17.x86_64.c2.debug/lib/libfhiclcpp.dylib
-- changing cetlib to /LArSoft/Products/cetlib/v3_03_01/d17.x86_64.c2.debug/lib/libcetlib.dylib
-- changing cetlib_except to /LArSoft/Products/cetlib_except/v1_02_01/d17.x86_64.c2.debug/lib/libcetlib_except.dylib
-- cet_make: building library artdaq-core_Utilities for /LArSoft/ICARUS/artdaq_core/v06_80_00/srcs/artdaq_core/artdaq-core/Utilities
-- BASIC_PLUGIN: changing MF_MessageLogger to /LArSoft/Products/messagefacility/v2_02_02/d17.x86_64.c2.debug/lib/libMF_MessageLogger.dylib
-- changing cetlib to /LArSoft/Products/cetlib/v3_03_01/d17.x86_64.c2.debug/lib/libcetlib.dylib
-- changing cetlib_except to /LArSoft/Products/cetlib_except/v1_02_01/d17.x86_64.c2.debug/lib/libcetlib_except.dylib
-- cet_make: building library artdaq-core_Data for /LArSoft/ICARUS/artdaq_core/v06_80_00/srcs/artdaq_core/artdaq-core/Data
-- changing canvas to /LArSoft/Products/canvas/v3_03_02/d17.x86_64.c2.debug/lib/libcanvas.dylib
-- changing cetlib to /LArSoft/Products/cetlib/v3_03_01/d17.x86_64.c2.debug/lib/libcetlib.dylib
-- changing cetlib_except to /LArSoft/Products/cetlib_except/v1_02_01/d17.x86_64.c2.debug/lib/libcetlib_except.dylib
-- changing fhiclcpp to /LArSoft/Products/fhiclcpp/v4_06_08/d17.x86_64.c2.debug/lib/libfhiclcpp.dylib
-- cet_make: building library artdaq-core_Core for /LArSoft/ICARUS/artdaq_core/v06_80_00/srcs/artdaq_core/artdaq-core/Core
-- changing fhiclcpp to /LArSoft/Products/fhiclcpp/v4_06_08/d17.x86_64.c2.debug/lib/libfhiclcpp.dylib
-- changing cetlib to /LArSoft/Products/cetlib/v3_03_01/d17.x86_64.c2.debug/lib/libcetlib.dylib
-- changing MF_MessageLogger to /LArSoft/Products/messagefacility/v2_02_02/d17.x86_64.c2.debug/lib/libMF_MessageLogger.dylib
-- cet_make: building library artdaq-core_Generators for /LArSoft/ICARUS/artdaq_core/v06_80_00/srcs/artdaq_core/artdaq-core/Generators
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- CPACK_PACKAGE_VERSION is 3.03.00
-- CPACK_PACKAGE_NAME and CPACK_SYSTEM_NAME are larsoft d17-x86_64-c2-debug
-- cetbuildtools_BINDIR = /LArSoft/Products/cetbuildtools/v7_02_01/bin
-- full qual c2:debug reduced to c2
-- Product is icarus_artdaq_core v0_06_01 c2:debug
-- Module path is /LArSoft/Products/art/v2_11_02/Modules;/LArSoft/Products/cetbuildtools/v7_02_01/Modules
-- set_install_root: PACKAGE_TOP_DIRECTORY is /LArSoft/ICARUS/artdaq_core/v06_80_00/srcs/icarus-artdaq-core
-- cet dot version: 0.06.01
-- CET_REPORT: /LArSoft/Products/cetbuildtools/v7_02_01/bin/cet_report
-- Building for Darwin d17 x86_64
-- install_license: files will be installed in icarus_artdaq_core/v0_06_01
-- Selected diagnostics option VIGILANT
-- compiler flags for directory and below
-- C++ FLAGS: g -gdwarf-4 -O0 -std=c++98 -Werror -pedantic -std=c++17 -Wall -Werror=return-type -Wextra -Wno-long-long -Winit-self -Wno-unused-local-typedefs -Woverloaded-virtual -Wnon-virtual-dtor -Wdelete-non-virtual-dtor
-
C FLAGS: g -gdwarf-4 -O0 -Werror -pedantic -Wall -Werror=return-type -Wextra -Wno-long-long -Winit-self -Wno-unused-local-typedefs
-
find_ups_boost: Boost version and qualifier are v1_66_0a c2:debug
-- Boost version: 1.66.0
-- Found the following Boost libraries:
-- chrono
-- date_time
-- filesystem
-- graph
-- iostreams
-- locale
-- prg_exec_monitor
-- program_options
-- random
-- regex
-- serialization
-- signals
-- system
-- thread
-- timer
-- unit_test_framework
-- wave
-- wserialization
-- atomic
-- CPACK_PACKAGE_VERSION is 0.06.01
-- CPACK_PACKAGE_NAME and CPACK_SYSTEM_NAME are larsoft d17-x86_64-c2-debug
-- Configuring done
-- Generating done
-- Build files have been written to: /LArSoft/ICARUS/artdaq_core/v06_80_00/build_d17.x86_64

------------------------------------
INFO: Stage cmake successful.
------------------------------------

------------------------------------
INFO: Stage install / package.
------------------------------------

Scanning dependencies of target artdaq-core_BuildInfo
Scanning dependencies of target icarus-artdaq-core_BuildInfo
[ 4%] Building CXX object artdaq_core/artdaq-core/BuildInfo/CMakeFiles/artdaq-core_BuildInfo.dir/GetPackageBuildInfo.cc.o
[ 8%] Built target artdaq-core_Data
[ 12%] Built target icarus-artdaq-core_Trace
[ 14%] Building CXX object icarus-artdaq-core/icarus-artdaq-core/BuildInfo/CMakeFiles/icarus-artdaq-core_BuildInfo.dir/GetPackageBuildInfo.cc.o
[ 18%] Built target artdaq-core_Utilities_GenFile_mfPlugin
[ 29%] Built target artdaq-core_Utilities
Scanning dependencies of target icarus-artdaq-core_Overlays
[ 31%] Linking CXX shared library ../../lib/libicarus-artdaq-core_BuildInfo.dylib
[ 33%] Linking CXX shared library ../../lib/libartdaq-core_BuildInfo.dylib
[ 35%] Building CXX object icarus-artdaq-core/icarus-artdaq-core/Overlays/CMakeFiles/icarus-artdaq-core_Overlays.dir/PhysCrateStatFragment.cc.o
[ 39%] Built target RawEvent_t
[ 43%] Built target ContainerFragment_t
[ 47%] Built target Fragment_t
[ 50%] Linking CXX shared library ../../lib/libicarus-artdaq-core_Overlays.dylib
[ 50%] Built target icarus-artdaq-core_BuildInfo
[ 50%] Built target artdaq-core_BuildInfo
[ 54%] Built target artdaq-core_Generators
[ 60%] Built target artdaq-core_Data_dict
[ 79%] Built target artdaq-core_Core
[ 79%] Built target BuildDictionary_AllDicts
[ 83%] Built target FragmentGenerator_t
[ 89%] Built target icarus-artdaq-core_Overlays
[ 93%] Built target SharedMemoryFragmentManager_t
[ 97%] Built target SharedMemoryManager_t
[100%] Built target checkClassVersion_artdaq-core_Data
Install the project...
-- Install configuration: "Debug"
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/README
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/libartdaq-core_Utilities.dylib
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/libartdaq-core_Utilities_GenFile_mfPlugin.dylib
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Utilities/ExceptionHandler.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Utilities/SimpleLookupPolicy.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Utilities/TimeUtils.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Utilities/TraceLock.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Utilities/configureMessageFacility.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Utilities/ExceptionHandler.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Utilities/GenFile_mfPlugin.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Utilities/SimpleLookupPolicy.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Utilities/TimeUtils.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Utilities/configureMessageFacility.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Utilities/ExceptionHandler.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Utilities/SimpleLookupPolicy.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Utilities/TimeUtils.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Utilities/TraceLock.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Utilities/configureMessageFacility.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/libartdaq-core_Data.dylib
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/libartdaq-core_Data_dict.dylib
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/libartdaq-core_Data_dict.rootmap
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/libartdaq-core_Data_dict_rdict.pcm
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Data/ContainerFragment.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Data/ContainerFragmentLoader.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Data/Fragment.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Data/Fragments.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Data/PackageBuildInfo.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Data/RawEvent.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Data/dictionarycontrol.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Data/detail/ParentageMap.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Data/detail/RawFragmentHeader.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Data/detail/RawFragmentHeaderV0.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/Fragment.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/RawEvent.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/classes.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/ContainerFragment.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/ContainerFragmentLoader.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/Fragment.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/Fragments.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/PackageBuildInfo.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/RawEvent.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/dictionarycontrol.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/classes.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/classes_def.xml
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/artdaq-core_Data_dict.cpp
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/artdaq-core_Data_dict.cpp
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/detail/ParentageMap.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/detail/RawFragmentHeader.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Data/detail/RawFragmentHeaderV0.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/libartdaq-core_Core.dylib
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Core/ConcurrentQueue.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Core/GlobalQueue.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Core/MonitoredQuantity.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Core/QuickVec.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Core/SharedMemoryEventReceiver.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Core/SharedMemoryFragmentManager.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Core/SharedMemoryManager.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Core/SimpleMemoryReader.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Core/SimpleQueueReader.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Core/StatisticsCollection.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/GlobalQueue.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/MonitoredQuantity.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/SharedMemoryEventReceiver.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/SharedMemoryFragmentManager.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/SharedMemoryManager.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/SimpleMemoryReader.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/SimpleQueueReader.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/StatisticsCollection.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/ConcurrentQueue.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/GlobalQueue.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/MonitoredQuantity.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/QuickVec.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/SharedMemoryEventReceiver.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/SharedMemoryFragmentManager.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/SharedMemoryManager.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/SimpleMemoryReader.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/SimpleQueueReader.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Core/StatisticsCollection.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/libartdaq-core_Generators.dylib
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Generators/FragmentGenerator.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Generators/GeneratorMacros.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/Generators/makeFragmentGenerator.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Generators/makeFragmentGenerator.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Generators/FragmentGenerator.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Generators/GeneratorMacros.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/Generators/makeFragmentGenerator.hh
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/libartdaq-core_BuildInfo.dylib
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/include/artdaq-core/BuildInfo/GetPackageBuildInfo.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/BuildInfo/GetPackageBuildInfo.hh
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/source/artdaq-core/BuildInfo/GetPackageBuildInfo.cc
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/ups/artdaq_core.table
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00.version/Darwin64bit+17_c2_debug
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/artdaq_core/cmake/artdaq_coreConfig.cmake
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/artdaq_core/v3_03_00/d17.x86_64.c2.debug/lib/artdaq_core/cmake/artdaq_coreConfigVersion.cmake
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/d17.x86_64.c2.debug/lib/libicarus-artdaq-core_BuildInfo.dylib
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/BuildInfo/GetPackageBuildInfo.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/BuildInfo/GetPackageBuildInfo.hh
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/BuildInfo/GetPackageBuildInfo.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/d17.x86_64.c2.debug/lib/libicarus-artdaq-core_Trace.dylib
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/Trace/trace_defines.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/Trace/trace_defines.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Trace/trace_defines.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Trace/trace_defines.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Trace/trace_defines.h
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/d17.x86_64.c2.debug/lib/libicarus-artdaq-core_Overlays.dylib
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/Overlays/packs.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/Overlays/structures.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/Overlays/CAENV1730Fragment.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/Overlays/FragmentType.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/Overlays/PhysCrateFragment.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/Overlays/PhysCrateStatFragment.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/Overlays/packs.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/include/icarus-artdaq-core/Overlays/structures.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/CAENV1730Fragment.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/FragmentType.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/PhysCrateFragment.cc
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/PhysCrateStatFragment.cc
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/classes.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/packs.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/structures.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/CAENV1730Fragment.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/FragmentType.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/PhysCrateFragment.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/PhysCrateStatFragment.hh
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/classes.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/packs.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/structures.h
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/source/icarus-artdaq-core/Overlays/classes_def.xml
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/ups/icarus_artdaq_core.table
-- Installing: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01.version/Darwin64bit+17_c2_debug
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/d17.x86_64.c2.debug/lib/icarus_artdaq_core/cmake/icarus_artdaq_coreConfig.cmake
-- Up-to-date: /LArSoft/ICARUS/artdaq_core/v06_80_00/localProducts_larsoft_v06_80_00_c2_debug/icarus_artdaq_core/v0_06_01/d17.x86_64.c2.debug/lib/icarus_artdaq_core/cmake/icarus_artdaq_coreConfigVersion.cmake

------------------------------------
INFO: Stage install / package successful.
------------------------------------

#13 Updated by Lynn Garren over 1 year ago

The text below is from the cmake 3.10 documentation:

Normally CMake uses the build tree for the RPATH when building executables etc on systems that use RPATH. When the software is installed the executables etc are relinked by CMake to have the install RPATH. If this variable is set to true then the software is always built with the install path for the RPATH and does not need to be relinked when installed.

CMAKE_INSTALL_NAME_DIR defines the OS X directory name for installed targets.

I do not find CMAKE_PLATFORM_HAS_INSTALLNAME in the cmake documentation.

It appears to be safe for you to do this for strictly local builds. It will take time for us to perform thorough tests to see if this or something similar can be used for relocatable building. We cannot advocate this workaround for general use at this time.

#14 Updated by Kyle Knoepfel over 1 year ago

  • Status changed from Feedback to Assigned
  • Assignee set to Lynn Garren
  • Priority changed from Immediate to Normal
  • Estimated time set to 20.00 h

It will take some time to investigate how we can incorporate improvements within cetbuildtools and mrb. Because you have a workaround, we have taken the liberty to reduce the priority to Normal.

#15 Updated by Tracy Usher over 1 year ago

Following a suggestion from Lynn I reduced the number of "set" commands to the following:
set( CMAKE_BUILD_WITH_INSTALL_RPATH ON )
set( CMAKE_INSTALL_NAME_DIR "@executable_path" )
These are placed in the top level CMakeLists.txt file of each package in my development area and then was able to build successfully. This has the advantage that ninja works and the install step is still lightning fast (you have to try to watch it to appreciate just how fast it is compared to not using those set commands above.

#16 Updated by Tracy Usher 12 months ago

Circling back to this...
Last week (last of November 2018) I was told that SPACK has no timeline for introduction and not to expect it "possibly ever". As SPACK had been held up to me as the solution to the slow OSX builds and was considered imminent/short timescale I was willing to wait. But infinity is a number bigger than the number of years left in my life so, on the assumption we will not see SPACK in a useful time period, I thought I would ping this thread again to see if we can get a working solution with the current build system.
From my perspective, I have a workaround (a hand edit of the top level CMakelists file in my development directory) which facilitates the installation step so that is not really an issue for me, even for large development areas (meaning lots of packages).
So, for me, the issue is entirely the extraordinarily long time taken in the initial building of make files from the CMakelists files that is normally the first step in a "mrb I" type of command. I believe there was some understanding of why this was taking so long, it would be great if a solution could be implemented.
Two things to note:
1) from googling around it seems that on OSX cmake is considered one of the faster systems (with no reports of the experience we have with larsoft)... so unilaterally changing to some other system (e.g. waf) doesn't seem to make sense,
2) I know of several code developers initially interested in switching to code development on their osx platforms but turned off immediately by the long build times.
IMHO we are not taking advantage of a major resource (that nearly everyone has an osx machine they walk around with every day) to help take load off the central systems. In any case, if you are not local to Fermilab it can be challenging to work on central systems and have real access to all resources (e.g. try running the event display from a remote location). So I believe a solution here is important.

Thanks!

#17 Updated by Kyle Knoepfel 11 months ago

Thank you for your candor, Tracy. I cannot speak for LArSoft but as a leader of the SciSoft team. My understanding is that the SCD intends to continue pursuing Spack/SpackDev until it is either successful as a cetbuildtools/mrb replacement and has been adopted by experiments, or until it has been demonstrated that it cannot succeed. I'm sorry if you got a different impression--we certainly would not tell you to wait for a feature if we knew that feature could not be delivered.

A minimum viable product (MVP) has been produced that supports up through the art suite, but an MVP that supports LArSoft development is not yet in the cards. Current effort on Spack is rather thin, due to competing priorities. That said, we are in the process of assessing the projects that have been/are being undertaken by the SciSoft team and what level of effort is required to continue them.

Chris Green (added as a watcher to this issue) or Lynn would be able to give you more up-to-date and accurate information. We appreciate your patience, and we will continue to discuss this issue within the SCD and with our users. Please feel free to keep pinging us on this.



Also available in: Atom PDF