Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmake: Use GNUInstallDirs to install files to the correct paths #8

Merged
merged 1 commit into from
Sep 10, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ option(WARNINGS_AS_ERRORS "Treat warnings as errors" OFF)
set(C_STANDARD 11)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

include(GNUInstallDirs)

if(WIN32)
add_definitions(-DWIN32_LEAN_AND_MEAN)
if (MSVC)
Expand Down Expand Up @@ -87,25 +89,25 @@ set_target_properties(plum-static PROPERTIES EXPORT_NAME LibPlumStatic)
add_library(LibPlum::LibPlumStatic ALIAS plum-static)

install(TARGETS plum EXPORT LibPlumTargets
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

install(FILES ${LIBPLUM_HEADERS} DESTINATION include/plum)
install(FILES ${LIBPLUM_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/plum)

# Export Targets
install(
EXPORT LibPlumTargets
FILE LibPlumTargets.cmake
NAMESPACE LibPlum::
DESTINATION lib/cmake/LibPlum
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LibPlum
)

# Export config
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibPlumConfig.cmake
DESTINATION lib/cmake/LibPlum
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LibPlum
)

include(CMakePackageConfigHelpers)
Expand All @@ -114,7 +116,7 @@ write_basic_package_version_file(
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)
install(FILES ${CMAKE_BINARY_DIR}/LibPlumConfigVersion.cmake
DESTINATION lib/cmake/LibPlum)
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LibPlum)

if(NOT NO_EXPORT_HEADER AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.12")
include(GenerateExportHeader)
Expand All @@ -126,7 +128,7 @@ if(NOT NO_EXPORT_HEADER AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.12")
target_include_directories(plum PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
target_compile_definitions(plum PUBLIC -DPLUM_HAS_EXPORT_HEADER)
set_target_properties(plum PROPERTIES C_VISIBILITY_PRESET hidden)
install(FILES ${PROJECT_BINARY_DIR}/plum_export.h DESTINATION include/plum)
install(FILES ${PROJECT_BINARY_DIR}/plum_export.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/plum)
else()
target_compile_definitions(plum PRIVATE PLUM_EXPORTS)
target_compile_definitions(plum-static PRIVATE PLUM_EXPORTS)
Expand Down
Loading