diff --git a/CMakeLists.txt b/CMakeLists.txt
index 937aa51..ed21032 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,3 +1,6 @@
+cmake_minimum_required(VERSION 2.6)
+
+option (WITH_RAWZOR "Build with Rawzor support" ON)
add_subdirectory (rtexif)
add_subdirectory (rtengine)
diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt
index f07fd96..410dcf3 100755
--- a/rtengine/CMakeLists.txt
+++ b/rtengine/CMakeLists.txt
@@ -1,29 +1,37 @@
-cmake_minimum_required(VERSION 2.6)
find_package(PkgConfig)
-pkg_check_modules (GLIB2 glib-2.0>=2.16)
-pkg_check_modules (GLIBMM glibmm-2.4>=2.16)
-pkg_check_modules (SIGC sigc++-2.0)
+pkg_check_modules (GLIB2 REQUIRED glib-2.0>=2.16)
+pkg_check_modules (GTHREAD REQUIRED gthread-2.0>=2.16)
+pkg_check_modules (GOBJECT REQUIRED gobject-2.0>=2.16)
+pkg_check_modules (GLIBMM REQUIRED glibmm-2.4>=2.16)
+pkg_check_modules (SIGC REQUIRED sigc++-2.0)
IF (WIN32)
- SET (EXTRA_LIBDIR "../lib; ../rawzor_win")
- SET (EXTRA_INCDIR "../winclude; ../rawzor_win")
- SET (EXTRA_LIB "ws2_32 ../lib/libiptcdata.a ../lib/libjpeg.a ../lib/libpng.a ../lib/libtiff.a ../lib/libz.a ../rawzor_win/rwz_sdk_s.a")
+ SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../lib; ${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_win")
+ SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../winclude; ${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_win")
+ SET (EXTRA_LIB "ws2_32 ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libiptcdata.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libjpeg.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libpng.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libtiff.a ${CMAKE_CURRENT_SOURCE_DIR}/../lib/libz.a")
+ if (WITH_RAWZOR)
ADD_DEFINITIONS (-DRAWZOR_SUPPORT)
+ SET (EXTRA_LIB "${EXTRA_LIB} ${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_win/rwz_sdk_s.a")
+ endif (WITH_RAWZOR)
ELSE (WIN32)
+ if (WITH_RAWZOR)
IF (CMAKE_SIZEOF_VOID_P EQUAL 4)
- SET (EXTRA_INCDIR "../rawzor_lin32")
- SET (EXTRA_LIBDIR "../rawzor_lin32")
+ SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin32")
+ SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin32")
ELSEIF (CMAKE_SIZEOF_VOID_P EQUAL 8)
- SET (EXTRA_INCDIR "../rawzor_lin64")
- SET (EXTRA_LIBDIR "../rawzor_lin64")
+ SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin64")
+ SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin64")
ENDIF (CMAKE_SIZEOF_VOID_P EQUAL 4)
- SET (EXTRA_LIB "iptcdata -lrwz_sdk")
+ SET (EXTRA_LIB "-lrwz_sdk")
ADD_DEFINITIONS (-DRAWZOR_SUPPORT)
+ endif (WITH_RAWZOR)
+ pkg_check_modules (IPTCDATA REQUIRED libiptcdata)
+ pkg_check_modules (LCMS REQUIRED lcms)
ENDIF (WIN32)
-include_directories (. ../rtexif ${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS})
-link_directories (../rtexif ${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS})
+include_directories (${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../rtexif ${EXTRA_INCDIR} ${GTHREAD_INCLUDE_DIRS} ${GOBJECT_INCLUDE_DIRS} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS} ${IPTCDATA_INCLUDE_DIRS} ${LCMS_INCLUDE_DIRS})
+link_directories (${CMAKE_CURRENT_SOURCE_DIR}/../rtexif ${EXTRA_LIBDIR} ${GTHREAD_LIBRARY_DIRS} ${GOBJECT_LIBRARY_DIRS} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS} ${IPTCDATA_LIBRARY_DIRS} ${LCMS_LIBRARY_DIRS})
add_library (rtengine SHARED colortemp.cc curves.cc dcraw.cc gauss.cc iccstore.cc
image8.cc image16.cc imagedata.cc imageio.cc improcfun.cc init.cc dcrop.cc
@@ -36,14 +44,9 @@ set_target_properties (rtengine PROPERTIES COMPILE_FLAGS "-O3 -ffast-math -fexpe
#add_executable (rtcmd rtetest.cc)
#add_executable (ppmap pparamsmap.cc)
-target_link_libraries (rtengine rtexif lcms ${EXTRA_LIB} gthread-2.0 gobject-2.0 ${GLIB2_LIBRARIES} ${GLIBMM_LIBRARIES})
+target_link_libraries (rtengine rtexif ${EXTRA_LIB} ${GOBJECT_LIBRARIES} ${GTHREAD_LIBRARIES} ${GLIB2_LIBRARIES} ${GLIBMM_LIBRARIES} ${LCMS_LIBRARIES} ${IPTCDATA_LIBRARIES})
#target_link_libraries (rtcmd rtengine)
#target_link_libraries (ppmap rtengine)
-IF (WIN32)
-install (FILES librtengine.dll DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
- PERMISSIONS OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ )
-ELSE (WIN32)
-install (FILES librtengine.so DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
+install (TARGETS rtengine DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ )
-ENDIF (WIN32)
diff --git a/rtengine/bilateral2.h b/rtengine/bilateral2.h
index 4aea99d..1ba7d0e 100755
--- a/rtengine/bilateral2.h
+++ b/rtengine/bilateral2.h
@@ -25,9 +25,7 @@
#include <alignedbuffer.h>
#include <mytime.h>
#include <gauss.h>
-
-#define MAX(a,b) ((a)<(b)?(b):(a))
-#define MIN(a,b) ((a)>(b)?(b):(a))
+#include <glibmm.h>
#define ELEM(a,b) (src[i-a][j-b] * ec[src[i-a][j-b]-src[i][j]+0x10000])
#define SULY(a,b) (ec[src[i-a][j-b]-src[i][j]+0x10000])
diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc
index dc57777..3057493 100755
--- a/rtengine/dcraw.cc
+++ b/rtengine/dcraw.cc
@@ -25,6 +25,7 @@
/*RT*/int ciff_base, ciff_len, exif_base, pre_filters;
/*RT*/#undef MAX
/*RT*/#undef MIN
+/*RT*/#undef ABS
/*RT*/#define NO_LCMS
/*RT*/#define NO_JPEG
/*RT*/#define LOCALTIME
diff --git a/rtengine/hlmultipliers.cc b/rtengine/hlmultipliers.cc
index ea44742..eafa43d 100755
--- a/rtengine/hlmultipliers.cc
+++ b/rtengine/hlmultipliers.cc
@@ -20,8 +20,6 @@
#include <stdio.h>
#include <rawimagesource.h>
-#define MAX(a,b) ((a)<(b)?(b):(a))
-
#define MAXVAL 0xffff
#define CLIP(a) ((a)>0?((a)<MAXVAL?(a):MAXVAL):0)
diff --git a/rtengine/imagedata.cc b/rtengine/imagedata.cc
index dd5055a..3b172fc 100755
--- a/rtengine/imagedata.cc
+++ b/rtengine/imagedata.cc
@@ -19,7 +19,9 @@
#include <imagedata.h>
#include <iptcpairs.h>
#include <glib/gstdio.h>
+#ifdef RAWZOR_SUPPORT
#include <rwz_sdk.h>
+#endif
using namespace rtengine;
diff --git a/rtengine/myfile.cc b/rtengine/myfile.cc
index e1d2ac7..5202870 100755
--- a/rtengine/myfile.cc
+++ b/rtengine/myfile.cc
@@ -19,7 +19,9 @@
#include <myfile.h>
#include <cstdarg>
#include <glibmm.h>
+#ifdef RAWZOR_SUPPORT
#include <rwz_sdk.h>
+#endif
IMFILE* fopen (const char* fname) {
diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt
index 1245c45..31ddd6f 100755
--- a/rtgui/CMakeLists.txt
+++ b/rtgui/CMakeLists.txt
@@ -1,42 +1,42 @@
find_package(PkgConfig)
-pkg_check_modules (GLIB2 glib-2.0>=2.16)
-pkg_check_modules (GLIBMM glibmm-2.4>=2.16)
-pkg_check_modules (GTK gtk+-2.0>=2.12)
-pkg_check_modules (GTKMM gtkmm-2.4>=2.12)
-pkg_check_modules (GIO gio-2.0>=2.16)
-pkg_check_modules (GIOMM giomm-2.4>=2.12)
+pkg_check_modules (GLIB2 REQUIRED glib-2.0>=2.16)
+pkg_check_modules (GLIBMM REQUIRED glibmm-2.4>=2.16)
+pkg_check_modules (GTK REQUIRED gtk+-2.0>=2.12)
+pkg_check_modules (GTKMM REQUIRED gtkmm-2.4>=2.12)
+pkg_check_modules (GIO REQUIRED gio-2.0>=2.16)
+pkg_check_modules (GIOMM REQUIRED giomm-2.4>=2.12)
-SET (BASESOURCEFILES
+SET (BASESOURCEFILES
batchtoolpanelcoord.cc paramsedited.cc cropwindow.cc previewhandler.cc previewwindow.cc navigator.cc indclippedpanel.cc filterpanel.cc
cursormanager.cc rtwindow.cc renamedlg.cc recentbrowser.cc placesbrowser.cc filepanel.cc editorpanel.cc batchqueuepanel.cc
ilabel.cc thumbbrowserbase.cc adjuster.cc filebrowserentry.cc filebrowser.cc filethumbnailbuttonset.cc
- cachemanager.cc cacheimagedata.cc
+ cachemanager.cc cacheimagedata.cc
clipboard.cc thumbimageupdater.cc bqentryupdater.cc
coarsepanel.cc cacorrection.cc colorshift.cc hlrec.cc chmixer.cc
colorboost.cc resize.cc icmpanel.cc crop.cc shadowshighlights.cc
- colordenoise.cc
- exifpanel.cc
- sharpening.cc
+ colordenoise.cc
+ exifpanel.cc
+ sharpening.cc
whitebalance.cc vignetting.cc rotate.cc distortion.cc
- crophandler.cc curveeditor.cc dirbrowser.cc
+ crophandler.cc curveeditor.cc dirbrowser.cc
filecatalog.cc
histogrampanel.cc history.cc imagearea.cc
imageareapanel.cc iptcpanel.cc lcurve.cc lumadenoise.cc main.cc
multilangmgr.cc mycurve.cc options.cc
preferences.cc profilepanel.cc saveasdlg.cc
saveformatpanel.cc splash.cc
- thumbnail.cc tonecurve.cc toolbar.cc
+ thumbnail.cc tonecurve.cc toolbar.cc
guiutils.cc zoompanel.cc toolpanelcoord.cc
thumbbrowserentrybase.cc batchqueueentry.cc
- batchqueue.cc lwbutton.cc lwbuttonset.cc
+ batchqueue.cc lwbutton.cc lwbuttonset.cc
batchqueuebuttonset.cc browserfilter.cc exiffiltersettings.cc
profilestore.cc partialpastedlg.cc)
IF (WIN32)
- SET (EXTRA_LIBDIR "../lib")
- SET (EXTRA_INCDIR "../winclude")
+ SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../lib")
+ SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../winclude")
SET (EXTRA_SRC "windirmonitor.cc myicon.o")
SET (EXTRA_LIB "ws2_32")
@@ -48,53 +48,79 @@ link_directories (. ../rtexif ${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIB
add_executable (rth windirmonitor.cc myicon.o ${BASESOURCEFILES})
+ set(IPTCDATA_LIBRARIES iptcdata)
+ set(LCMS_LIBRARIES liblcms.a)
+ set(GTHREAD_LIBRARIES gthread-2.0)
+ set(GOBJECTLIBRARIES gobject-2.0)
+ set(JPEG_LIBRARIES libjpeg.a)
+ set(ZLIB_LIBRARIES libz.a)
+ set(TIFF_LIBRARIES libtiff.a)
+ set(PNG_LIBRARIES libpng.a)
+
ELSE (WIN32)
+ pkg_check_modules (IPTCDATA REQUIRED libiptcdata)
+ pkg_check_modules (LCMS REQUIRED lcms)
+ pkg_check_modules (PNG REQUIRED libpng)
+ pkg_check_modules (GTHREAD REQUIRED gthread-2.0>=2.16)
+ pkg_check_modules (GOBJECT REQUIRED gobject-2.0>=2.16)
+ find_library(JPEG_LIBRARIES NAMES jpeg)
+ if (NOT JPEG_LIBRARIES)
+ message(SEND_ERROR "libjpeg was not found!")
+ endif (NOT JPEG_LIBRARIES)
+ find_library(TIFF_LIBRARIES NAMES tiff)
+ if (NOT TIFF_LIBRARIES)
+ message(SEND_ERROR "libtiff was not found!")
+ endif (NOT TIFF_LIBRARIES)
+ find_library(ZLIB_LIBRARIES NAMES z)
+ if (NOT ZLIB_LIBRARIES)
+ message(SEND_ERROR "libz was not found!")
+ endif (NOT ZLIB_LIBRARIES)
+ if (WITH_RAWZOR)
IF (CMAKE_SIZEOF_VOID_P EQUAL 4)
- SET (EXTRA_INCDIR "../rawzor_lin32")
- SET (EXTRA_LIBDIR "../rawzor_lin32")
+ SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin32")
+ SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin32")
ELSEIF (CMAKE_SIZEOF_VOID_P EQUAL 8)
- SET (EXTRA_INCDIR "../rawzor_lin64")
- SET (EXTRA_LIBDIR "../rawzor_lin64")
+ SET (EXTRA_INCDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin64")
+ SET (EXTRA_LIBDIR "${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin64")
ENDIF (CMAKE_SIZEOF_VOID_P EQUAL 4)
+ endif (WITH_RAWZOR)
-include_directories (/usr/local/lib ../rtengine . ../rtexif ${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS}
- ${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS} ${GIO_INCLUDE_DIRS} ${GIOMM_INCLUDE_DIRS})
-link_directories (. ../rtexif ${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS}
- ${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS} ${GIO_LIBRARY_DIRS} ${GIOMM_LIBRARY_DIRS})
+include_directories (/usr/local/lib ${CMAKE_CURRENT_SOURCE_DIR}/../rtengine . ${CMAKE_CURRENT_SOURCE_DIR}/../rtexif ${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS}
+ ${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS} ${GIO_INCLUDE_DIRS} ${GIOMM_INCLUDE_DIRS} ${IPTCDATA_INCLUDE_DIRS} ${LCMS_INCLUDE_DIRS} ${GTHREAD_INCLUDE_DIRS} ${GOBJECT_INCLUDE_DIRS} )
+link_directories (. ${CMAKE_CURRENT_SOURCE_DIR}/../rtexif ${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS}
+ ${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS} ${GIO_LIBRARY_DIRS} ${GIOMM_LIBRARY_DIRS} ${IPTCDATA_LIBRARY_DIRS} ${LCMS_LIBRARY_DIRS} ${GTHREAD_LIBRARY_DIRS} ${GOBJECT_LIBRARY_DIRS})
add_executable (rth ${BASESOURCEFILES})
ENDIF (WIN32)
-set_target_properties (rth PROPERTIES COMPILE_FLAGS "-O3")
-target_link_libraries (rth rtengine liblcms.a iptcdata libjpeg.a libpng.a libz.a libtiff.a ${EXTRA_LIB} gthread-2.0 gobject-2.0
- ${GLIB2_LIBRARIES} ${GLIBMM_LIBRARIES} ${GTK_LIBRARIES} ${GTKMM_LIBRARIES} ${GIO_LIBRARIES} ${GIOMM_LIBRARIES})
+set_target_properties (rth PROPERTIES COMPILE_FLAGS "-O3" OUTPUT_NAME rt)
+target_link_libraries (rth rtengine ${JPEG_LIBRARIES} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${TIFF_LIBRARIES} ${EXTRA_LIB} ${GOBJECT_LIBRARIES} ${GTHREAD_LIBRARIES}
+ ${GLIB2_LIBRARIES} ${GLIBMM_LIBRARIES} ${GTK_LIBRARIES} ${GTKMM_LIBRARIES} ${GIO_LIBRARIES} ${GIOMM_LIBRARIES} ${LCMS_LIBRARIES} ${IPTCDATA_LIBRARIES})
IF (WIN32)
- install (FILES rth.exe DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
- PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
- RENAME rt.exe)
- install (FILES ../rawzor_win/rwz_sdk_s.dll DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
+ install (TARGETS rth DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
+ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_win/rwz_sdk_s.dll DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
- install (FILES ../options.win DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/../options.win DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
RENAME options)
ELSE (WIN32)
- install (FILES rth DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
- PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
- RENAME rt)
- install (FILES ../options.lin DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
+ install (TARGETS rth DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
+ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/../options.lin DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
RENAME options)
- install (FILES ../rtstart DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/../rtstart DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
IF (CMAKE_SIZEOF_VOID_P EQUAL 4)
- install (FILES ../rawzor_lin32/librwz_sdk.so DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
- PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin32/librwz_sdk.so DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
+ PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
RENAME rwz_sdk.so)
ELSEIF (CMAKE_SIZEOF_VOID_P EQUAL 8)
- install (FILES ../rawzor_lin64/librwz_sdk.so DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
- PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
+ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/../rawzor_lin64/librwz_sdk.so DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../release
+ PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
RENAME rwz_sdk.so)
ENDIF (CMAKE_SIZEOF_VOID_P EQUAL 4)
ENDIF (WIN32)