rpms/OCE/F-17 OCE-0.11-freeimage.patch,NONE,1.1

Richard Shaw hobbes1069 at rpmfusion.org
Tue Feb 19 16:06:00 CET 2013


Author: hobbes1069

Update of /cvs/nonfree/rpms/OCE/F-17
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv25876

Added Files:
	OCE-0.11-freeimage.patch 
Log Message:
Commit patch.

OCE-0.11-freeimage.patch:
 CMakeLists.txt                    |   17 +++++++++++++++--
 adm/cmake/TKOpenGl/CMakeLists.txt |   14 ++++++++++++++
 src/OpenGl/OpenGl_Workspace_2.cxx |    5 -----
 3 files changed, 29 insertions(+), 7 deletions(-)

--- NEW FILE OCE-0.11-freeimage.patch ---
>From 1f952ba08554b522b129f8a562dfc6fe7c19a16c Mon Sep 17 00:00:00 2001
From: Denis Barbier <bouzim at gmail.com>
Date: Mon, 18 Feb 2013 12:16:29 +0100
Subject: [PATCH] Link against FreeImage (instead of FreeImagePlus) on
 non-Windows

FreeImage support is available in TKService and TKOpenGl.
In TKService, only the C API is used, so we can link
against freeimage.  This is better because on some platforms
(Fedora for instance), symbols of freeimage are not duplicated
into freeimageplus, which causes unresolved symbols when linking
with --as-needed.

In TKOpenGl, the FreeImage support was not enabled, copy
it from TKService.  It is used only in OpenGl_Workspace::Print,
and this method works only on Windows.

Remove #pragma from src/OpenGl/OpenGl_Workspace_2.cxx.
---
 CMakeLists.txt                    |   17 +++++++++++++++--
 adm/cmake/TKOpenGl/CMakeLists.txt |   14 ++++++++++++++
 src/OpenGl/OpenGl_Workspace_2.cxx |    4 ----
 3 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9ddb85..bdbd5e2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -307,13 +307,22 @@ IF(${PROJECT_NAME}_VISUALISATION)
 	IF(${PROJECT_NAME}_WITH_FREEIMAGE)
 		FIND_PATH(FREEIMAGE_INCLUDE_DIR FreeImagePlus.h DOC "Location of header files for FreeImage" ${CMAKE_SYSTEM_INCLUDE_PATH})
 		IF(FREEIMAGE_INCLUDE_DIR)
-			FIND_LIBRARY( FREEIMAGE_LIBRARY freeimageplus "Path to the freeimage library" )
+			FIND_LIBRARY( FREEIMAGE_LIBRARY freeimage "Path to the freeimage library" )
 	
 			IF(CMAKE_CONFIGURATION_TYPES OR NMAKE)
-				FIND_LIBRARY( FREEIMAGE_LIBRARY_DEBUG freeimageplusd "Path to the freeimage debug library" )
+				FIND_LIBRARY( FREEIMAGE_LIBRARY_DEBUG freeimaged "Path to the freeimage debug library" )
 			ENDIF(CMAKE_CONFIGURATION_TYPES OR NMAKE)
 		ENDIF(FREEIMAGE_INCLUDE_DIR)
 		MARK_AS_ADVANCED(FREEIMAGE_INCLUDE_DIR FREEIMAGE_LIBRARY)
+		IF(WIN32)
+			IF(FREEIMAGE_INCLUDE_DIR)
+				FIND_LIBRARY( FREEIMAGEPLUS_LIBRARY freeimageplus "Path to the freeimageplus library" )
+				IF(CMAKE_CONFIGURATION_TYPES OR NMAKE)
+					FIND_LIBRARY( FREEIMAGEPLUS_LIBRARY_DEBUG freeimageplusd "Path to the freeimageplus debug library" )
+				ENDIF(CMAKE_CONFIGURATION_TYPES OR NMAKE)
+			ENDIF(FREEIMAGE_INCLUDE_DIR)
+			MARK_AS_ADVANCED(FREEIMAGEPLUS_LIBRARY)
+		ENDIF(WIN32)
 	ENDIF(${PROJECT_NAME}_WITH_FREEIMAGE)
 
 	IF (NOT WIN32)
@@ -452,6 +461,8 @@ IF (${PROJECT_NAME}_USE_BUNDLE AND ${PROJECT_NAME}_BUNDLE_ROOT_PATH)
 		IF(${PROJECT_NAME}_WITH_FREEIMAGE)
 			SET(FREEIMAGE_LIBRARY ${${PROJECT_NAME}_BUNDLE_ROOT_PATH}/Win${BIT}/lib/FreeImage.lib CACHE FILEPATH "" FORCE)
 			SET(FREEIMAGE_LIBRARY_DEBUG ${${PROJECT_NAME}_BUNDLE_ROOT_PATH}/Win${BIT}/libd/FreeImaged.lib CACHE FILEPATH "" FORCE)
