Make idiomatic cmake install so third party cmake installers work right.
This commit is contained in:
parent
49c6d49247
commit
23e997439a
@ -127,6 +127,7 @@ if (ZSTD_BUILD_STATIC)
|
|||||||
set_target_properties(
|
set_target_properties(
|
||||||
libzstd_static
|
libzstd_static
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
|
POSITION_INDEPENDENT_CODE On
|
||||||
OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME})
|
OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME})
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
@ -146,22 +147,43 @@ endif ()
|
|||||||
|
|
||||||
# install target
|
# install target
|
||||||
install(FILES
|
install(FILES
|
||||||
${LIBRARY_DIR}/zstd.h
|
"${LIBRARY_DIR}/zstd.h"
|
||||||
${LIBRARY_DIR}/deprecated/zbuff.h
|
"${LIBRARY_DIR}/deprecated/zbuff.h"
|
||||||
${LIBRARY_DIR}/dictBuilder/zdict.h
|
"${LIBRARY_DIR}/dictBuilder/zdict.h"
|
||||||
${LIBRARY_DIR}/dictBuilder/cover.h
|
"${LIBRARY_DIR}/dictBuilder/cover.h"
|
||||||
${LIBRARY_DIR}/common/zstd_errors.h
|
"${LIBRARY_DIR}/common/zstd_errors.h"
|
||||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||||
|
|
||||||
if (ZSTD_BUILD_SHARED)
|
if (ZSTD_BUILD_SHARED)
|
||||||
install(TARGETS libzstd_shared RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
install(TARGETS libzstd_shared EXPORT zstdExports
|
||||||
|
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
)
|
||||||
endif()
|
endif()
|
||||||
if (ZSTD_BUILD_STATIC)
|
if (ZSTD_BUILD_STATIC)
|
||||||
install(TARGETS libzstd_static ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
install(TARGETS libzstd_static EXPORT zstdExports
|
||||||
|
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
# export targets + find config
|
||||||
|
configure_file(
|
||||||
|
"config.cmake.in"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/zstdConfig.cmake"
|
||||||
|
@ONLY
|
||||||
|
)
|
||||||
|
install(FILES
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/zstdConfig.cmake"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/zstd"
|
||||||
|
)
|
||||||
|
install(EXPORT zstdExports
|
||||||
|
NAMESPACE zstd::
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/zstd"
|
||||||
|
)
|
||||||
|
|
||||||
# uninstall target
|
# uninstall target
|
||||||
if (NOT TARGET uninstall)
|
if (NOT TARGET uninstall)
|
||||||
configure_file(
|
configure_file(
|
||||||
|
7
build/cmake/lib/config.cmake.in
Normal file
7
build/cmake/lib/config.cmake.in
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
set(${CMAKE_FIND_PACKAGE_NAME}_CONFIG ${CMAKE_CURRENT_LIST_FILE})
|
||||||
|
find_package_handle_standard_args(zstd CONFIG_MODE)
|
||||||
|
|
||||||
|
if(NOT TARGET zstd::libzstd_shared)
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/zstdExports.cmake")
|
||||||
|
endif()
|
Loading…
x
Reference in New Issue
Block a user