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)
|
set(GLFW_LIB_NAME glfw3)
|
||||||
endif()
|
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
|
# Add subdirectories
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
@ -522,32 +491,79 @@ if (DOXYGEN_FOUND AND GLFW_BUILD_DOCS)
|
|||||||
add_subdirectory(docs)
|
add_subdirectory(docs)
|
||||||
endif()
|
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
|
# Install files other than the library
|
||||||
# The library is installed by src/CMakeLists.txt
|
# The library is installed by src/CMakeLists.txt
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
if (GLFW_INSTALL)
|
if (GLFW_INSTALL)
|
||||||
install(DIRECTORY include/GLFW DESTINATION ${GLFW_INSTALL_INCLUDE_DIR}
|
configure_package_config_file(src/glfw3Config.cmake.in
|
||||||
FILES_MATCHING PATTERN glfw3.h PATTERN glfw3native.h)
|
${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"
|
install(
|
||||||
"${GLFW_BINARY_DIR}/src/glfw3ConfigVersion.cmake"
|
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})
|
DESTINATION ${GLFW_INSTALL_CONFIG_DIR})
|
||||||
|
|
||||||
export(
|
install(
|
||||||
EXPORT glfwTargets
|
EXPORT glfwTargets
|
||||||
FILE ${CMAKE_CURRENT_BINARY_DIR}/src/glfw3Targets.cmake)
|
FILE glfw3Targets.cmake
|
||||||
|
|
||||||
install(EXPORT glfwTargets FILE glfw3Targets.cmake
|
|
||||||
DESTINATION ${GLFW_INSTALL_CONFIG_DIR})
|
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})
|
DESTINATION ${GLFW_INSTALL_PKGCONFIG_DIR})
|
||||||
|
|
||||||
# Only generate this target if no higher-level project already has
|
# Only generate this target if no higher-level project already has
|
||||||
if (NOT TARGET uninstall)
|
if (NOT TARGET uninstall)
|
||||||
configure_file("${GLFW_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
configure_file(cmake_uninstall.cmake.in
|
||||||
"${GLFW_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY)
|
cmake_uninstall.cmake IMMEDIATE @ONLY)
|
||||||
|
|
||||||
add_custom_target(uninstall
|
add_custom_target(uninstall
|
||||||
"${CMAKE_COMMAND}" -P
|
"${CMAKE_COMMAND}" -P
|
||||||
|
@ -8,8 +8,8 @@ set(GLFW3_VERSION "@GLFW_VERSION_FULL@")
|
|||||||
|
|
||||||
@PACKAGE_INIT@
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
set_and_check(GLFW3_INCLUDE_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_PREFIX@/@GLFW_INSTALL_INCLUDE_DIR@")
|
set_and_check(GLFW3_LIBRARY_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@")
|
||||||
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/glfw3Targets.cmake")
|
include("${CMAKE_CURRENT_LIST_DIR}/glfw3Targets.cmake")
|
||||||
set(GLFW3_LIBRARY glfw)
|
set(GLFW3_LIBRARY glfw)
|
||||||
|
Loading…
Reference in New Issue
Block a user