Skip to content

Commit

Permalink
Allow for custom install prefix when building as a subproject
Browse files Browse the repository at this point in the history
  • Loading branch information
daljit46 committed Jul 2, 2024
1 parent 8e79b6d commit 362eb2f
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 19 deletions.
15 changes: 13 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,17 @@ else()
set(QT_MAJOR_VERSION 6)
endif()

# If MRTRIX_SUBPROJECT_INSTALL_PREFIX is set, it will be used as the install prefix
# for all targets in this project. This is useful when MRtrix3 is built as a
# subproject of another project (e.g. via add_subdirectory or FetchContent).
if(NOT DEFINED MRTRIX_SUBPROJECT_INSTALL_PREFIX)
set(MRTRIX_SUBPROJECT_INSTALL_PREFIX "")
endif()
set(MRTRIX_INSTALL_BINDIR ${MRTRIX_SUBPROJECT_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR} CACHE INTERNAL "" FORCE)
set(MRTRIX_INSTALL_LIBDIR ${MRTRIX_SUBPROJECT_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR} CACHE INTERNAL "" FORCE)
set(MRTRIX_INSTALL_INCLUDEDIR ${MRTRIX_SUBPROJECT_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR} CACHE INTERNAL "" FORCE)
set(MRTRIX_INSTALL_DATADIR ${MRTRIX_SUBPROJECT_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR} CACHE INTERNAL "" FORCE)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
Expand All @@ -57,8 +68,8 @@ else()
endif()

file(RELATIVE_PATH relDir
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}
${CMAKE_CURRENT_BINARY_DIR}/${MRTRIX_INSTALL_BINDIR}
${CMAKE_CURRENT_BINARY_DIR}/${MRTRIX_INSTALL_LIBDIR}
)

set(CMAKE_INSTALL_RPATH ${base} ${base}/${relDir})
Expand Down
4 changes: 2 additions & 2 deletions cmd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ function(add_cmd CMD_SRC IS_GUI)
endif ()

install(TARGETS ${CMD_NAME}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}
RUNTIME DESTINATION ${MRTRIX_INSTALL_BINDIR}
BUNDLE DESTINATION ${MRTRIX_INSTALL_BINDIR}
)
endfunction()

Expand Down
4 changes: 2 additions & 2 deletions core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,6 @@ target_include_directories(mrtrix-core PUBLIC
)

install(TARGETS mrtrix-core
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${MRTRIX_INSTALL_BINDIR}
LIBRARY DESTINATION ${MRTRIX_INSTALL_LIBDIR}
)
4 changes: 2 additions & 2 deletions python/mrtrix3/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ add_custom_target(PythonLibFiles

install(FILES ${PYTHON_LIB_FILES}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
DESTINATION ${CMAKE_INSTALL_LIBDIR}/mrtrix3
DESTINATION ${MRTRIX_INSTALL_LIBDIR}/mrtrix3
)

install(FILES ${PYTHON_VERSION_FILE}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
DESTINATION ${CMAKE_INSTALL_LIBDIR}/mrtrix3
DESTINATION ${MRTRIX_INSTALL_LIBDIR}/mrtrix3
)
6 changes: 3 additions & 3 deletions python/mrtrix3/commands/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ foreach(PYTHON_SRC_PATH ${PYTHON_ALL_COMMANDS_FILES})
get_filename_component(DST_INSTALLDIR ${DST_RELPATH} DIRECTORY)
install(FILES ${PYTHON_SRC_PATH}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
DESTINATION ${CMAKE_INSTALL_LIBDIR}/mrtrix3/commands/${DST_INSTALLDIR}
DESTINATION ${MRTRIX_INSTALL_LIBDIR}/mrtrix3/commands/${DST_INSTALLDIR}
)
list(APPEND PYTHON_BUILD_COMMAND_FILES ${DST_PATH})
endforeach()
Expand Down Expand Up @@ -100,10 +100,10 @@ add_custom_target(PythonCommands

install(FILES ${PYTHON_BIN_FILES}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
DESTINATION ${CMAKE_INSTALL_BINDIR}
DESTINATION ${MRTRIX_INSTALL_BINDIR}
)

install(FILES ${PYTHON_COMMANDS_INIT_FILE}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
DESTINATION ${CMAKE_INSTALL_LIBDIR}/mrtrix3/commands/
DESTINATION ${MRTRIX_INSTALL_LIBDIR}/mrtrix3/commands/
)
8 changes: 4 additions & 4 deletions share/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ add_custom_target(copy-share-data ALL
)

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/mrtrix3/
DESTINATION ${CMAKE_INSTALL_DATADIR}/mrtrix3
DESTINATION ${MRTRIX_INSTALL_DATADIR}/mrtrix3
)

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/icons/hicolor
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons
DESTINATION ${MRTRIX_INSTALL_DATADIR}/icons
)

install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/applications/mrview.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
DESTINATION ${MRTRIX_INSTALL_DATADIR}/applications
)

install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mime/mrtrix-mime.xml
DESTINATION ${CMAKE_INSTALL_DATADIR}/mime
DESTINATION ${MRTRIX_INSTALL_DATADIR}/mime
)
8 changes: 4 additions & 4 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -112,13 +112,13 @@ if(WIN32)
endif()

install(TARGETS mrtrix-headless
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${MRTRIX_INSTALL_BINDIR}
LIBRARY DESTINATION ${MRTRIX_INSTALL_LIBDIR}
)

if(MRTRIX_BUILD_GUI)
install(TARGETS mrtrix-gui
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${MRTRIX_INSTALL_BINDIR}
LIBRARY DESTINATION ${MRTRIX_INSTALL_LIBDIR}
)
endif()

0 comments on commit 362eb2f

Please sign in to comment.