scanned-image-extractor/scannerExtract/CMakeLists.txt

244 lines
7.6 KiB
CMake
Raw Normal View History

2024-01-29 23:24:37 +00:00
#######################################################################
# This file is part of Scanned Image Extract.
#
# Scanned Image Extract is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Scanned Image Extract is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Scanned Image Extract. If not, see <http://www.gnu.org/licenses/>
#
#
# Copyright (C) 2015, Dominik Rueß; info@dominik-ruess.de
######################################################################/
cmake_minimum_required (VERSION 2.8)
set (PROJECTNAME "scannedImageExtractor")
project (${PROJECTNAME} CXX)
include ( ${CMAKE_CURRENT_LIST_DIR}/../CMakeModules/settings.cmake )
find_package (versioning REQUIRED)
find_package (misc REQUIRED)
find_package (liblbfgs REQUIRED)
set (QT_USE_QTMAIN TRUE)
set (QT_USE_SVG TRUE)
set (QT_USE_NETWORK TRUE)
set (QT_MORE_COMPONENTS QtSvg QtNetwork)
include ( ${CMAKE_CURRENT_LIST_DIR}/../CMakeModules/qt5.cmake )
find_package (Qt5Network REQUIRED)
find_package (Qt5Svg REQUIRED)
if (OPENCV2)
find_package (OpenCV REQUIRED core imgproc highgui)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DOPENCV2")
else()
find_package (OpenCV REQUIRED core imgproc imgcodecs)
endif()
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
include_directories( ${OpenCV_INCLUDE_DIRS} )
find_package(OpenMP)
if (OPENMP_FOUND)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
set(CMAKE_AUTOMOC ON)
include_directories (
.
${CMAKE_CURRENT_BINARY_DIR}
)
set ( ${PROJECTNAME}_SOURCES
mainwindow.cpp
imageboundary.cpp
main.cpp
imagescene.cpp
preloadsource.cpp
copytargets.cpp
about.cpp
version_scannerExtract.cpp
settingsdialog.cpp
extracttargets.cpp
TargetImage.cpp
sourcefile.cpp
helpdialog.cpp
)
set ( ${PROJECTNAME}_HEADERS
mainwindow.h
extracttargets.h
imageboundary.h
imagescene.h
settings.h
sourcefile.h
TargetImage.h
preloadsource.h
copytargets.h
about.h
version_scannerExtract.h
settingsdialog.h
helpdialog.h
)
set (${PROJECTNAME}_RESSOURCES
scannerIcons.qrc
)
set (${PROJECTNAME}_FORMS
mainwindow.ui
about.ui
settingsdialog.ui
helpdialog.ui
)
include ( ${CMAKE_CURRENT_LIST_DIR}/../CMakeModules/addtranslation.cmake )
# for this application, actually build the ressource file and include it
set(RESOURCE_NAME "translations")
set(MAPPED_DIR ${CMAKE_CURRENT_BINARY_DIR})
include ( ${CMAKE_CURRENT_LIST_DIR}/../CMakeModules/onTheFlyResourceFile.cmake )
QT5_WRAP_UI (${PROJECTNAME}_FORMS_HEADERS ${${PROJECTNAME}_FORMS})
QT5_ADD_RESOURCES (${PROJECTNAME}_RESOURCES_RCC ${${PROJECTNAME}_RESSOURCES})
# set exe icon
IF(WIN32)
IF( MINGW )
# resource compilation for MinGW
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/scannerImageExtractor_ico.o
COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/scannerImageExtractor_ico.rc
-o ${CMAKE_CURRENT_BINARY_DIR}/scannerImageExtractor_ico.o )
SET(${PROJECTNAME}_SOURCES ${${PROJECTNAME}_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/scannerImageExtractor_ico.o)
ELSE( MINGW )
SET(${PROJECTNAME}_SOURCES ${${PROJECTNAME}_SOURCES} scannerImageExtractor_ico.rc)
ENDIF( MINGW )
ENDIF(WIN32)
add_executable (${PROJECTNAME} WIN32
${${PROJECTNAME}_HEADERS}
${${PROJECTNAME}_SOURCES}
${${PROJECTNAME}_HEADERS_MOC}
${${PROJECTNAME}_FORMS_HEADERS}
${${PROJECTNAME}_RESOURCES_RCC}
${${PROJECTNAME}_TRANSLATION_FILES}
)
qt5_use_modules (${PROJECTNAME} Network Widgets Svg)
TARGET_LINK_LIBRARIES (${PROJECTNAME}
${MY_LIBS}
${QT_LIBRARIES}
${OpenCV_LIBS}
${LIBLBFGS_LIBRARY}
)
if(WIN32 OR MINGW)
TARGET_LINK_LIBRARIES (${PROJECTNAME}
Qt5::WinMain
)
endif()
install(TARGETS ${PROJECTNAME}
RUNTIME DESTINATION bin COMPONENT main
)
if (WIN32)
INSTALL(FILES
${LIBLBFGS_LIBRARY_DLL}
${OpenCV_DIR}/bin/libopencv_core300.dll
${OpenCV_DIR}/bin/libopencv_imgproc300.dll
${OpenCV_DIR}/bin/libopencv_imgcodecs300.dll
DESTINATION bin
COMPONENT main
)
endif(WIN32)
# add nice icon for Gnome and KDE and add to default programs for cameras
include ( ${CMAKE_CURRENT_LIST_DIR}/../CMakeModules/installDesktop.cmake )
#set(sizes "16x16" "22x22" "24x24" "36x36" "42x42" "72x72" "96x96" "32x32" "48x48" "64x64" "128x128" "80x80")
set(sizes "128x128" "256x256")
INSTALL_DESKTOP_LOCAL(" %f"
"Scanned Image Extractor"
""
"ico"
"${sizes}"
"Terminal=false
Type=Application
MimeType=x-content/image-dcf;
Categories=Graphics\;Photography\;GNOME\;KDE\;
X-GNOME-FullName=Scanned Image Extractor\n")
include ( ${CMAKE_CURRENT_LIST_DIR}/../CMakeModules/installQt5.cmake )
set ( PACKAGE_NAME ${PROJECTNAME} )
set ( MAIN_DISPLAY_NAME "Scanned Image Extractor")
set ( USE_COMPONENTS main )
SET ( VERSION_MAJOR 0 )
SET ( VERSION_MINOR 2 )
set ( VERSION_PATCH ${CURRENT_PATCH_NUMBER})
IF(WIN32)
# There is a bug in NSI that does not handle full unix paths properly. Make
# sure there is at least one set of four (4) backlasshes.
set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/images\\\\logo.ico")
SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/images\\\\logo.png")
SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\scannedImageExtractor.exe")
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}Scanned Image Extractor")
Endif(WIN32)
IF(UNIX)
message("using ${CMAKE_SYSTEM_PROCESSOR}")
# http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#DEB_.28UNIX_only.29
SET(CPACK_SET_DESTDIR "on")
SET(CPACK_DEBIAN_PACKAGE_NAME "scannedImageExtractor")
SET(CPACK_PACKAGING_INSTALL_PREFIX "/tmp")
if(MAKE_RPM)
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST}
/usr/local
/usr/local/bin
/usr
/usr/share
/usr/share/applications
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/256x256/apps
/usr/share/icons/hicolor/256x256
/usr/share/icons/hicolor
/usr/share/icons/hicolor/128x128
/usr/share/icons/hicolor/128x128/apps
/usr/share/icons/hicolor/256x256/apps
/usr/share/icons/hicolor/256x256)
SET(CPACK_GENERATOR "RPM")
SET(CPACK_RPM_PACKAGE_LICENSE "GPL v3")
SET(CPACK_RPM_PACKAGE_VENDOR "Dominik Rueß <scannerExtract@dominik-ruess.de>")
SET(CPACK_RPM_PACKAGE_REQUIRES "opencv-core >= 2.4, qt5-qtsvg >= 5.0, qt5-qtbase >= 5.0, liblbfgs >= 1.0")
SET(CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
else()
SET(CPACK_GENERATOR "DEB")
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt5core5a, libqt5network5, libqt5gui5, libqt5svg5, libqt5widgets5, liblbfgs0, libopencv-core2.4, libopencv-highgui2.4, libopencv-imgproc2.4")
SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
SET(CPACK_DEBIAN_PACKAGE_SECTION "kde")
SET(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
SET(CPACK_PACKAGE_CONTACT "scannerExtract@dominik-ruess.de")
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Dominik Rueß <scannerExtract@dominik-ruess.de>")
endif()
ENDIF()
include ( ${CMAKE_CURRENT_LIST_DIR}/../CMakeModules/buildPackage.cmake )