Skip to content

Commit

Permalink
More use of CMAKE_INSTALL_<...>DIR
Browse files Browse the repository at this point in the history
CMAKE_INSTALL_INCLUDEDIR is already used for the exported build
interface. This change applies the standard variables to more
destinations, moves the related GNUInstallDirs include to the
top-level CMakeLists.txt, and adds explicit RUNTIME/LIBRARY/ARCHIVE
destinations. This should be beneficial for external packaging.

Last not least put msquic.lttng into the msquic CMake export set.
  • Loading branch information
dg0yt committed Jan 6, 2025
1 parent 9610803 commit f7c5e92
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 6 deletions.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -772,6 +772,8 @@ if(QUIC_CODE_CHECK)
endif()
endif()

include(GNUInstallDirs)

add_subdirectory(src/inc)
add_subdirectory(src/generated)

Expand Down
15 changes: 10 additions & 5 deletions src/bin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -251,8 +251,6 @@ elseif (CX_PLATFORM STREQUAL "darwin")
PROPERTIES LINK_FLAGS "-exported_symbols_list \"${CMAKE_CURRENT_SOURCE_DIR}/darwin/exports.txt\"")
endif()

include(GNUInstallDirs)

file(GLOB PUBLIC_HEADERS "../inc/*.h" "../inc/*.hpp")

if(QUIC_TLS STREQUAL "openssl" OR QUIC_TLS STREQUAL "openssl3")
Expand All @@ -264,11 +262,18 @@ if(WIN32)
endif()

if(BUILD_SHARED_LIBS)
install(TARGETS msquic msquic_platform inc logging_inc warnings main_binary_link_args ${OTHER_TARGETS} EXPORT msquic DESTINATION lib)
install(TARGETS msquic msquic_platform inc logging_inc warnings main_binary_link_args ${OTHER_TARGETS}
EXPORT msquic
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
)
else()
install(FILES ${QUIC_STATIC_LIBRARY} DESTINATION lib)
install(FILES "${QUIC_STATIC_LIBRARY}"
DESTINATION lib
)
endif()
install(FILES ${PUBLIC_HEADERS} DESTINATION include)
install(FILES ${PUBLIC_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")

configure_file(msquic-config.cmake.in ${CMAKE_BINARY_DIR}/msquic-config.cmake @ONLY)

Expand Down
7 changes: 6 additions & 1 deletion src/generated/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,12 @@ if(QUIC_ENABLE_LOGGING)
target_link_libraries(msquic.lttng PRIVATE ${LTTNGUST_LIBRARIES})
set_target_properties(msquic.lttng PROPERTIES SOVERSION ${QUIC_FULL_VERSION} VERSION ${QUIC_FULL_VERSION})

install(TARGETS msquic.lttng DESTINATION lib)
install(TARGETS msquic.lttng
EXPORT msquic
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
)
endif()

else()
Expand Down

0 comments on commit f7c5e92

Please sign in to comment.