diff --git a/CMakeLists.txt b/CMakeLists.txt index c39d6f3..ea301f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,6 @@ project(KImageFormats) find_package(ECM 0.0.9 REQUIRED NO_MODULE) -# Add our own CMake dir for FindOpenEXR.cmake set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) include(KDEInstallDirs) diff --git a/cmake/FindOpenEXR.cmake b/cmake/FindOpenEXR.cmake index b4ae656..abf305f 100644 --- a/cmake/FindOpenEXR.cmake +++ b/cmake/FindOpenEXR.cmake @@ -89,7 +89,7 @@ set(OpenEXR_INCLUDE_DIRS ${OpenEXR_INCLUDE_DIR}) include(FeatureSummary) set_package_properties(OpenEXR PROPERTIES URL http://www.openexr.com/ - DESCRIPTION "A library for reading and writing OpenEXR high dynamic-range image files") + DESCRIPTION "A library for handling OpenEXR high dynamic-range image files") mark_as_advanced( OpenEXR_INCLUDE_DIR diff --git a/src/imageformats/CMakeLists.txt b/src/imageformats/CMakeLists.txt index 053054a..320f3bb 100644 --- a/src/imageformats/CMakeLists.txt +++ b/src/imageformats/CMakeLists.txt @@ -1,161 +1,139 @@ # NB: the desktop files are installed for the benefit of KImageIO in KDE4Support. -find_package(Jasper) -set_package_properties(Jasper PROPERTIES DESCRIPTION "Support for JPEG-2000 images" - URL "http://www.ece.uvic.ca/~mdadams/jasper" - TYPE OPTIONAL - ) - -find_package(OpenEXR) -set_package_properties(OpenEXR PROPERTIES - TYPE OPTIONAL - PURPOSE "QImage plugin for OpenEXR images" -) - +# Required for OpenEXR set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE_ENABLE_EXCEPTIONS}") -configure_file(config-kimgio.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kimgio.h ) -check_include_files(sys/types.h HAVE_SYS_TYPES_H) -check_include_files(stdint.h HAVE_STDINT_H) +################################## -if(JASPER_FOUND) +add_library(kimg_dds MODULE dds.cpp) +target_link_libraries(kimg_dds Qt5::Gui) - include_directories( ${JASPER_INCLUDE_DIR} ) - set(kimg_jp2_LIB_SRCS jp2.cpp) - add_library(kimg_jp2 MODULE ${kimg_jp2_LIB_SRCS}) - set_target_properties(kimg_jp2 PROPERTIES PREFIX "") - target_link_libraries(kimg_jp2 Qt5::Gui ${JASPER_LIBRARIES} ) - - install(TARGETS kimg_jp2 DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) - install(FILES jp2.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) - -endif() +install(TARGETS kimg_dds DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) +install(FILES dds.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) ################################## # EPS support depends on the gs utility; non-UNIX systems are unlikely to have # this available in PATH if (UNIX) - find_package(Qt5PrintSupport 5.2.0 NO_MODULE) - set_package_properties(Qt5PrintSupport PROPERTIES - DESCRIPTION "Support for Qt printing, necessary for the EPS format" - TYPE OPTIONAL - ) + find_package(Qt5PrintSupport 5.2.0 NO_MODULE) + set_package_properties(Qt5PrintSupport PROPERTIES + PURPOSE "Required for the QImage plugin for EPS images" + TYPE OPTIONAL + ) - if (Qt5PrintSupport_FOUND) - set(kimg_eps_LIB_SRCS eps.cpp) - add_library(kimg_eps MODULE ${kimg_eps_LIB_SRCS}) - set_target_properties(kimg_eps PROPERTIES PREFIX "") - target_link_libraries(kimg_eps Qt5::Gui Qt5::PrintSupport) + if (Qt5PrintSupport_FOUND) + add_library(kimg_eps MODULE eps.cpp) + target_link_libraries(kimg_eps Qt5::Gui Qt5::PrintSupport) - install(TARGETS kimg_eps DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) - install(FILES eps.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) - endif() + install(TARGETS kimg_eps DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) + install(FILES eps.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) + endif() endif() ################################## -set(kimg_pcx_LIB_SRCS pcx.cpp) -add_library(kimg_pcx MODULE ${kimg_pcx_LIB_SRCS}) -set_target_properties(kimg_pcx PROPERTIES PREFIX "") -target_link_libraries(kimg_pcx Qt5::Gui) +find_package(Jasper) +set_package_properties(Jasper PROPERTIES + DESCRIPTION "A library for handling JPEG-2000 images" + PURPOSE "Required for the QImage plugin for JPEG-2000 images" + URL "http://www.ece.uvic.ca/~mdadams/jasper" + TYPE OPTIONAL +) -install(TARGETS kimg_pcx DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) -install(FILES pcx.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) +check_include_files(sys/types.h HAVE_SYS_TYPES_H) +check_include_files(stdint.h HAVE_STDINT_H) +configure_file(config-jp2.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-jp2.h) + +if(JASPER_FOUND) + add_library(kimg_jp2 MODULE jp2.cpp) + target_compile_options(kimg_jp2 PRIVATE ${JASPER_DEFINITIONS}) + target_include_directories(kimg_jp2 PRIVATE ${JASPER_INCLUDE_DIR}) + target_link_libraries(kimg_jp2 Qt5::Gui ${JASPER_LIBRARIES}) + + install(TARGETS kimg_jp2 DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) + install(FILES jp2.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) +endif() ################################## -set(kimg_tga_LIB_SRCS tga.cpp) -add_library(kimg_tga MODULE ${kimg_tga_LIB_SRCS}) -set_target_properties(kimg_tga PROPERTIES PREFIX "") -target_link_libraries(kimg_tga Qt5::Gui) - -install(TARGETS kimg_tga DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) -install(FILES tga.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) - -################################## - -set(kimg_ras_LIB_SRCS ras.cpp) -add_library(kimg_ras MODULE ${kimg_ras_LIB_SRCS}) -set_target_properties(kimg_ras PROPERTIES PREFIX "") -target_link_libraries(kimg_ras Qt5::Gui) - -install(TARGETS kimg_ras DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) -install(FILES ras.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) - -################################## - -set(kimg_rgb_LIB_SRCS rgb.cpp) -add_library(kimg_rgb MODULE ${kimg_rgb_LIB_SRCS}) -set_target_properties(kimg_rgb PROPERTIES PREFIX "") -target_link_libraries(kimg_rgb Qt5::Gui) - -install(TARGETS kimg_rgb DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) -install(FILES rgb.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) - -################################## - -set(kimg_xcf_LIB_SRCS xcf.cpp) -add_library(kimg_xcf MODULE ${kimg_xcf_LIB_SRCS}) -set_target_properties(kimg_xcf PROPERTIES PREFIX "") -target_link_libraries(kimg_xcf Qt5::Gui) - -install(TARGETS kimg_xcf DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) -install(FILES xcf.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) - -################################## - -set(kimg_dds_LIB_SRCS dds.cpp) -add_library(kimg_dds MODULE ${kimg_dds_LIB_SRCS}) -set_target_properties(kimg_dds PROPERTIES PREFIX "") -target_link_libraries(kimg_dds Qt5::Gui) - -install(TARGETS kimg_dds DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) -install(FILES dds.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) - -################################## - -set(kimg_psd_LIB_SRCS psd.cpp) -add_library(kimg_psd MODULE ${kimg_psd_LIB_SRCS}) -set_target_properties(kimg_psd PROPERTIES PREFIX "") -target_link_libraries(kimg_psd Qt5::Gui) - -install(TARGETS kimg_psd DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) -install(FILES psd.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) - -################################## - -set(kimg_xview_LIB_SRCS xview.cpp) -add_library(kimg_xview MODULE ${kimg_xview_LIB_SRCS}) -set_target_properties(kimg_xview PROPERTIES PREFIX "") -target_link_libraries(kimg_xview Qt5::Gui) - -install(TARGETS kimg_xview DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) -install(FILES xv.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) - -################################## +find_package(OpenEXR) +set_package_properties(OpenEXR PROPERTIES + TYPE OPTIONAL + PURPOSE "Required for the QImage plugin for OpenEXR images" +) if(OpenEXR_FOUND) - - include_directories(${OpenEXR_INCLUDE_DIR}) - add_definitions(${OpenEXR_DEFINITIONS}) - set(kimg_exr_LIB_SRCS exr.cpp) - add_library(kimg_exr MODULE ${kimg_exr_LIB_SRCS}) - set_target_properties(kimg_exr PROPERTIES PREFIX "") + add_library(kimg_exr MODULE exr.cpp) + target_compile_options(kimg_exr PRIVATE ${OpenEXR_DEFINITIONS}) + target_include_directories(kimg_exr PRIVATE ${OpenEXR_INCLUDE_DIR}) target_link_libraries(kimg_exr Qt5::Gui ${OpenEXR_LIBRARIES}) - install(TARGETS kimg_exr DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) - install(FILES exr.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) - + install(TARGETS kimg_exr DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) + install(FILES exr.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) endif() ################################## -set(kimg_pic_LIB_SRCS pic_read.cpp pic_write.cpp pic.cpp) -add_library(kimg_pic MODULE ${kimg_pic_LIB_SRCS}) -set_target_properties(kimg_pic PROPERTIES PREFIX "") +add_library(kimg_pcx MODULE pcx.cpp) +target_link_libraries(kimg_pcx Qt5::Gui) + +install(TARGETS kimg_pcx DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) +install(FILES pcx.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) + +################################## + +add_library(kimg_pic MODULE pic_read.cpp pic_write.cpp pic.cpp) target_link_libraries(kimg_pic Qt5::Gui) -install(TARGETS kimg_pic DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/ ) -install(FILES pic.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/ ) +install(TARGETS kimg_pic DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) +install(FILES pic.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) + +################################## + +add_library(kimg_psd MODULE psd.cpp) +target_link_libraries(kimg_psd Qt5::Gui) + +install(TARGETS kimg_psd DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) +install(FILES psd.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) + +################################## + +add_library(kimg_ras MODULE ras.cpp) +target_link_libraries(kimg_ras Qt5::Gui) + +install(TARGETS kimg_ras DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) +install(FILES ras.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) + +################################## + +add_library(kimg_rgb MODULE rgb.cpp) +target_link_libraries(kimg_rgb Qt5::Gui) + +install(TARGETS kimg_rgb DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) +install(FILES rgb.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) + +################################## + +add_library(kimg_tga MODULE tga.cpp) +target_link_libraries(kimg_tga Qt5::Gui) + +install(TARGETS kimg_tga DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) +install(FILES tga.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) + +################################## + +add_library(kimg_xcf MODULE xcf.cpp) +target_link_libraries(kimg_xcf Qt5::Gui) + +install(TARGETS kimg_xcf DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) +install(FILES xcf.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) + +################################## + +add_library(kimg_xview MODULE xview.cpp) +target_link_libraries(kimg_xview Qt5::Gui) + +install(TARGETS kimg_xview DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) +install(FILES xv.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) diff --git a/src/imageformats/config-kimgio.h.cmake b/src/imageformats/config-jp2.h.cmake similarity index 100% rename from src/imageformats/config-kimgio.h.cmake rename to src/imageformats/config-jp2.h.cmake diff --git a/src/imageformats/exr.cpp b/src/imageformats/exr.cpp index f8c70b7..df17c5a 100644 --- a/src/imageformats/exr.cpp +++ b/src/imageformats/exr.cpp @@ -200,13 +200,6 @@ bool EXRHandler::read(QImage *outImage) } } -bool EXRHandler::write(const QImage &image) -{ - // TODO: stub - Q_UNUSED(image); - return false; -} - bool EXRHandler::canRead(QIODevice *device) { if (!device) { diff --git a/src/imageformats/exr.h b/src/imageformats/exr.h index 3ae9e16..7bf9dc4 100644 --- a/src/imageformats/exr.h +++ b/src/imageformats/exr.h @@ -20,7 +20,6 @@ public: virtual bool canRead() const; virtual bool read(QImage *outImage); - virtual bool write(const QImage &image); static bool canRead(QIODevice *device); }; diff --git a/src/imageformats/jp2.cpp b/src/imageformats/jp2.cpp index 5be5063..445e95f 100644 --- a/src/imageformats/jp2.cpp +++ b/src/imageformats/jp2.cpp @@ -7,7 +7,7 @@ #include "jp2.h" -#include +#include #if HAVE_SYS_TYPES_H #include