CTK icon indicating copy to clipboard operation
CTK copied to clipboard

ENH: Enable propagation of linker flags

Open RafaelPalomar opened this issue 1 year ago • 2 comments

This change allows customizing the linker flags at the superbuild level. The motivation behind this modification was to enable the use of the gold linker in 3D Slicer, as referenced in Slicer/Slicer#7294, to expedite the linking phase during the build process.

RafaelPalomar avatar Oct 27 '23 08:10 RafaelPalomar

For reference, in an existing build tree, we wouldn't be overriding existing value:

Linux
for f in $(fd "CMakeCache.txt$"); do
  echo "$f";
  cat $f | grep -E "^CMAKE_(SHARED|EXE|MODULE)_LINKER_FLAGS\:";
done
CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
CMakeFiles/ctkLinkerAsNeededFlagCheck/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
CTK-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING='   '
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
CTK-build/CMakeFiles/ctkLinkerAsNeededFlagCheck/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
CTK-build/Utilities/DGraph/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
DCMTK-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
ITK-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
ITK-build/ITKInternalEigen3-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
ITK-build/Modules/Core/Common/CMakeTmp/ITK_PRIVATE_DYNAMIC_CAST/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
Log4Qt-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
PythonQt-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
QtSOAP-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
QtTesting-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
Utilities/DGraph/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
VTK-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
VTK-build/Utilities/Python/CMakeTmp/vtk_undefined_symbols_allowed/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING= -Wl,-lc
qRestAPI-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=
qxmlrpc-build/CMakeCache.txt
CMAKE_EXE_LINKER_FLAGS:STRING=
CMAKE_MODULE_LINKER_FLAGS:STRING=
CMAKE_SHARED_LINKER_FLAGS:STRING=

jcfr avatar Oct 30 '23 20:10 jcfr

Updated this PR and Slicer/Slicer#7294 to update CMakeCache.txt values related to gold linker. @jcfr

RafaelPalomar avatar Nov 03 '23 17:11 RafaelPalomar