mirror of
https://github.com/glfw/glfw.git
synced 2025-10-04 05:36:35 +00:00
Use GNUInstallDirs, enable build tree export
This commit is contained in:
parent
a89f9680ec
commit
14c867d2c9
100
CMakeLists.txt
100
CMakeLists.txt
@ -474,37 +474,6 @@ else()
|
||||
set(GLFW_LIB_NAME glfw3)
|
||||
endif()
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Create generated files
|
||||
#--------------------------------------------------------------------
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
set(GLFW_INSTALL_INCLUDE_DIR "include")
|
||||
set(GLFW_INSTALL_LIBRARY_DIR "lib${LIB_SUFFIX}")
|
||||
set(GLFW_INSTALL_CONFIG_DIR "lib${LIB_SUFFIX}/cmake/glfw3")
|
||||
set(GLFW_INSTALL_PKGCONFIG_DIR "lib${LIB_SUFFIX}/pkgconfig")
|
||||
|
||||
configure_package_config_file("${GLFW_SOURCE_DIR}/src/glfw3Config.cmake.in"
|
||||
"${GLFW_BINARY_DIR}/src/glfw3Config.cmake"
|
||||
INSTALL_DESTINATION "${GLFW_INSTALL_CONFIG_DIR}"
|
||||
PATH_VARS CMAKE_INSTALL_PREFIX
|
||||
NO_CHECK_REQUIRED_COMPONENTS_MACRO)
|
||||
|
||||
write_basic_package_version_file("${GLFW_BINARY_DIR}/src/glfw3ConfigVersion.cmake"
|
||||
VERSION ${GLFW_VERSION_FULL}
|
||||
COMPATIBILITY SameMajorVersion)
|
||||
|
||||
if (GLFW_BUILD_DOCS)
|
||||
configure_file("${GLFW_SOURCE_DIR}/docs/Doxyfile.in"
|
||||
"${GLFW_BINARY_DIR}/docs/Doxyfile" @ONLY)
|
||||
endif()
|
||||
|
||||
configure_file("${GLFW_SOURCE_DIR}/src/glfw_config.h.in"
|
||||
"${GLFW_BINARY_DIR}/src/glfw_config.h" @ONLY)
|
||||
|
||||
configure_file("${GLFW_SOURCE_DIR}/src/glfw3.pc.in"
|
||||
"${GLFW_BINARY_DIR}/src/glfw3.pc" @ONLY)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Add subdirectories
|
||||
#--------------------------------------------------------------------
|
||||
@ -522,32 +491,79 @@ if (DOXYGEN_FOUND AND GLFW_BUILD_DOCS)
|
||||
add_subdirectory(docs)
|
||||
endif()
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Create generated files
|
||||
#--------------------------------------------------------------------
|
||||
include(CMakePackageConfigHelpers)
|
||||
include(GNUInstallDirs)
|
||||
|
||||
set(GLFW_INSTALL_CONFIG_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/glfw3")
|
||||
set(GLFW_INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
||||
|
||||
write_basic_package_version_file(
|
||||
glfw3ConfigVersion.cmake
|
||||
VERSION ${GLFW_VERSION_FULL}
|
||||
COMPATIBILITY SameMajorVersion)
|
||||
|
||||
# build tree package export
|
||||
configure_package_config_file(src/glfw3Config.cmake.in
|
||||
glfw3Config.cmake
|
||||
INSTALL_DESTINATION ${GLFW_BINARY_DIR}
|
||||
PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR
|
||||
NO_CHECK_REQUIRED_COMPONENTS_MACRO)
|
||||
|
||||
export(
|
||||
EXPORT glfwTargets
|
||||
FILE "${GLFW_BINARY_DIR}/glfw3Targets.cmake")
|
||||
|
||||
export(PACKAGE glfw3)
|
||||
|
||||
if (GLFW_BUILD_DOCS)
|
||||
configure_file(docs/Doxyfile.in
|
||||
docs/Doxyfile @ONLY)
|
||||
endif()
|
||||
|
||||
configure_file(src/glfw_config.h.in
|
||||
src/glfw_config.h @ONLY)
|
||||
|
||||
configure_file(src/glfw3.pc.in
|
||||
src/glfw3.pc @ONLY)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Install files other than the library
|
||||
# The library is installed by src/CMakeLists.txt
|
||||
#--------------------------------------------------------------------
|
||||
if (GLFW_INSTALL)
|
||||
install(DIRECTORY include/GLFW DESTINATION ${GLFW_INSTALL_INCLUDE_DIR}
|
||||
FILES_MATCHING PATTERN glfw3.h PATTERN glfw3native.h)
|
||||
configure_package_config_file(src/glfw3Config.cmake.in
|
||||
${GLFW_INSTALL_CONFIG_DIR}/glfw3Config.cmake
|
||||
INSTALL_DESTINATION ${GLFW_INSTALL_CONFIG_DIR}
|
||||
PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR
|
||||
NO_CHECK_REQUIRED_COMPONENTS_MACRO)
|
||||
|
||||
install(FILES "${GLFW_BINARY_DIR}/src/glfw3Config.cmake"
|
||||
"${GLFW_BINARY_DIR}/src/glfw3ConfigVersion.cmake"
|
||||
install(
|
||||
DIRECTORY include/GLFW
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
FILES_MATCHING PATTERN *.h)
|
||||
|
||||
install(
|
||||
FILES
|
||||
${GLFW_INSTALL_CONFIG_DIR}/glfw3Config.cmake
|
||||
glfw3ConfigVersion.cmake
|
||||
DESTINATION ${GLFW_INSTALL_CONFIG_DIR})
|
||||
|
||||
export(
|
||||
install(
|
||||
EXPORT glfwTargets
|
||||
FILE ${CMAKE_CURRENT_BINARY_DIR}/src/glfw3Targets.cmake)
|
||||
|
||||
install(EXPORT glfwTargets FILE glfw3Targets.cmake
|
||||
FILE glfw3Targets.cmake
|
||||
DESTINATION ${GLFW_INSTALL_CONFIG_DIR})
|
||||
|
||||
install(FILES "${GLFW_BINARY_DIR}/src/glfw3.pc"
|
||||
install(
|
||||
FILES "${GLFW_BINARY_DIR}/src/glfw3.pc"
|
||||
DESTINATION ${GLFW_INSTALL_PKGCONFIG_DIR})
|
||||
|
||||
# Only generate this target if no higher-level project already has
|
||||
if (NOT TARGET uninstall)
|
||||
configure_file("${GLFW_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
||||
"${GLFW_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY)
|
||||
configure_file(cmake_uninstall.cmake.in
|
||||
cmake_uninstall.cmake IMMEDIATE @ONLY)
|
||||
|
||||
add_custom_target(uninstall
|
||||
"${CMAKE_COMMAND}" -P
|
||||
|
@ -8,8 +8,8 @@ set(GLFW3_VERSION "@GLFW_VERSION_FULL@")
|
||||
|
||||
@PACKAGE_INIT@
|
||||
|
||||
set_and_check(GLFW3_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/@GLFW_INSTALL_INCLUDE_DIR@")
|
||||
set_and_check(GLFW3_LIBRARY_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@/@GLFW_INSTALL_INCLUDE_DIR@")
|
||||
set_and_check(GLFW3_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
|
||||
set_and_check(GLFW3_LIBRARY_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/glfw3Targets.cmake")
|
||||
set(GLFW3_LIBRARY glfw)
|
||||
|
Loading…
Reference in New Issue
Block a user