Date: Sunday, April 24, 2022 @ 11:37:57
  Author: arojas
Revision: 443896

-ffat-lto-objects, follow cmake guidelines, fix build

Added:
  jasper/trunk/fix-opengl-linking.patch
Modified:
  jasper/trunk/PKGBUILD

--------------------------+
 PKGBUILD                 |   15 ++++---
 fix-opengl-linking.patch |   85 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 94 insertions(+), 6 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2022-04-24 11:26:27 UTC (rev 443895)
+++ PKGBUILD    2022-04-24 11:37:57 UTC (rev 443896)
@@ -4,7 +4,7 @@
 pkgbase=jasper
 pkgname=('jasper' 'jasper-doc')
 pkgver=2.0.33
-pkgrel=1
+pkgrel=2
 pkgdesc='Software-based implementation of the codec specified in the emerging 
JPEG-2000 Part-1 standard'
 url='https://www.ece.uvic.ca/~mdadams/jasper/'
 arch=('x86_64')
@@ -12,16 +12,20 @@
 makedepends=('glibc' 'libjpeg' 'freeglut' 'libxmu' 'glu' 'cmake' 'doxygen')
 options=('staticlibs')
 
source=(${pkgname}-${pkgver}.tar.gz::https://github.com/mdadams/jasper/archive/version-${pkgver}.tar.gz
-        jasper-1.900.1-fix-filename-buffer-overflow.patch)
+        jasper-1.900.1-fix-filename-buffer-overflow.patch
+        fix-opengl-linking.patch)
 
sha512sums=('ff88c4b55d52803786520e4f0db10f7cb7cd7642694c866ea7859bc79e409590469fc2c63afe522c7f8b0c00062c155c0fe3b83b8928e319173a3ec9fea3e09e'
-            
'b8d798bf75523c5db263783e42c653dd0cb03deee90be32eddf878bb6893cca02abadd94de6a8c737a5b7fe76f7fb245979f010765e6a95fc520b215e3a2a7f0')
+            
'b8d798bf75523c5db263783e42c653dd0cb03deee90be32eddf878bb6893cca02abadd94de6a8c737a5b7fe76f7fb245979f010765e6a95fc520b215e3a2a7f0'
+            
'e59788285d5def5391eabe07ed934fd2839357c81edf8f016a4a99b935a8ab0d8b54a82071586b3f79125b7317e01bad8d9c678ad808f2b09710d33a29a1b8f1')
 
