mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-02-03 09:44:24 -05:00
Make install locations configuration variables
Locations of various components to be determined at configuration time. This allows various "Standard" system layouts to be accomodated. For example on FreeBSD the manpages are usually installed in the man directory i.e. /usr/local/man whereas the WSJT-X default is to install them in share/man i.e. /usr/share/man. By setting the CMake variable WSJT_MANPAGE_DESTINATION to either a relative or absolute path the install location can be set: $ cmake -D WSJT_MANPAGE_DESTINATION=. ... will install the manpages at ${CMAKE_INSTALL_PREFIX}/man The new configuration variables are: WSJT_BIN_DESTINATION WSJT_LIB_DESTINATION WSJT_SHARE_DESTINATION WSJT_DOC_DESTINATION WSJT_DATA_DESTINATION WSJT_MANPAGE_DESTINATION WSJT_PLUGIN_DESTINATION WSJT_QT_CONF_DESTINATION NB: changes to the above may break WSJT-X at present where the install locations of files used directly by WSJT-X are moved. Warning: using absolute paths for these variables is not recommended as files may be installed in unexpected places, particularly when run with root privileges. All relative paths with be relative to CMAKE_INSTALL_PREFIX. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6192 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
51b76386b1
commit
859a5ef416
@ -141,32 +141,40 @@ message (STATUS "******************************************************")
|
|||||||
#
|
#
|
||||||
# install locations
|
# install locations
|
||||||
#
|
#
|
||||||
set (WSJT_BIN_DESTINATION bin)
|
set (BIN_DESTINATION bin)
|
||||||
set (WSJT_LIB_DESTINATION lib)
|
set (LIB_DESTINATION lib)
|
||||||
set (WSJT_SHARE_DESTINATION share)
|
set (SHARE_DESTINATION share)
|
||||||
set (WSJT_DOC_DESTINATION doc/${CMAKE_PROJECT_NAME})
|
set (DOC_DESTINATION ${SHARE_DESTINATION}/doc/${CMAKE_PROJECT_NAME})
|
||||||
set (WSJT_DATA_DESTINATION ${CMAKE_PROJECT_NAME})
|
set (DATA_DESTINATION ${SHARE_DESTINATION}/${CMAKE_PROJECT_NAME})
|
||||||
set (WSJT_MANPAGE_DESTINATION share)
|
set (MANPAGE_DESTINATION ${SHARE_DESTINATION})
|
||||||
set (WSJT_PLUGIN_DESTINATION lib/plugins)
|
set (PLUGIN_DESTINATION lib/plugins)
|
||||||
set (WSJT_QT_CONF_DESTINATION bin)
|
set (QT_CONF_DESTINATION bin)
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set (WSJT_SHARE_DESTINATION bin)
|
set (SHARE_DESTINATION bin)
|
||||||
set (WSJT_DOC_DESTINATION doc)
|
set (DOC_DESTINATION ${SHARE_DESTINATION}/doc)
|
||||||
set (WSJT_DATA_DESTINATION data)
|
set (DATA_DESTINATION ${SHARE_DESTINATION}/data)
|
||||||
set (WSJT_PLUGIN_DESTINATION plugins)
|
set (PLUGIN_DESTINATION plugins)
|
||||||
endif (WIN32)
|
endif (WIN32)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set (WSJT_BIN_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/MacOS)
|
set (BIN_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/MacOS)
|
||||||
set (WSJT_SHARE_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/Resources)
|
set (SHARE_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/Resources)
|
||||||
set (WSJT_MANPAGE_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/Resources)
|
set (MANPAGE_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/Resources)
|
||||||
set (WSJT_DOC_DESTINATION doc)
|
set (DOC_DESTINATION ${SHARE_DESTINATION}/doc)
|
||||||
set (WSJT_DATA_DESTINATION data)
|
set (DATA_DESTINATION ${SHARE_DESTINATION}/data)
|
||||||
set (WSJT_PLUGIN_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/PlugIns)
|
set (PLUGIN_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/PlugIns)
|
||||||
set (WSJT_QT_CONF_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/Resources)
|
set (QT_CONF_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/Resources)
|
||||||
endif (APPLE)
|
endif (APPLE)
|
||||||
|
|
||||||
|
set (WSJT_BIN_DESTINATION ${BIN_DESTINATION} CACHE PATH "Path for executables")
|
||||||
|
set (WSJT_LIB_DESTINATION ${LIB_DESTINATION} CACHE PATH "Path for libraries")
|
||||||
|
set (WSJT_SHARE_DESTINATION ${SHARE_DESTINATION} CACHE PATH "Path for shared content")
|
||||||
|
set (WSJT_DOC_DESTINATION ${DOC_DESTINATION} CACHE PATH "Path for documentation")
|
||||||
|
set (WSJT_DATA_DESTINATION ${DATA_DESTINATION} CACHE PATH "Path for shared RO data")
|
||||||
|
set (WSJT_MANPAGE_DESTINATION ${MANPAGE_DESTINATION} CACHE PATH "Path for manpages")
|
||||||
|
set (WSJT_PLUGIN_DESTINATION ${PLUGIN_DESTINATION} CACHE PATH "Path for plugins")
|
||||||
|
set (WSJT_QT_CONF_DESTINATION ${QT_CONF_DESTINATION} CACHE PATH "Path for the qt.conf file")
|
||||||
|
|
||||||
#
|
#
|
||||||
# Project sources
|
# Project sources
|
||||||
@ -1043,13 +1051,13 @@ install (FILES
|
|||||||
NEWS
|
NEWS
|
||||||
INSTALL
|
INSTALL
|
||||||
BUGS
|
BUGS
|
||||||
DESTINATION ${WSJT_SHARE_DESTINATION}/${WSJT_DOC_DESTINATION}
|
DESTINATION ${WSJT_DOC_DESTINATION}
|
||||||
#COMPONENT runtime
|
#COMPONENT runtime
|
||||||
)
|
)
|
||||||
|
|
||||||
install (FILES
|
install (FILES
|
||||||
contrib/Ephemeris/JPLEPH
|
contrib/Ephemeris/JPLEPH
|
||||||
DESTINATION ${WSJT_SHARE_DESTINATION}/${WSJT_DATA_DESTINATION}
|
DESTINATION ${WSJT_DATA_DESTINATION}
|
||||||
#COMPONENT runtime
|
#COMPONENT runtime
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1140,7 +1148,8 @@ if (NOT is_debug_build)
|
|||||||
|
|
||||||
# install a qt.conf file
|
# install a qt.conf file
|
||||||
install (CODE "
|
install (CODE "
|
||||||
file (WRITE \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION}/qt.conf\"
|
get_filename_component (the_qt_conf \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION}/qt.conf\" REALPATH)
|
||||||
|
file (WRITE \"\${the_qt_conf}\"
|
||||||
\"[Paths]
|
\"[Paths]
|
||||||
\")
|
\")
|
||||||
"
|
"
|
||||||
@ -1148,7 +1157,7 @@ if (NOT is_debug_build)
|
|||||||
)
|
)
|
||||||
|
|
||||||
# if a system Qt is used (e.g. installed in /usr/lib/), it will not be included in the installation
|
# if a system Qt is used (e.g. installed in /usr/lib/), it will not be included in the installation
|
||||||
set (fixup_exe "\${CMAKE_INSTALL_PREFIX}/${WSJT_BIN_DESTINATION}/${CMAKE_PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
|
set (fixup_exe "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_BIN_DESTINATION}/${CMAKE_PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
|
||||||
#get_filename_component (hamlib_lib_dir ${hamlib_LIBRARIES} PATH)
|
#get_filename_component (hamlib_lib_dir ${hamlib_LIBRARIES} PATH)
|
||||||
|
|
||||||
@ -1184,7 +1193,8 @@ if (NOT is_debug_build)
|
|||||||
|
|
||||||
# add plugins path for Mac Bundle
|
# add plugins path for Mac Bundle
|
||||||
install (CODE "
|
install (CODE "
|
||||||
file (APPEND \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION}/qt.conf\"
|
get_filename_component (the_qt_conf \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION}/qt.conf\" REALPATH)
|
||||||
|
file (APPEND \"\${the_qt_conf}\"
|
||||||
\"Plugins = PlugIns
|
\"Plugins = PlugIns
|
||||||
\")
|
\")
|
||||||
"
|
"
|
||||||
@ -1231,7 +1241,8 @@ file (APPEND \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION
|
|||||||
# add plugins path for WIN32
|
# add plugins path for WIN32
|
||||||
file (RELATIVE_PATH _plugins_path "${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION}" "${CMAKE_INSTALL_PREFIX}/${WSJT_PLUGIN_DESTINATION}")
|
file (RELATIVE_PATH _plugins_path "${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION}" "${CMAKE_INSTALL_PREFIX}/${WSJT_PLUGIN_DESTINATION}")
|
||||||
install (CODE "
|
install (CODE "
|
||||||
file (APPEND \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION}/qt.conf\"
|
get_filename_component (the_qt_conf \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION}/qt.conf\" REALPATH)
|
||||||
|
file (APPEND \"\${the_qt_conf}\"
|
||||||
\"Plugins = ${_plugins_path}
|
\"Plugins = ${_plugins_path}
|
||||||
\")
|
\")
|
||||||
"
|
"
|
||||||
@ -1245,16 +1256,15 @@ file (APPEND \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION
|
|||||||
list (APPEND fixup_library_dirs ${hamlib_LIBRARY_DIRS})
|
list (APPEND fixup_library_dirs ${hamlib_LIBRARY_DIRS})
|
||||||
|
|
||||||
install (CODE "
|
install (CODE "
|
||||||
file (GLOB_RECURSE QTPLUGINS
|
get_filename_component (the_path \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_PLUGIN_DESTINATION}\" REALPATH)
|
||||||
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_PLUGIN_DESTINATION}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
|
file (GLOB_RECURSE QTPLUGINS \"\${the_path}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
|
||||||
set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMake/Modules ${CMAKE_MODULE_PATH})
|
set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMake/Modules ${CMAKE_MODULE_PATH})
|
||||||
include (BundleUtilities)
|
include (BundleUtilities)
|
||||||
set (BU_CHMOD_BUNDLE_ITEMS ON)
|
set (BU_CHMOD_BUNDLE_ITEMS ON)
|
||||||
set (gp_tool ${gp_tool})
|
set (gp_tool ${gp_tool})
|
||||||
# canonicalize path in install context
|
# canonicalize path in install context
|
||||||
get_filename_component (the_exe ${fixup_exe} REALPATH)
|
get_filename_component (the_exe ${fixup_exe} REALPATH)
|
||||||
fixup_bundle (\"\${the_exe}\" \"\${QTPLUGINS}\" \"${fixup_library_dirs}\")
|
fixup_bundle (\"\${the_exe}\" \"\${QTPLUGINS}\" \"${fixup_library_dirs}\")"
|
||||||
"
|
|
||||||
#COMPONENT runtime
|
#COMPONENT runtime
|
||||||
)
|
)
|
||||||
endif (APPLE OR WIN32)
|
endif (APPLE OR WIN32)
|
||||||
|
2
debian/CMakeLists.txt
vendored
2
debian/CMakeLists.txt
vendored
@ -34,6 +34,6 @@ configure_file (
|
|||||||
install (FILES
|
install (FILES
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${deb_changelog}.gz
|
${CMAKE_CURRENT_BINARY_DIR}/${deb_changelog}.gz
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/copyright
|
${CMAKE_CURRENT_BINARY_DIR}/copyright
|
||||||
DESTINATION ${WSJT_SHARE_DESTINATION}/${WSJT_DOC_DESTINATION}
|
DESTINATION ${WSJT_DOC_DESTINATION}
|
||||||
#COMPONENT Debian
|
#COMPONENT Debian
|
||||||
)
|
)
|
||||||
|
@ -181,7 +181,7 @@ add_custom_target (docs ALL DEPENDS ${html} ${pdf})
|
|||||||
|
|
||||||
install (FILES
|
install (FILES
|
||||||
${html}
|
${html}
|
||||||
DESTINATION ${WSJT_SHARE_DESTINATION}/${WSJT_DOC_DESTINATION}
|
DESTINATION ${WSJT_DOC_DESTINATION}
|
||||||
RENAME ${PROJECT_MANUAL}
|
RENAME ${PROJECT_MANUAL}
|
||||||
#COMPONENT runtime
|
#COMPONENT runtime
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user