Use GNUInstallDirs
See https://github.com/Martchus/cpp-utilities/issues/17
This commit is contained in:
parent
eadb261c56
commit
c97dfbfd4c
|
@ -97,18 +97,18 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
# add install target for binary
|
# add install target for binary
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set(BUNDLE_INSTALL_DESTINATION
|
set(BUNDLE_INSTALL_DESTINATION
|
||||||
bin
|
"${CMAKE_INSTALL_BINDIR}"
|
||||||
CACHE STRING "specifies the install destination for bundles")
|
CACHE STRING "specifies the install destination for bundles")
|
||||||
install(
|
install(
|
||||||
TARGETS ${META_TARGET_NAME}
|
TARGETS ${META_TARGET_NAME}
|
||||||
RUNTIME DESTINATION bin
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
BUNDLE DESTINATION "${BUNDLE_INSTALL_DESTINATION}" COMPONENT binary)
|
BUNDLE DESTINATION "${BUNDLE_INSTALL_DESTINATION}" COMPONENT binary)
|
||||||
elseif (ANDROID)
|
elseif (ANDROID)
|
||||||
install(
|
install(
|
||||||
TARGETS ${META_TARGET_NAME}
|
TARGETS ${META_TARGET_NAME}
|
||||||
RUNTIME DESTINATION bin COMPONENT binary
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT binary
|
||||||
LIBRARY DESTINATION lib${SELECTED_LIB_SUFFIX} COMPONENT binary
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${SELECTED_LIB_SUFFIX}" COMPONENT binary
|
||||||
ARCHIVE DESTINATION lib${SELECTED_LIB_SUFFIX} COMPONENT binary)
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${SELECTED_LIB_SUFFIX}" COMPONENT binary)
|
||||||
else ()
|
else ()
|
||||||
install(TARGETS ${META_TARGET_NAME} RUNTIME DESTINATION bin COMPONENT binary)
|
install(TARGETS ${META_TARGET_NAME} RUNTIME DESTINATION bin COMPONENT binary)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -228,7 +228,7 @@ function (add_custom_desktop_file)
|
||||||
# add install for the desktop file
|
# add install for the desktop file
|
||||||
install(
|
install(
|
||||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/resources/${ARGS_FILE_NAME}.desktop"
|
FILES "${CMAKE_CURRENT_BINARY_DIR}/resources/${ARGS_FILE_NAME}.desktop"
|
||||||
DESTINATION "share/applications"
|
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications"
|
||||||
COMPONENT desktop)
|
COMPONENT desktop)
|
||||||
endfunction ()
|
endfunction ()
|
||||||
|
|
||||||
|
@ -278,7 +278,7 @@ function (add_desktop_file)
|
||||||
# add install for the appstream file
|
# add install for the appstream file
|
||||||
install(
|
install(
|
||||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/resources/${META_ID}.appdata.xml"
|
FILES "${CMAKE_CURRENT_BINARY_DIR}/resources/${META_ID}.appdata.xml"
|
||||||
DESTINATION "share/metainfo"
|
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo"
|
||||||
COMPONENT appimage)
|
COMPONENT appimage)
|
||||||
endfunction ()
|
endfunction ()
|
||||||
|
|
||||||
|
|
|
@ -69,9 +69,15 @@ elseif (CONFIGURATION_TARGET_SUFFIX)
|
||||||
set(TARGET_SUFFIX "-${CONFIGURATION_TARGET_SUFFIX}")
|
set(TARGET_SUFFIX "-${CONFIGURATION_TARGET_SUFFIX}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
# find standard installation directories
|
||||||
|
# note: Allow overriding CMAKE_INSTALL_LIBDIR but don't use the default from GNUInstallDirs (as an Arch Linux user this
|
||||||
|
# feels odd and I also want to avoid breaking existing build scripts).
|
||||||
|
set(CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "sets the directory to install libraries to (within the prefix)")
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
# define a few variables
|
# define a few variables
|
||||||
set(META_TARGET_NAME "${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}")
|
set(META_TARGET_NAME "${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}")
|
||||||
set(META_DATA_DIR "share/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
|
set(META_DATA_DIR "${CMAKE_INSTALL_DATAROOTDIR}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
|
||||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" META_CURRENT_CONFIGURATION)
|
string(TOUPPER "${CMAKE_BUILD_TYPE}" META_CURRENT_CONFIGURATION)
|
||||||
|
|
||||||
# set META_GENERIC_NAME to META_APP_NAME if not specified explicitely
|
# set META_GENERIC_NAME to META_APP_NAME if not specified explicitely
|
||||||
|
@ -527,8 +533,8 @@ if (LIB_SUFFIX_64 AND CMAKE_SIZEOF_VOID_P MATCHES "8")
|
||||||
elseif (LIB_SUFFIX_32 AND CMAKE_SIZEOF_VOID_P MATCHES "4")
|
elseif (LIB_SUFFIX_32 AND CMAKE_SIZEOF_VOID_P MATCHES "4")
|
||||||
set(SELECTED_LIB_SUFFIX "${LIB_SUFFIX_32}")
|
set(SELECTED_LIB_SUFFIX "${LIB_SUFFIX_32}")
|
||||||
endif ()
|
endif ()
|
||||||
set(BIN_INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
|
set(BIN_INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
|
||||||
set(LIB_INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/lib${SELECTED_LIB_SUFFIX}")
|
set(LIB_INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}${SELECTED_LIB_SUFFIX}")
|
||||||
|
|
||||||
# allow user to specify additional libraries to link against (see buildvariables.md for details)
|
# allow user to specify additional libraries to link against (see buildvariables.md for details)
|
||||||
set(USER_DEFINED_ADDITIONAL_LIBRARIES
|
set(USER_DEFINED_ADDITIONAL_LIBRARIES
|
||||||
|
|
|
@ -25,7 +25,7 @@ include(CMakePackageConfigHelpers)
|
||||||
include(TemplateFinder)
|
include(TemplateFinder)
|
||||||
|
|
||||||
# set install destination for the CMake modules, config files and header files
|
# set install destination for the CMake modules, config files and header files
|
||||||
set(INCLUDE_SUBDIR "include")
|
set(INCLUDE_SUBDIR "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||||
if (META_CONFIG_SUFFIX)
|
if (META_CONFIG_SUFFIX)
|
||||||
set(INCLUDE_SUBDIR "${INCLUDE_SUBDIR}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
|
set(INCLUDE_SUBDIR "${INCLUDE_SUBDIR}/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -99,6 +99,9 @@ else ()
|
||||||
# use the project folder itself
|
# use the project folder itself
|
||||||
set(TARGET_INCLUDE_DIRECTORY_BUILD_INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/..")
|
set(TARGET_INCLUDE_DIRECTORY_BUILD_INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/..")
|
||||||
endif ()
|
endif ()
|
||||||
|
if (META_PROJECT_NAME STREQUAL reflective_rapidjson)
|
||||||
|
message(STATUS "TARGET_INCLUDE_DIRECTORY_BUILD_INTERFACE: ${TARGET_INCLUDE_DIRECTORY_BUILD_INTERFACE}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
# add target for building the library
|
# add target for building the library
|
||||||
if (BUILD_SHARED_LIBS)
|
if (BUILD_SHARED_LIBS)
|
||||||
|
@ -378,7 +381,7 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
if (PC_FILES)
|
if (PC_FILES)
|
||||||
install(
|
install(
|
||||||
FILES ${PC_FILES}
|
FILES ${PC_FILES}
|
||||||
DESTINATION "lib${SELECTED_LIB_SUFFIX}/pkgconfig"
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}${SELECTED_LIB_SUFFIX}/pkgconfig"
|
||||||
COMPONENT pkg-config)
|
COMPONENT pkg-config)
|
||||||
endif ()
|
endif ()
|
||||||
if (NOT TARGET install-pkg-config)
|
if (NOT TARGET install-pkg-config)
|
||||||
|
@ -420,7 +423,7 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
if (NOT LIBRARY_DESTINATION)
|
if (NOT LIBRARY_DESTINATION)
|
||||||
set(LIBRARY_DESTINATION lib${SELECTED_LIB_SUFFIX}/qt/plugins)
|
set(LIBRARY_DESTINATION ${CMAKE_INSTALL_LIBDIR}${SELECTED_LIB_SUFFIX}/qt/plugins)
|
||||||
message(
|
message(
|
||||||
WARNING
|
WARNING
|
||||||
"Unable to detect appropriate install directory for Qt plugins (assuming \"${LIBRARY_DESTINATION}\"). Set QT_PLUGIN_DIR to specify the directory to install Qt plugins to manually."
|
"Unable to detect appropriate install directory for Qt plugins (assuming \"${LIBRARY_DESTINATION}\"). Set QT_PLUGIN_DIR to specify the directory to install Qt plugins to manually."
|
||||||
|
@ -431,7 +434,7 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
set(LIBRARY_DESTINATION ${LIBRARY_DESTINATION}/${META_PLUGIN_CATEGORY})
|
set(LIBRARY_DESTINATION ${LIBRARY_DESTINATION}/${META_PLUGIN_CATEGORY})
|
||||||
endif ()
|
endif ()
|
||||||
else ()
|
else ()
|
||||||
set(LIBRARY_DESTINATION lib${SELECTED_LIB_SUFFIX})
|
set(LIBRARY_DESTINATION ${CMAKE_INSTALL_LIBDIR}${SELECTED_LIB_SUFFIX})
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# add install targets and export targets
|
# add install targets and export targets
|
||||||
|
@ -445,7 +448,7 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||||
install(
|
install(
|
||||||
TARGETS ${TARGETS_TO_EXPORT}
|
TARGETS ${TARGETS_TO_EXPORT}
|
||||||
EXPORT "${META_PROJECT_NAME}${META_CONFIG_SUFFIX}Targets"
|
EXPORT "${META_PROJECT_NAME}${META_CONFIG_SUFFIX}Targets"
|
||||||
RUNTIME DESTINATION bin COMPONENT binary
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT binary
|
||||||
LIBRARY DESTINATION ${LIBRARY_DESTINATION} COMPONENT binary
|
LIBRARY DESTINATION ${LIBRARY_DESTINATION} COMPONENT binary
|
||||||
ARCHIVE DESTINATION ${LIBRARY_DESTINATION} COMPONENT binary)
|
ARCHIVE DESTINATION ${LIBRARY_DESTINATION} COMPONENT binary)
|
||||||
add_dependencies(install-binary "${META_TARGET_NAME}")
|
add_dependencies(install-binary "${META_TARGET_NAME}")
|
||||||
|
|
Loading…
Reference in New Issue