b2sums=('29cd29cf1af285f6054a969991674b12c968b42d70970a1a460fe43e25047b56d2b96a614d0723d9def6c09c9c6b1bdb04289bdcd8cf348449271e5c975074db'
-        
'9b1927a437ed9b32491f07a210600b5a7d10711ec954dadc030a8238b67e9c6d1a8e67956fd7a5515e7060f0a1651fa86763e21d6d20592f8f00e9d3260722a1')
+        
'9b1927a437ed9b32491f07a210600b5a7d10711ec954dadc030a8238b67e9c6d1a8e67956fd7a5515e7060f0a1651fa86763e21d6d20592f8f00e9d3260722a1'
+        
'f459a8891fae03236bc17695655b2a1e05cdc4456e644c2deb219d82e24472d816b93b44e3cbe73403a82736bb5b36becd2076402341eb0a1c7362aace58f915')
 
 prepare() {
   cd ${pkgbase}-version-${pkgver}
   patch -p1 < "${srcdir}/jasper-1.900.1-fix-filename-buffer-overflow.patch"
   sed -r 's|(CMAKE_SKIP_BUILD_RPATH) FALSE|\1 TRUE|g' -i CMakeLists.txt
+  patch -p1 < ../fix-opengl-linking.patch # Fix linking to OpenGL libraries
 }
 
 build() {
@@ -29,8 +33,7 @@
 
   local options=(
     -DCMAKE_INSTALL_PREFIX=/usr
-    -DCMAKE_INSTALL_LIBDIR=lib
-    -DCMAKE_BUILD_TYPE=Release
+    -DCMAKE_C_FLAGS="$CFLAGS -ffat-lto-objects"
     -DJAS_ENABLE_OPENGL=ON
     -DJAS_ENABLE_LIBJPEG=ON
     -DJAS_ENABLE_AUTOMATIC_DEPENDENCIES=OFF

Added: fix-opengl-linking.patch
===================================================================
--- fix-opengl-linking.patch                            (rev 0)
+++ fix-opengl-linking.patch    2022-04-24 11:37:57 UTC (rev 443896)
@@ -0,0 +1,85 @@
+diff --git a/build/cmake/modules/JasOpenGL.cmake 
b/build/cmake/modules/JasOpenGL.cmake
+index b58b8de..4e58ead 100644
+--- a/build/cmake/modules/JasOpenGL.cmake
++++ b/build/cmake/modules/JasOpenGL.cmake
+@@ -5,50 +5,28 @@
+ if (JAS_ENABLE_OPENGL)
+       set(OpenGL_GL_PREFERENCE GLVND)
+       find_package(OpenGL ${JAS_REQUIRED})
+-      message("OpenGL library found: ${OPENGL_FOUND}")
+-else()
+-      set(OPENGL_FOUND false)
+-endif()
+-if (JAS_ENABLE_OPENGL AND OPENGL_FOUND)
+-      set(JAS_HAVE_OPENGL 0)
+-      message("OpenGL include directory: ${OPENGL_INCLUDE_DIR}")
+-      message("OpenGL libraries: ${OPENGL_LIBRARIES}")
++      if (TARGET OpenGL::GL)
++              message("OpenGL library found: ${OPENGL_FOUND}")
++              message("OpenGL include directory: ${OPENGL_INCLUDE_DIR}")
++              message("OpenGL libraries: ${OPENGL_LIBRARIES}")
++      endif()
+       find_package(GLUT ${JAS_REQUIRED})
+-      message("GLUT library found: ${GLUT_FOUND}")
+-      if (GLUT_FOUND)
++      if (TARGET GLUT::GLUT)
+               message("GLUT include directory: ${GLUT_INCLUDE_DIR}")
+               message("GLUT libraries: ${GLUT_LIBRARIES}")
+-              set(CMAKE_REQUIRED_INCLUDES ${GLUT_INCLUDE_DIR})
++      endif()
++      if((TARGET OpenGL::GL) AND (TARGET GLUT::GLUT))
+               check_include_files(GL/glut.h JAS_HAVE_GL_GLUT_H)
+               check_include_files(glut.h JAS_HAVE_GLUT_H)
+               if (JAS_HAVE_GL_GLUT_H OR JAS_HAVE_GLUT_H)
++                      set(JAS_OPENGL_TARGETS GLUT::GLUT OpenGL::GL)
++                      if (TARGET OpenGL::GLU)
++                              set(JAS_OPENGL_TARGETS ${JAS_OPENGL_TARGETS} 
OpenGL::GLU)
++                      endif()
+                       set(JAS_HAVE_OPENGL 1)
+-                      include_directories(${GLUT_INCLUDE_DIR} 
${OPENGL_INCLUDE_DIR})
+               else()
+                       message(WARNING "The header files GL/glut.h and glut.h 
both appear to be missing.")
+                       message(WARNING "Disabling OpenGL.")
+               endif()
+       endif()
+-      # On some systems (e.g., Fedora 21), there is a bug in the cmake code
+-      # that detects GLUT libraries.  The following ugliness is a workaround 
for 
+-      # this problem.
+-      if (NOT GLUT_Xmu_LIBRARY OR NOT GLUT_Xmi_LIBRARY)
+-              if (NOT GLUT_Xmu_LIBRARY)
+-                      set(GLUT_Xmu_LIBRARY "")
+-                      message(WARNING "Clearing bogus value for 
GLUT_Xmu_LIBRARY.")
+-                      message(WARNING "Your version of CMake may be buggy.")
+-              endif()
+-              if (NOT GLUT_Xmi_LIBRARY)
+-                      set(GLUT_Xmi_LIBRARY "")
+-                      message(WARNING "Clearing bogus value for 
GLUT_Xmi_LIBRARY.")
+-                      message(WARNING "Your version of CMake may be buggy.")
+-              endif()
+-              set(GLUT_LIBRARIES "${GLUT_glut_LIBRARY}")
+-      endif()
+-else()
+-      set(JAS_HAVE_OPENGL 0)
+-      set(OPENGL_INCLUDE_DIR "")
+-      set(OPENGL_LIBRARIES "")
+-      set(GLUT_INCLUDE_DIR "")
+-      set(GLUT_LIBRARIES "")
+ endif()
+diff --git a/src/appl/CMakeLists.txt b/src/appl/CMakeLists.txt
+index 1b865de..3d0c57b 100644
+--- a/src/appl/CMakeLists.txt
++++ b/src/appl/CMakeLists.txt
+@@ -22,10 +22,9 @@ set(man_pages "${man_pages}" imgcmp.1)
+ # The jiv program (which requires GLUT)
+ if(JAS_HAVE_OPENGL)
+       add_executable(jiv jiv.c)
+-      target_include_directories(jiv PUBLIC
+-        ${GLUT_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR})
+-      target_link_libraries(jiv libjasper ${JPEG_LIBRARIES} ${GLUT_LIBRARIES}
+-        ${OPENGL_LIBRARIES} ${MATH_LIBRARY})
++      target_link_libraries(jiv libjasper
++        ${JPEG_LIBRARIES} ${HEIF_LIBRARIES} ${JAS_OPENGL_TARGETS}
++        ${JAS_OPENGL_TARGETS} ${MATH_LIBRARY} ${THREAD_LIBRARY})
+       set(programs "${programs}" jiv)
+       set(man_pages "${man_pages}" jiv.1)
+ else()

Reply via email to