Skip to content

Commit

Permalink
ENH: Enable propagation of linker flags
Browse files Browse the repository at this point in the history
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.

Co-authored-by: Jean-Christophe Fillion-Robin <[email protected]>
  • Loading branch information
RafaelPalomar and jcfr committed Nov 3, 2023
1 parent f53820a commit 9f0641f
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,25 @@ set(ADDITIONAL_CXX_FLAGS "" CACHE STRING "Additional CXX Flags")
mark_as_advanced(ADDITIONAL_CXX_FLAGS)
mark_as_superbuild(ADDITIONAL_CXX_FLAGS)

#-----------------------------------------------------------------------------
# Linker flags
#
# This section is adapted to enhance the build process by introducing the
# possibility of customizing linker flags. This was added in connection with
# enabling the gold linker in 3D Slicer, as outlined in PR:
# https://github.com/Slicer/Slicer/pull/7294.
#
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}" CACHE STRING "Flags used by the linker" FORCE)
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}" CACHE STRING "Flags used by the linker (module)" FORCE)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}" CACHE STRING "Flags used by the linker (shared)" FORCE)

mark_as_superbuild(VARS
CMAKE_EXE_LINKER_FLAGS:STRING
CMAKE_MODULE_LINKER_FLAGS:STRING
CMAKE_SHARED_LINKER_FLAGS:STRING
ALL_PROJECTS
)

#-----------------------------------------------------------------------------
# Set symbol visibility Flags
#
Expand Down

0 comments on commit 9f0641f

Please sign in to comment.