Sync from SUSE:SLFO:Main glm revision 75fcdd4609ab59fc8c64b75af875c971

This commit is contained in:
Adrian Schröter 2024-05-03 12:55:33 +02:00
commit 9285acd234
7 changed files with 717 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,181 @@
From 06ce42e72324b32b1f4c37c646e99950c2bd5f6b Mon Sep 17 00:00:00 2001
From: Max Rees <maxcrees@me.com>
Date: Sun, 15 Mar 2020 15:13:27 -0400
Subject: [PATCH] Fix test suite on big endian platforms
---
glm/gtc/packing.inl | 55 ++++++++++++++++++++++++++++++++++++++++
test/gtc/gtc_packing.cpp | 3 ++-
2 files changed, 57 insertions(+), 1 deletion(-)
diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl
index 8c906e16c..b1c99a507 100644
--- a/glm/gtc/packing.inl
+++ b/glm/gtc/packing.inl
@@ -9,6 +9,9 @@
#include "../detail/type_half.hpp"
#include <cstring>
#include <limits>
+extern "C" {
+#include <endian.h>
+}
namespace glm{
namespace detail
@@ -183,9 +186,15 @@ namespace detail
{
struct
{
+#if BYTE_ORDER == LITTLE_ENDIAN
uint x : 3;
uint y : 3;
uint z : 2;
+#else
+ uint z : 2;
+ uint y : 3;
+ uint x : 3;
+#endif
} data;
uint8 pack;
};
@@ -194,8 +203,13 @@ namespace detail
{
struct
{
+#if BYTE_ORDER == LITTLE_ENDIAN
uint x : 4;
uint y : 4;
+#else
+ uint y : 4;
+ uint x : 4;
+#endif
} data;
uint8 pack;
};
@@ -204,10 +218,17 @@ namespace detail
{
struct
{
+#if BYTE_ORDER == LITTLE_ENDIAN
uint x : 4;
uint y : 4;
uint z : 4;
uint w : 4;
+#else
+ uint w : 4;
+ uint z : 4;
+ uint y : 4;
+ uint x : 4;
+#endif
} data;
uint16 pack;
};
@@ -216,9 +237,15 @@ namespace detail
{
struct
{
+#if BYTE_ORDER == LITTLE_ENDIAN
uint x : 5;
uint y : 6;
uint z : 5;
+#else
+ uint z : 5;
+ uint y : 6;
+ uint x : 5;
+#endif
} data;
uint16 pack;
};
@@ -227,10 +254,17 @@ namespace detail
{
struct
{
+#if BYTE_ORDER == LITTLE_ENDIAN
uint x : 5;
uint y : 5;
uint z : 5;
uint w : 1;
+#else
+ uint w : 1;
+ uint z : 5;
+ uint y : 5;
+ uint x : 5;
+#endif
} data;
uint16 pack;
};
@@ -239,10 +273,17 @@ namespace detail
{
struct
{
+#if BYTE_ORDER == LITTLE_ENDIAN
uint x : 10;
uint y : 10;
uint z : 10;
uint w : 2;
+#else
+ uint w : 2;
+ uint z : 10;
+ uint y : 10;
+ uint x : 10;
+#endif
} data;
uint32 pack;
};
@@ -251,10 +292,17 @@ namespace detail
{
struct
{
+#if BYTE_ORDER == LITTLE_ENDIAN
int x : 10;
int y : 10;
int z : 10;
int w : 2;
+#else
+ int w : 2;
+ int z : 10;
+ int y : 10;
+ int x : 10;
+#endif
} data;
uint32 pack;
};
@@ -263,10 +311,17 @@ namespace detail
{
struct
{
+#if BYTE_ORDER == LITTLE_ENDIAN
uint x : 9;
uint y : 9;
uint z : 9;
uint w : 5;
+#else
+ uint w : 5;
+ uint z : 9;
+ uint y : 9;
+ uint x : 9;
+#endif
} data;
uint32 pack;
};
diff --git a/test/gtc/gtc_packing.cpp b/test/gtc/gtc_packing.cpp
index df5b3bb1a..fbaaa5bcc 100644
--- a/test/gtc/gtc_packing.cpp
+++ b/test/gtc/gtc_packing.cpp
@@ -4,6 +4,7 @@
#include <glm/ext/vector_relational.hpp>
#include <cstdio>
#include <vector>
+#include <arpa/inet.h>
void print_bits(float const& s)
{
@@ -156,7 +157,7 @@ int test_U3x10_1x2()
glm::u8vec4 const v0(0xff, 0x77, 0x0, 0x33);
glm::uint32 const p0 = *reinterpret_cast<glm::uint32 const*>(&v0[0]);
- glm::uint32 const r0 = 0x330077ff;
+ glm::uint32 const r0 = htonl(0xff770033);
Error += p0 == r0 ? 0 : 1;

150
glm-0.9.9.8-install.patch Normal file
View File

@ -0,0 +1,150 @@
From 02f26a88537b0b02dd0df77fc858e9449c7e3847 Mon Sep 17 00:00:00 2001
From: Krzysztof Kurek <krzysio.kurek@pm.me>
Date: Sat, 30 Jan 2021 21:08:48 +0100
Subject: [PATCH] Add installation support from PR #1054
This is based on commit 887827b762111a8e6b4765513b4be212fa6a5426,
discovered from https://github.com/g-truc/glm/pull/1054
---
CMakeLists.txt | 16 ++++++++++++++--
cmake/glm/glmConfig-version.cmake | 11 -----------
cmake/glm/glmConfig.cmake | 22 ----------------------
glm/CMakeLists.txt | 10 +++++++++-
manual.md | 21 ++++++++++++++++++++-
5 files changed, 43 insertions(+), 37 deletions(-)
delete mode 100644 cmake/glm/glmConfig-version.cmake
delete mode 100644 cmake/glm/glmConfig.cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 843e7546..642a5fde 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,13 +3,25 @@ cmake_policy(VERSION 3.2)
set(GLM_VERSION "0.9.9")
project(glm VERSION ${GLM_VERSION} LANGUAGES CXX)
-enable_testing()
+message(STATUS "GLM: Version " ${GLM_VERSION})
add_subdirectory(glm)
add_library(glm::glm ALIAS glm)
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
-add_subdirectory(test)
+ include(CPack)
+ install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} PATTERN "CMakeLists.txt" EXCLUDE)
+ install(EXPORT glm FILE glmConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glm NAMESPACE glm::)
+ include(CMakePackageConfigHelpers)
+ write_basic_package_version_file("glmConfigVersion.cmake" COMPATIBILITY AnyNewerVersion)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glm)
+
+ include(CTest)
+ if(BUILD_TESTING)
+ add_subdirectory(test)
+ endif()
endif(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
+
+
diff --git a/cmake/glm/glmConfig-version.cmake b/cmake/glm/glmConfig-version.cmake
deleted file mode 100644
index 6e63a4a3..00000000
--- a/cmake/glm/glmConfig-version.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-if(${PACKAGE_FIND_VERSION_MAJOR} EQUAL 0)
- if (${PACKAGE_FIND_VERSION} VERSION_LESS ${GLM_VERSION})
- set(PACKAGE_VERSION_COMPATIBLE 1)
- endif()
- if(${PACKAGE_FIND_VERSION} VERSION_EQUAL ${GLM_VERSION})
- set(PACKAGE_VERSION_EXACT 1)
- endif()
-else()
- set(PACKAGE_VERSION_UNSUITABLE 1)
-endif()
-
diff --git a/cmake/glm/glmConfig.cmake b/cmake/glm/glmConfig.cmake
deleted file mode 100644
index 4fba5116..00000000
--- a/cmake/glm/glmConfig.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
-cmake_policy(VERSION 3.2)
-
-set(GLM_VERSION 0.9.9)
-
-get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
-get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
-get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
-if (_IMPORT_PREFIX STREQUAL "/")
- set(_IMPORT_PREFIX "")
-endif()
-
-# Set the old GLM_INCLUDE_DIRS variable for backwards compatibility
-set(GLM_INCLUDE_DIRS ${_IMPORT_PREFIX})
-
-add_library(glm::glm INTERFACE IMPORTED)
-set_target_properties(glm::glm PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES ${GLM_INCLUDE_DIRS})
-
-mark_as_advanced(glm_DIR)
-set(_IMPORT_PREFIX)
-
diff --git a/glm/CMakeLists.txt b/glm/CMakeLists.txt
index 4ff51c81..cee0d2e7 100644
--- a/glm/CMakeLists.txt
+++ b/glm/CMakeLists.txt
@@ -43,7 +43,15 @@ source_group("SIMD Files" FILES ${SIMD_INLINE})
source_group("SIMD Files" FILES ${SIMD_HEADER})
add_library(glm INTERFACE)
-target_include_directories(glm INTERFACE ../)
+
+include(GNUInstallDirs)
+
+target_include_directories(glm INTERFACE
+ $<BUILD_INTERFACE:${CMAKE_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}
diff --git a/manual.md b/manual.md
index a7f6956f..d53df3d7 100644
--- a/manual.md
+++ b/manual.md
@@ -277,7 +277,26 @@ GLM does not depend on external libraries or headers such as `<GL/gl.h>`, [`<GL/
### <a name="section1_5"></a> 1.5. Finding GLM with CMake
-GLM packages a `glmConfig.cmake` and `glmConfig-version.cmake` in the root of the repository and the release archives. To find GLM with CMake you can pass `-Dglm_DIR=<path to glm root>/cmake/glm/` when running CMake. You can then either add `${GLM_INCLUDE_DIRS}` to your target's include directories, or link against the imported `glm::glm` target.
+When installed, GLM provides the CMake package configuration files `glmConfig.cmake` and `glmConfigVersion.cmake`.
+
+To use these configurations files, you may need to set the `glm_DIR` variable to the directory containing the configuration files `<installation prefix>/lib/cmake/glm/`.
+
+Use the `find_package` CMake command to load the configurations into your project. Lastly, either link your executable against the `glm::glm` target or add `${GLM_INCLUDE_DIRS}` to your target's include directories:
+
+```cmake
+set(glm_DIR <installation prefix>/lib/cmake/glm) # if necessary
+find_package(glm REQUIRED)
+target_link_libraries(<your executable> glm::glm)
+```
+
+To use GLM as a submodule in a project instead, use `add_subdirectory` to expose the same target, or add the directory to your target's
+
+```cmake
+add_subdirectory(glm)
+target_link_libraries(<your executable> glm::glm)
+# or
+target_include_directories(<your executable> glm)
+```
---
<div style="page-break-after: always;"> </div>
--
2.29.2

View File

@ -0,0 +1,26 @@
Index: glm-0.9.9.8/CMakeLists.txt
===================================================================
--- glm-0.9.9.8.orig/CMakeLists.txt
+++ glm-0.9.9.8/CMakeLists.txt
@@ -17,6 +17,9 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_
write_basic_package_version_file("glmConfigVersion.cmake" COMPATIBILITY AnyNewerVersion)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glm)
+ configure_file(glm.pc.in glm.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/glm.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+
include(CTest)
if(BUILD_TESTING)
add_subdirectory(test)
Index: glm-0.9.9.8/glm.pc.in
===================================================================
--- /dev/null
+++ glm-0.9.9.8/glm.pc.in
@@ -0,0 +1,7 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+includedir=${prefix}/include
+
+Name: GLM
+Description: OpenGL Mathematics
+Version: @GLM_VERSION@
+Cflags: -I${includedir}

BIN
glm-0.9.9.8.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

238
glm.changes Normal file
View File

@ -0,0 +1,238 @@
-------------------------------------------------------------------
Thu Mar 10 09:30:38 UTC 2022 - Lubos Kocman <lubos.kocman@suse.com>
- Add back dropped reference for bsc#1135667
-------------------------------------------------------------------
Sat Jun 19 11:49:32 UTC 2021 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 0.9.9.8
Features:
* Added GLM_EXT_vector_intX* and GLM_EXT_vector_uintX*
extensions
* Added GLM_EXT_matrix_intX* and GLM_EXT_matrix_uintX*
extensions
Improvements:
* Added clamp, repeat, mirrorClamp and mirrorRepeat function
to GLM_EXT_scalar_commond and GLM_EXT_vector_commond
extensions with tests
Fixes:
* Fixed unnecessary warnings from matrix_projection.inl
* Fixed quaternion slerp overload which interpolates with
extra spins
* Fixed for glm::length using arch64
* Fixed singularity check for quatLookAt
version 0.9.9.7
Improvements:
* Improved Neon support with more functions optimized
* Added CMake GLM interface
* Added fma implementation based on std::fma
* Added missing quat constexpr
* Added GLM_FORCE_QUAT_DATA_WXYZ to store quat data as w,x,y,z
instead of x,y,z,w
Fixes:
* Fixed equal ULP variation when using negative sign
* Fixed for intersection ray/plane and added related tests
* Fixed ARM 64bit detection
* Fixed GLM_EXT_matrix_clip_space warnings
* Fixed Wimplicit-int-float-conversion warnings with clang 10+
* Fixed EXT_matrix_clip_space perspectiveFov
version 0.9.9.6
Features:
* Added Neon support to glm
* Added SYCL support
* Added EXT_scalar_integer extension with power of two and
multiple scalar functions
* Added EXT_vector_integer extension with power of two and
multiple vector functions
Improvements:
* Added missing genType check for bitCount and bitfieldReverse
Fixes:
* Fixed for g++6 where -std=c++1z sets __cplusplus to 201500
instead of 201402
* Fixed hash hashes qua instead of tquat
* Fixed .natvis as structs renamed
* Fixed ldexp and frexp declaration
* Fixed missing const to quaternion conversion operators
* Fixed EXT_scalar_ulp and EXT_vector_ulp API coding style
* Fixed quaternion componant order: w, {x, y, z}
* Fixed GLM_HAS_CXX11_STL broken on Clang with Linux
* Fixed Clang or GCC build due to wrong GLM_HAS_IF_CONSTEXPR
definition
* Fixed CUDA 9 build
- Drop glm-cmake-config.patch (no longer applies)
- Add glm-0.9.9.8-install.patch (courtesy of Fedora),
glm-0.9.9.8-pkgconfig.patch and
glm-0.9.9.8-fix_tests_big-endian.patch
-------------------------------------------------------------------
Mon May 20 19:44:32 UTC 2019 - Luigi Baldoni <aloisio@gmx.com>
- Added glm-pkgconfig.patch to create glm.pc file
(fixes bsc#1135667)
-------------------------------------------------------------------
Wed Apr 24 10:05:48 UTC 2019 - Manfred Hollstein <manfred.h@gmx.net>
- Ensure glmConfig.cmake gets installed:
* glm-cmake-config.patch
-------------------------------------------------------------------
Sun Apr 14 19:07:08 UTC 2019 - Sagi <sagiben@gmail.com>
- Update to version 0.9.9.5
See https://github.com/g-truc/glm/releases/tag/0.9.9.5 for the
full changelog
* Fixed build errors when defining GLM_ENABLE_EXPERIMENTAL #884
#883
* Fixed 'if constexpr' warning #887
* Fixed missing declarations for frexp and ldexp #886
changelog can also be found at
/usr/share/doc/packages/%{name}-doc/readme.md
-------------------------------------------------------------------
Wed Mar 27 07:23:32 UTC 2019 - Martin Hauke <mardnh@gmx.de>
- Fix typo in patch glm-cmake-config.patch
- Correct License
-------------------------------------------------------------------
Tue Mar 26 22:41:54 UTC 2019 - Martin Hauke <mardnh@gmx.de>
- Reenable disabled tests (fixed by upstream)
* core_func_exponential
* gtc_packing
* gtc_integer
* gtx_common
-------------------------------------------------------------------
Mon Mar 25 13:59:02 UTC 2019 - Martin Hauke <mardnh@gmx.de>
- Upstream does not package a dedicated LICENSE file.
Make a note the license terms are included in manual.md
- Use %fdupes macro also for docs/api/
-------------------------------------------------------------------
Tue Mar 19 19:52:46 UTC 2019 - Martin Hauke <mardnh@gmx.de>
- Update to version 0.9.9.4
See https://github.com/g-truc/glm/releases for the changelog
- Update patch:
* glm-cmake-config.patch
- Run spec-cleaner
-------------------------------------------------------------------
Wed Jun 29 08:39:39 UTC 2016 - mpluskal@suse.com
- Update to 0.9.7.5
* Added Visual C++ Clang toolset detection
* Fixed uaddCarry warning #497
* Fixed roundPowerOfTwo and floorPowerOfTwo #503
* Fixed Visual C++ SIMD instruction set automatic detection in 64
bits
* Fixed to_string when used with GLM_FORCE_INLINE #506
* Fixed GLM_FORCE_INLINE with binary vec4 operators
-------------------------------------------------------------------
Mon Mar 21 19:13:24 UTC 2016 - dmitry_r@opensuse.org
- Update to version 0.9.7.4
- Fix cmake config location
* glm-cmake-config.patch
- Drop obsolete
* glm-0.9.5.3-no_gtc_packing_test.patch
- Drop aliasing.patch, use -fno-strict-aliasing
-------------------------------------------------------------------
Thu Sep 25 11:34:14 UTC 2014 - schwab@suse.de
- aliasing.patch: fix strict aliasing issues
-------------------------------------------------------------------
Fri May 16 09:09:02 UTC 2014 - fstrba@suse.com
- Version bump to 0.9.5.3
- Add a patch to disable gtc_packing test that fails on some i586
systems:
* glm-0.9.5.3-no_gtc_packing_test.patch
- Add %fdupes to reduce size
-------------------------------------------------------------------
Mon Mar 24 14:40:23 UTC 2014 - tchvatal@suse.com
- Version bump to 0.9.5.2:
* Various bug fixes
* MIT only license
- Remove no longer needed patch:
* glm-nonx86.patch
- Use cmake macros to build
-------------------------------------------------------------------
Thu Aug 1 11:01:03 UTC 2013 - dvaleev@suse.com
- convert sources to UNIX format using dos2unix
- fix build on non x86 architectures (glm-nonx86.patch)
-------------------------------------------------------------------
Thu Jul 18 14:21:38 UTC 2013 - cfarrell@suse.com
- license update: MIT and GPL-2.0+
glm-0.9.4.4/test/external/gli/core/shared_ptr.inl is GPL licensed
-------------------------------------------------------------------
Wed Jul 10 17:02:31 UTC 2013 - dmitry_r@opensuse.org
- Update to version 0.9.4.4
* Promoted GTC_espilon extension
* Promoted GTC_ulp extension
* Removed GLM website from the source repository
* Added GLM_FORCE_RADIANS so that all functions takes radians for arguments
-------------------------------------------------------------------
Sun Mar 3 22:52:32 UTC 2013 - jengelh@inai.de
- Add missing BuildRoot directive (resolve SLE build failure)
-------------------------------------------------------------------
Tue Sep 4 21:41:59 UTC 2012 - adam@mizerski.pl
- update to 0.9.3.4
- A lot happend since last update.
Changelog available at http://glm.g-truc.net/
-------------------------------------------------------------------
Sun Feb 5 16:24:30 UTC 2012 - jengelh@medozas.de
- Remove redundant tags/sections
-------------------------------------------------------------------
Fri Sep 16 20:54:46 UTC 2011 - adam@mizerski.pl
- update to 0.9.2.4
- Fixed extensions bugs
-------------------------------------------------------------------
Mon Jun 27 09:22:25 UTC 2011 - adam@mizerski.pl
- update to 0.9.2.3
- Fixed build issues
- update to 0.9.2.2
- Expend matrix constructors flexibility
- Improved quaternion implementation
- Fixed many warnings across platforms and compilers
-------------------------------------------------------------------
Thu May 26 20:20:28 UTC 2011 - adam@mizerski.pl
- update to 0.9.2.1
- Automatically detect CUDA support
- Improved compiler detection
- Fixed errors and warnings in VC with C++ extensions disabled
- Fixed and tested GLM_GTX_vector_angle
- Fixed and tested GLM_GTX_rotate_vector
-------------------------------------------------------------------
Sat May 14 22:15:06 UTC 2011 - adam@mizerski.pl
- new package

96
glm.spec Normal file
View File

@ -0,0 +1,96 @@
#
# spec file for package glm
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: glm
Version: 0.9.9.8
Release: 0
Summary: Header only C++ mathematics library for graphics
License: GPL-2.0-only AND MIT
Group: Development/Libraries/C and C++
URL: https://glm.g-truc.net/
#Git-Clone: https://github.com/g-truc/glm.git
Source: https://github.com/g-truc/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
# PATCH-FIX-OPENSUSE glm-0.9.9.8-install.patch
Patch2: glm-0.9.9.8-install.patch
# PATCH-FIX-OPENSUSE glm-0.9.9.8-pkgconfig.patch add pkgconfig file -- aloisio@gmx.com
Patch3: glm-0.9.9.8-pkgconfig.patch
# PATCH-FIX-UPSTREAM glm-0.9.9.8-fix_tests_big-endian.patch
Patch4: glm-0.9.9.8-fix_tests_big-endian.patch
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: pkgconfig
%description
OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics
software based on the OpenGL Shading Language (GLSL) specification.
GLM provides classes and functions designed and implemented with the same naming
conventions and functionalities than GLSL so that when a programmer knows GLSL,
he knows GLM as well which makes it really easy to use.
%package devel
Summary: Header only C++ mathematics library for graphics
Group: Development/Libraries/C and C++
Requires: cmake
%description devel
OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics
software based on the OpenGL Shading Language (GLSL) specification.
GLM provides classes and functions designed and implemented with the same naming
conventions and functionalities than GLSL so that when a programmer knows GLSL,
he knows GLM as well which makes it really easy to use.
%package doc
Summary: Documentation for GLM library
Group: Documentation/Other
BuildArch: noarch
%description doc
This package provides the documentation for GLM library.
%prep
%autosetup -p1
%build
%cmake \
-DCMAKE_CXX_FLAGS="%{optflags} -fPIC -fno-strict-aliasing" \
-DGLM_TEST_ENABLE=ON
%make_jobs
%install
%cmake_install
%fdupes -s %{buildroot}
%fdupes -s doc/api
%check
%ctest
%files devel
%{_includedir}/glm
%{_libdir}/cmake/%{name}
%{_libdir}/pkgconfig/%{name}.pc
%files doc
# See https://github.com/g-truc/glm/blob/master/manual.md#-licenses for license details
%license readme.md
%doc doc/api
%doc manual.md readme.md
%changelog