mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
56 lines
2.1 KiB
CMake
56 lines
2.1 KiB
CMake
# - Installation macro
|
|
#
|
|
# Set up installation targets for the binary library. The following
|
|
# suffices must be defined for the prefix passed as parameter:
|
|
#
|
|
# _NAME Name of the library
|
|
# _HEADERS List of header files to install
|
|
# _TARGET CMake target which builds the library
|
|
# _LIBRARY_TYPE Static or shared library
|
|
# _DEBUG File containing debug symbols
|
|
|
|
macro (opm_install opm)
|
|
foreach (_hdr IN LISTS ${opm}_HEADERS)
|
|
get_filename_component (_dir ${_hdr} PATH)
|
|
file (RELATIVE_PATH _rel_dir "${PROJECT_SOURCE_DIR}" "${_dir}")
|
|
install (
|
|
FILES ${_hdr}
|
|
DESTINATION include/${_rel_dir}
|
|
)
|
|
endforeach (_hdr)
|
|
install (
|
|
TARGETS ${${opm}_TARGET}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
# only /usr/lib/debug seems to be searched for debug info; if we have
|
|
# write access to that directory (package installation), then default
|
|
# to use it; otherwise put the debug files together with the library
|
|
# (local installation). everything can be overridden by the option.
|
|
if (CMAKE_INSTALL_PREFIX STREQUAL "/usr")
|
|
set (_sys_dbg_def ON)
|
|
else (CMAKE_INSTALL_PREFIX STREQUAL "/usr")
|
|
set (_sys_dbg_def OFF)
|
|
endif (CMAKE_INSTALL_PREFIX STREQUAL "/usr")
|
|
option (SYSTEM_DEBUG "Put .debug files in GDB debug file directory" ${_sys_dbg_def})
|
|
set (DEBUG_FILE_DIRECTORY /usr/lib/debug CACHE LOCATION "GDB debug file directory")
|
|
mark_as_advanced (DEBUG_FILE_DIRECTORY)
|
|
if (SYSTEM_DEBUG)
|
|
set (_dbg_prefix "${DEBUG_FILE_DIRECTORY}/")
|
|
else (SYSTEM_DEBUG)
|
|
set (_dbg_prefix "")
|
|
endif (SYSTEM_DEBUG)
|
|
# static libraries don't have their debug info stripped, so there is
|
|
# only a separate file when we are building shared objects
|
|
if (${opm}_LIBRARY_TYPE STREQUAL "SHARED")
|
|
install (
|
|
FILES ${PROJECT_BINARY_DIR}/${${opm}_DEBUG}
|
|
DESTINATION ${_dbg_prefix}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
endif (${opm}_LIBRARY_TYPE STREQUAL "SHARED")
|
|
install (
|
|
FILES ${PROJECT_SOURCE_DIR}/dune.module
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR_NOARCH}/dunecontrol/${${opm}_NAME}
|
|
)
|
|
endmacro (opm_install opm)
|