File: cmake-install-target.patch

package info (click to toggle)
glm 0.9.9.8%2Bds-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 8,148 kB
  • sloc: cpp: 38,114; sh: 31; makefile: 23
file content (83 lines) | stat: -rw-r--r-- 3,207 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Description: (re)add install target to CMake
 This is in part backported from upstream and in part developed
 in-house. The install target itself has been re-added upstream
 already, but I've made some tweaks to it in this patch (that I've
 forwarded upstream)
Author: Andrea Pappacoda <andrea@pappacoda.it>
Origin: backport, https://github.com/g-truc/glm/commit/9203edd741d855fc0c360c5c171156d17bf9a25b
Forwarded: https://github.com/g-truc/glm/pull/1117
Last-Update: 2022-09-03

--- glm-0.9.9.8+ds.orig/CMakeLists.txt
+++ glm-0.9.9.8+ds/CMakeLists.txt
@@ -1,15 +1,40 @@
-cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.20 FATAL_ERROR)
 cmake_policy(VERSION 3.2)
 
-set(GLM_VERSION "0.9.9")
+file(READ "glm/detail/setup.hpp" GLM_SETUP_FILE)
+string(REGEX MATCH "#define[ ]+GLM_VERSION_MAJOR[	 ]+([0-9]+)" _ ${GLM_SETUP_FILE})
+set(GLM_VERSION_MAJOR "${CMAKE_MATCH_1}")
+string(REGEX MATCH "#define[ ]+GLM_VERSION_MINOR[	 ]+([0-9]+)" _ ${GLM_SETUP_FILE})
+set(GLM_VERSION_MINOR "${CMAKE_MATCH_1}")
+string(REGEX MATCH "#define[ ]+GLM_VERSION_PATCH[	 ]+([0-9]+)" _ ${GLM_SETUP_FILE})
+set(GLM_VERSION_PATCH "${CMAKE_MATCH_1}")
+string(REGEX MATCH "#define[ ]+GLM_VERSION_REVISION[	 ]+([0-9]+)" _ ${GLM_SETUP_FILE})
+set(GLM_VERSION_REVISION "${CMAKE_MATCH_1}")
+
+set(GLM_VERSION ${GLM_VERSION_MAJOR}.${GLM_VERSION_MINOR}.${GLM_VERSION_PATCH}.${GLM_VERSION_REVISION})
 project(glm VERSION ${GLM_VERSION} LANGUAGES CXX)
 enable_testing()
 
+include(GNUInstallDirs)
+
 add_subdirectory(glm)
 add_library(glm::glm ALIAS glm)
 
 if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
 
+install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} PATTERN "CMakeLists.txt" EXCLUDE)
+install(EXPORT glm FILE glmConfig.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/glm NAMESPACE glm::)
+include(CMakePackageConfigHelpers)
+write_basic_package_version_file("glmConfigVersion.cmake" COMPATIBILITY AnyNewerVersion ARCH_INDEPENDENT)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/glm)
+
+cmake_path(APPEND PKGCONFIG_INCLUDEDIR "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
+configure_file("cmake/glm.pc.in" "glm.pc" @ONLY)
+install(
+	FILES "${CMAKE_CURRENT_BINARY_DIR}/glm.pc"
+	DESTINATION "${CMAKE_INSTALL_DATADIR}/pkgconfig"
+)
+
 add_subdirectory(test)
 
 endif(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
--- /dev/null
+++ glm-0.9.9.8+ds/cmake/glm.pc.in
@@ -0,0 +1,8 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+includedir=@PKGCONFIG_INCLUDEDIR@
+
+Name: GLM
+Description: OpenGL Mathematics
+URL: https://glm.g-truc.net
+Version: @GLM_VERSION@
+Cflags: -I${includedir}
--- glm-0.9.9.8+ds.orig/glm/CMakeLists.txt
+++ glm-0.9.9.8+ds/glm/CMakeLists.txt
@@ -43,7 +43,13 @@ source_group("SIMD Files" FILES ${SIMD_I
 source_group("SIMD Files" FILES ${SIMD_HEADER})
 
 add_library(glm INTERFACE)
-target_include_directories(glm INTERFACE ../)
+
+target_include_directories(glm INTERFACE
+	$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
+	$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+)
+
+install(TARGETS glm EXPORT glm)
 
 if(BUILD_STATIC_LIBS)
 add_library(glm_static STATIC ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT}