CTK
CTK copied to clipboard
ENH: Enable propagation of linker flags
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.
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=
Updated this PR and Slicer/Slicer#7294 to update CMakeCache.txt
values related to gold linker. @jcfr