+			SET(FREEIMAGEPLUS_LIBRARY ${${PROJECT_NAME}_BUNDLE_ROOT_PATH}/Win${BIT}/lib/FreeImagePlus.lib CACHE FILEPATH "" FORCE)
+			SET(FREEIMAGEPLUS_LIBRARY_DEBUG ${${PROJECT_NAME}_BUNDLE_ROOT_PATH}/Win${BIT}/libd/FreeImagePlusd.lib CACHE FILEPATH "" FORCE)
 			SET(FREEIMAGE_INCLUDE_DIR ${${PROJECT_NAME}_BUNDLE_ROOT_PATH}/include/FreeImage CACHE PATH "" FORCE)
 		ENDIF(${PROJECT_NAME}_WITH_FREEIMAGE)
 	ENDIF (${PROJECT_NAME}_VISUALISATION)
@@ -1114,6 +1125,8 @@ IF (${PROJECT_NAME}_BUNDLE_AUTOINSTALL)
 	IF (${PROJECT_NAME}_VISU_DEP AND ${PROJECT_NAME}_WITH_FREEIMAGE)
 		INSTALL(FILES ${${PROJECT_NAME}_BUNDLE_ROOT_PATH}/Win${BIT}/bind/FreeImaged.dll DESTINATION ${${PROJECT_NAME}_INSTALL_BIN_DIR} CONFIGURATIONS Debug)
 		INSTALL(FILES ${${PROJECT_NAME}_BUNDLE_ROOT_PATH}/Win${BIT}/bin/FreeImage.dll DESTINATION ${${PROJECT_NAME}_INSTALL_BIN_DIR} CONFIGURATIONS Release RelWithDebInfo MinSizeRel)
+		INSTALL(FILES ${${PROJECT_NAME}_BUNDLE_ROOT_PATH}/Win${BIT}/bind/FreeImagePlusd.dll DESTINATION ${${PROJECT_NAME}_INSTALL_BIN_DIR} CONFIGURATIONS Debug)
+		INSTALL(FILES ${${PROJECT_NAME}_BUNDLE_ROOT_PATH}/Win${BIT}/bin/FreeImagePlus.dll DESTINATION ${${PROJECT_NAME}_INSTALL_BIN_DIR} CONFIGURATIONS Release RelWithDebInfo MinSizeRel)
 	ENDIF(${PROJECT_NAME}_VISU_DEP AND ${PROJECT_NAME}_WITH_FREEIMAGE)
 
 	# Install TCL
diff --git a/adm/cmake/TKOpenGl/CMakeLists.txt b/adm/cmake/TKOpenGl/CMakeLists.txt
index aed0f9f..4c3b574 100644
--- a/adm/cmake/TKOpenGl/CMakeLists.txt
+++ b/adm/cmake/TKOpenGl/CMakeLists.txt
@@ -19,6 +19,20 @@ ENDIF(CMAKE_CONFIGURATION_TYPES OR NMAKE)
 
 SET(TOOLKIT_INCLUDE_DIRECTORIES ${OPENGL_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIRS} ${FTGL_INCLUDE_DIR})
 
+# OpenGl_Workspace::Print is available only on Windows
+IF(WIN32 AND FREEIMAGE_LIBRARY AND ${PROJECT_NAME}_WITH_FREEIMAGE)
+	ADD_DEFINITIONS(-DHAVE_FREEIMAGE)
+
+	IF(CMAKE_CONFIGURATION_TYPES OR NMAKE)
+		SET(TOOLKIT_LIBS_DEBUG ${TOOLKIT_LIBS_DEBUG} ${FREEIMAGEPLUS_LIBRARY_DEBUG} ${FREEIMAGE_LIBRARY_DEBUG})
+		SET(TOOLKIT_LIBS_OPTIMIZED ${TOOLKIT_LIBS_OPTIMIZED} ${FREEIMAGEPLUS_LIBRARY} ${FREEIMAGE_LIBRARY})
+	ELSE (CMAKE_CONFIGURATION_TYPES OR NMAKE)
+		SET(TOOLKIT_LIBS ${TOOLKIT_LIBS} ${FREEIMAGEPLUS_LIBRARY} ${FREEIMAGE_LIBRARY})
+	ENDIF(CMAKE_CONFIGURATION_TYPES OR NMAKE)
+
+	SET(TOOLKIT_INCLUDE_DIRECTORIES ${TOOLKIT_INCLUDE_DIRECTORIES} ${FREEIMAGE_INCLUDE_DIR})
+ENDIF(FREEIMAGE_LIBRARY AND ${PROJECT_NAME}_WITH_FREEIMAGE)
+
 IF(GL2PS_LIBRARY AND ${PROJECT_NAME}_WITH_GL2PS)
 	ADD_DEFINITIONS(-DHAVE_GL2PS)
 
diff --git a/src/OpenGl/OpenGl_Workspace_2.cxx b/src/OpenGl/OpenGl_Workspace_2.cxx
index bff24b7..79910d1 100644
--- a/src/OpenGl/OpenGl_Workspace_2.cxx
+++ b/src/OpenGl/OpenGl_Workspace_2.cxx
@@ -31,10 +31,6 @@
 #ifdef HAVE_FREEIMAGE
   #include <NCollection_Handle.hxx>
   #include <FreeImagePlus.h>
-  #ifdef _MSC_VER
-  #pragma comment( lib, "FreeImage.lib" )
-  #pragma comment( lib, "FreeImagePlus.lib" )
-  #endif
   typedef NCollection_Handle<fipImage> FipHandle;
 #endif
 
-- 
1.7.10


More information about the rpmfusion-commits mailing list