[DynInst_API:] ExternalProject_Add and dependencies


Date: Tue, 16 Jul 2019 17:45:48 -0400
From: Stan Cox <scox@xxxxxxxxxx>
Subject: [DynInst_API:] ExternalProject_Add and dependencies
Older versions of linux do not have a recent enough tbb or boost to build dyninst. The ExternalProject_Add support is nice for those; I notice a couple of things. One is that dependencies are needed otherwise what I see is something like 'make -j20' will cause dyninst build errors because pieces are not available. I'm just using -j1 for now; but oh my goodness that increases the build time. Another is the tbb and boost builds are installed into the ultimate install location. So what happens with our system builds is it wants to install to the system library directory, e.g. /usr/lib64/dyninst. I patched that so tbb and boost do an intermediate install to tbb/install and boost/install, dyninst builds from that, and CMakeLists.txt installs those. It works but it the CMakeLists.txt bit is really ugly:

+# Copy TBB and BOOST libraries from temp install dir to dyninst install dir
+# Note: make has not yet run so we need to explicitly set the list
+set(TBB_AND_BOOST_LIBS tbb/install/lib/libtbbmalloc_proxy.so tbb/install/lib/libtbbmalloc_proxy.so.2 tbb/install/lib/libtbbmalloc.s o tbb/install/lib/libtbbmalloc.so.2 tbb/install/lib/libtbb.so tbb/install/lib/libtbb.so.2 boost/install/lib/libboost_atomic.a boost/ install/lib/libboost_atomic.so boost/install/lib/libboost_atomic.so.1.61.0 boost/install/lib/libboost_chrono.a boost/install/lib/lib boost_chrono.so boost/install/lib/libboost_chrono.so.1.61.0 boost/install/lib/libboost_date_time.a boost/install/lib/libboost_date_t ime.so boost/install/lib/libboost_date_time.so.1.61.0 boost/install/lib/libboost_filesystem.a boost/install/lib/libboost_filesystem. so boost/install/lib/libboost_filesystem.so.1.61.0 boost/install/lib/libboost_system.a boost/install/lib/libboost_system.so boost/in stall/lib/libboost_system.so.1.61.0 boost/install/lib/libboost_thread.a boost/install/lib/libboost_thread.so boost/install/lib/libbo ost_thread.so.1.61.0 boost/install/lib/libboost_timer.a boost/install/lib/libboost_timer.so boost/install/lib/libboost_timer.so.1.61
.0)
+foreach(F ${TBB_AND_BOOST_LIBS})
+ install(PROGRAMS "${Dyninst_BINARY_DIR}/${F}" DESTINATION "${CMAKE_INSTALL_PREFIX}/lib")
+endforeach()
[← Prev in Thread] Current Thread [Next in Thread→]