Skip to content

Commit 7f1814d

Browse files
authored
Merge pull request #5708 from blowekamp/gdcm_update_output_directory
Conform GDCM to use CMAKE_*OUTPUT_DIRECTORY
2 parents 19a96aa + d5cf8de commit 7f1814d

2 files changed

Lines changed: 30 additions & 15 deletions

File tree

Modules/ThirdParty/GDCM/src/CMakeLists.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,6 @@ set(GDCMV2_0_COMPATIBILITY ON CACHE INTERNAL "")
8383
set(GDCM_WRITE_ODD_LENGTH OFF CACHE INTERNAL "Do not change")
8484
set(GDCM_DEBUG_POSTFIX "" CACHE INTERNAL "")
8585

86-
# GDCM uses these to refer to executable and library locations
87-
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
88-
set(LIBRARY_OUTPUT_PATH ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
89-
9086
add_subdirectory(gdcm)
9187

9288
foreach(

Modules/ThirdParty/GDCM/src/gdcm/CMakeLists.txt

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -118,20 +118,39 @@ if(BUILD_SHARED_LIBS)
118118
endif()
119119

120120
#-----------------------------------------------------------------------------
121-
if(NOT EXECUTABLE_OUTPUT_PATH)
122-
set(EXECUTABLE_OUTPUT_PATH ${GDCM_BINARY_DIR}/bin CACHE PATH "Single output directory for building all executables.")
123-
mark_as_advanced(EXECUTABLE_OUTPUT_PATH)
121+
# Compatibility with older usage of EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH.
122+
# This should be removed in the future.
123+
if(EXECUTABLE_OUTPUT_PATH)
124+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
125+
message(WARNING "EXECUTABLE_OUTPUT_PATH is deprecated. Use CMAKE_RUNTIME_OUTPUT_DIRECTORY instead.")
124126
endif()
125-
if(NOT LIBRARY_OUTPUT_PATH)
126-
set(LIBRARY_OUTPUT_PATH ${GDCM_BINARY_DIR}/bin CACHE PATH "Single output directory for building all libraries.")
127-
mark_as_advanced(LIBRARY_OUTPUT_PATH)
127+
if(LIBRARY_OUTPUT_PATH)
128+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
129+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
130+
message(WARNING "LIBRARY_OUTPUT_PATH is deprecated. Use CMAKE_LIBRARY_OUTPUT_DIRECTORY and CMAKE_ARCHIVE_OUTPUT_DIRECTORY instead.")
128131
endif()
129132

130-
# TODO: The following should be used for CMake 3 and beyond,
131-
# EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH are deprecated
132-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
133-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
134-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
133+
if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
134+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
135+
endif()
136+
if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
137+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
138+
endif()
139+
if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
140+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
141+
endif()
142+
143+
# Set for legacy internal usage of EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH
144+
if (NOT EXECUTABLE_OUTPUT_PATH)
145+
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
146+
endif()
147+
if (NOT LIBRARY_OUTPUT_PATH)
148+
if (BUILD_SHARED_LIBS)
149+
set(LIBRARY_OUTPUT_PATH ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
150+
else()
151+
set(LIBRARY_OUTPUT_PATH ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
152+
endif()
153+
endif()
135154

136155
#-----------------------------------------------------------------------------
137156
# Adding GDCM_DATA_ROOT

0 commit comments

Comments
 (0)