@@ -15,17 +15,27 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND NOT "${PROJECT_NAME}" STREQUA
1515endif ()
1616message (STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX} " )
1717
18+
1819## Set the output directories globally
19- set ( ARCHIVE_OUTPUT_DIRECTORY lib )
20- set (RUNTIME_OUTPUT_DIRECTORY bin )
21- if ( WIN32 )
22- set ( LIBRARY_OUTPUT_DIRECTORY ${RUNTIME_OUTPUT_DIRECTORY} )
23- else ( )
24- set (LIBRARY_OUTPUT_DIRECTORY ${ARCHIVE_OUTPUT_DIRECTORY} )
20+ if ( NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY )
21+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib )
22+ endif ( )
23+
24+ if ( NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY )
25+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin )
2526endif ()
26- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /${ARCHIVE_OUTPUT_DIRECTORY} )
27- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /${RUNTIME_OUTPUT_DIRECTORY} )
28- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /${LIBRARY_OUTPUT_DIRECTORY} )
27+
28+ if (NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY )
29+ if (WIN32 )
30+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin)
31+ else ()
32+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib)
33+ endif ()
34+ endif ()
35+
36+ string (REGEX REPLACE "^${CMAKE_BINARY_DIR} /" "" ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} )
37+ string (REGEX REPLACE "^${CMAKE_BINARY_DIR} /" "" RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} )
38+ string (REGEX REPLACE "^${CMAKE_BINARY_DIR} /" "" LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )
2939
3040## RPATH
3141if (UNIX )
@@ -39,18 +49,18 @@ if(UNIX)
3949
4050 # see https://cmake.org/Wiki/CMake_RPATH_handling for $ORIGIN doc
4151 set (CMAKE_INSTALL_RPATH
42- "$ORIGIN/../lib"
43- "$$ORIGIN/../lib"
44- )
52+ "$ORIGIN/../lib"
53+ "$$ORIGIN/../lib"
54+ )
4555
4656 if (APPLE )
4757 set (CMAKE_MACOSX_RPATH ON )
4858 list (APPEND CMAKE_INSTALL_RPATH
49- "@loader_path"
50- "@loader_path/../lib"
51- "@executable_path"
52- "@executable_path/../lib"
53- )
59+ "@loader_path"
60+ "@loader_path/../lib"
61+ "@executable_path"
62+ "@executable_path/../lib"
63+ )
5464 set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE )
5565 endif ()
56- endif (UNIX )
66+ endif (UNIX )
0 commit comments