-CMAKE_MINIMUM_REQUIRED(VERSION 3.25.1)
+cmake_minimum_required(VERSION 3.25.1)
-PROJECT("sane-kds-s2000w-net")
+project(sane-kds-s2000w-net)
-SET(PROJECT_VERSION_MAJOR 1)
-SET(PROJECT_VERSION_MINOR 1)
-SET(PROJECT_VERSION_PATCH 20)
-SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
-FIND_PACKAGE(Git)
-IF(GIT_FOUND)
- EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} branch --show-current
+set(PROJECT_VERSION_MAJOR 1)
+set(PROJECT_VERSION_MINOR 1)
+set(PROJECT_VERSION_PATCH 20)
+set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
+find_package(Git)
+if(GIT_FOUND)
+ execute_process(COMMAND ${GIT_EXECUTABLE} branch --show-current
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE CURRENT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE)
- EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} rev-list --count master..${CURRENT_BRANCH}
+ execute_process(COMMAND ${GIT_EXECUTABLE} rev-list --count master..${CURRENT_BRANCH}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE PROJECT_VERSION_TWEAK
OUTPUT_STRIP_TRAILING_WHITESPACE)
- IF(NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Release")
- SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${PROJECT_VERSION_TWEAK})
- ENDIF()
-ENDIF()
-MESSAGE(STATUS "PROJECT_VERSION: ${PROJECT_VERSION}")
-
-OPTION(IMAGEMAGICK "without ImageMagick library" OFF)
-MESSAGE(STATUS "IMAGEMAGICK: ${IMAGEMAGICK}")
-
-FIND_LIBRARY(SANE NAMES sane REQUIRED ONLY_CMAKE_FIND_ROOT_PATH)
-MESSAGE(STATUS "find sane: ${SANE}")
-FIND_LIBRARY(MATH NAMES m REQUIRED)
-MESSAGE(STATUS "find math: ${MATH}")
-FIND_LIBRARY(PTHREAD NAMES pthread REQUIRED)
-MESSAGE(STATUS "find pthread: ${PTHREAD}")
-FIND_LIBRARY(CONFUSE NAMES confuse REQUIRED)
-MESSAGE(STATUS "find confuse: ${CONFUSE}")
-FIND_PACKAGE(CURL REQUIRED)
-MESSAGE(STATUS "find curl: ${CURL_LIBRARY}")
-FIND_PACKAGE(JSON-C REQUIRED)
-MESSAGE(STATUS "find json-c: ${JSON\-C_DIR}")
-
-IF(IMAGEMAGICK)
- FIND_PACKAGE(ImageMagick COMPONENTS MagickCore REQUIRED)
- MESSAGE(STATUS "find ImageMagick: ${ImageMagick_LIBRARIES}")
- MESSAGE(STATUS "ImageMagick_VERSION_STRING: ${ImageMagick_VERSION_STRING}")
- STRING(SUBSTRING ${ImageMagick_VERSION_STRING} 0 1 IMAGE_MAGICK_MAJOR)
- MESSAGE(STATUS "define IMAGE_MAGICK_MAJOR: ${IMAGE_MAGICK_MAJOR}")
- ADD_COMPILE_DEFINITIONS(IMAGE_MAGICK_MAJOR=${IMAGE_MAGICK_MAJOR})
- IF(${IMAGE_MAGICK_MAJOR} EQUAL 7)
- LIST(APPEND ImageMagick_INCLUDE_DIRS "/usr/include/x86_64-linux-gnu/ImageMagick-7")
- ENDIF()
- MESSAGE(STATUS "ImageMagick_INCLUDE_DIRS: ${ImageMagick_INCLUDE_DIRS}")
-ELSE()
- FIND_LIBRARY(netpbm NAMES netpbm REQUIRED)
- MESSAGE(STATUS "find netpbm: ${netpbm}")
- FIND_PACKAGE(JPEG REQUIRED)
- MESSAGE(STATUS "find jpeg: ${JPEG_LIBRARIES}")
- FIND_PACKAGE(TIFF REQUIRED)
- MESSAGE(STATUS "find tiff: ${TIFF_LIBRARIES}")
-ENDIF()
-
-IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
- SET(CMAKE_INSTALL_PREFIX "/" CACHE PATH "install prefix" FORCE)
-ENDIF()
-MESSAGE(STATUS "CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}")
-SET(CMAKE_LIBRARY_PATH "usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}" CACHE PATH "library path")
-MESSAGE(STATUS "CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH}")
-SET(CONFIG_INSTALL_PATH "etc/sane.d" CACHE PATH "config path")
-MESSAGE(STATUS "CONFIG_INSTALL_PATH ${CONFIG_INSTALL_PATH}")
-SET(CONFIG_FILE ${CMAKE_INSTALL_PREFIX}/${CONFIG_INSTALL_PATH}/kds_s2000w_net.conf)
-MESSAGE(STATUS "CONFIG_FILE ${CONFIG_FILE}")
-
-CONFIGURE_FILE(config.h.in config.h)
-CONFIGURE_FILE(debian/conffiles.in conffiles)
-
-SET(SOURCES
- "config.h"
- "kds_s2000w_net.c"
- "kds_s2000w_option_descriptors.c"
- "kds_s2000w_handler.c"
- "kds_s2000w_handler_opts.c"
- "kds_s2000w_client.c"
- "kds_s2000w_debug.c"
- "kds_s2000w_config.c"
- "kds_s2000w_heartbeat.c"
- "kds_s2000w_image_type_check.c"
- "kds_s2000w_pixel_converter.c")
-
-IF(IMAGEMAGICK)
- LIST(APPEND SOURCES "kds_s2000w_image_converter_magick.c")
-ELSE()
- LIST(APPEND SOURCES "kds_s2000w_image_converter_netpbm.c")
-ENDIF()
-
-ADD_LIBRARY("sane-kds_s2000w_net" SHARED ${SOURCES})
-SET_TARGET_PROPERTIES("sane-kds_s2000w_net" PROPERTIES VERSION 1)
-TARGET_INCLUDE_DIRECTORIES("sane-kds_s2000w_net"
+ if(NOT ${CMAKE_BUILD_TYPE} STREQUAL Release)
+ set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${PROJECT_VERSION_TWEAK})
+ endif()
+endif()
+message(STATUS "PROJECT_VERSION: ${PROJECT_VERSION}")
+
+option(IMAGEMAGICK "without ImageMagick library" OFF)
+message(STATUS "IMAGEMAGICK: ${IMAGEMAGICK}")
+
+find_library(SANE NAMES sane REQUIRED ONLY_CMAKE_FIND_ROOT_PATH)
+message(STATUS "find sane: ${SANE}")
+find_library(MATH NAMES m REQUIRED)
+message(STATUS "find math: ${MATH}")
+find_library(PTHREAD NAMES pthread REQUIRED)
+message(STATUS "find pthread: ${PTHREAD}")
+find_library(CONFUSE NAMES confuse REQUIRED)
+message(STATUS "find confuse: ${CONFUSE}")
+find_package(CURL REQUIRED)
+message(STATUS "find curl: ${CURL_LIBRARY}")
+find_package(JSON-C REQUIRED)
+message(STATUS "find json-c: ${JSON\-C_DIR}")
+
+if(IMAGEMAGICK)
+ find_package(ImageMagick COMPONENTS MagickCore REQUIRED)
+ message(STATUS "find ImageMagick: ${ImageMagick_LIBRARIES}")
+ message(STATUS "ImageMagick_VERSION_STRING: ${ImageMagick_VERSION_STRING}")
+ string(SUBSTRING ${ImageMagick_VERSION_STRING} 0 1 IMAGE_MAGICK_MAJOR)
+ message(STATUS "define IMAGE_MAGICK_MAJOR: ${IMAGE_MAGICK_MAJOR}")
+ add_compile_definitions(IMAGE_MAGICK_MAJOR=${IMAGE_MAGICK_MAJOR})
+ if(${IMAGE_MAGICK_MAJOR} EQUAL 7)
+ list(APPEND ImageMagick_INCLUDE_DIRS
+ /usr/include/x86_64-linux-gnu/ImageMagick-7)
+ endif()
+ message(STATUS "ImageMagick_INCLUDE_DIRS: ${ImageMagick_INCLUDE_DIRS}")
+else()
+ find_library(netpbm NAMES netpbm REQUIRED)
+ message(STATUS "find netpbm: ${netpbm}")
+ find_package(JPEG REQUIRED)
+ message(STATUS "find jpeg: ${JPEG_LIBRARIES}")
+ find_package(TIFF REQUIRED)
+ message(STATUS "find tiff: ${TIFF_LIBRARIES}")
+endif()
+
+if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+ set(CMAKE_INSTALL_PREFIX / CACHE PATH "install prefix" FORCE)
+endif()
+message(STATUS "CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}")
+set(CMAKE_LIBRARY_PATH usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} CACHE PATH "library path")
+message(STATUS "CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH}")
+set(CONFIG_INSTALL_PATH etc/sane.d CACHE PATH "config path")
+message(STATUS "CONFIG_INSTALL_PATH ${CONFIG_INSTALL_PATH}")
+set(CONFIG_FILE ${CMAKE_INSTALL_PREFIX}/${CONFIG_INSTALL_PATH}/kds_s2000w_net.conf)
+message(STATUS "CONFIG_FILE ${CONFIG_FILE}")
+
+configure_file(config.h.in config.h)
+configure_file(debian/conffiles.in conffiles)
+
+set(SOURCES
+ config.h
+ kds_s2000w_net.c
+ kds_s2000w_option_descriptors.c
+ kds_s2000w_handler.c
+ kds_s2000w_handler_opts.c
+ kds_s2000w_client.c
+ kds_s2000w_debug.c
+ kds_s2000w_config.c
+ kds_s2000w_heartbeat.c
+ kds_s2000w_image_type_check.c
+ kds_s2000w_pixel_converter.c)
+
+if(IMAGEMAGICK)
+ list(APPEND SOURCES kds_s2000w_image_converter_magick.c)
+else()
+ list(APPEND SOURCES kds_s2000w_image_converter_netpbm.c)
+endif()
+
+add_library(sane-kds_s2000w_net SHARED ${SOURCES})
+set_target_properties(sane-kds_s2000w_net PROPERTIES VERSION 1)
+target_include_directories(sane-kds_s2000w_net
PRIVATE
${CMAKE_CURRENT_BINARY_DIR})
-TARGET_LINK_LIBRARIES("sane-kds_s2000w_net"
+target_link_libraries(sane-kds_s2000w_net
${MATH}
${PTHREAD}
${CONFUSE}
${CURL_LIBRARY}
json-c)
-IF(IMAGEMAGICK)
- TARGET_INCLUDE_DIRECTORIES("sane-kds_s2000w_net"
+if(IMAGEMAGICK)
+ target_include_directories(sane-kds_s2000w_net
PRIVATE
${ImageMagick_INCLUDE_DIRS})
- TARGET_LINK_LIBRARIES("sane-kds_s2000w_net"
+ target_link_libraries(sane-kds_s2000w_net
${ImageMagick_LIBRARIES})
-ELSE()
- TARGET_LINK_LIBRARIES("sane-kds_s2000w_net"
+else()
+ target_link_libraries(sane-kds_s2000w_net
${netpbm}
${JPEG_LIBRARIES}
${TIFF_LIBRARIES})
-ENDIF()
+endif()
-ADD_LIBRARY("sane-kds_s2000w_net-static"
+add_library(sane-kds_s2000w_net-static
STATIC
${SOURCES}
${CMAKE_CURRENT_BINARY_DIR}/config.h)
-SET_TARGET_PROPERTIES("sane-kds_s2000w_net-static" PROPERTIES OUTPUT_NAME "sane-kds_s2000w_net")
-TARGET_INCLUDE_DIRECTORIES("sane-kds_s2000w_net-static"
+set_target_properties(sane-kds_s2000w_net-static PROPERTIES OUTPUT_NAME sane-kds_s2000w_net)
+target_include_directories(sane-kds_s2000w_net-static
PRIVATE
${CMAKE_CURRENT_BINARY_DIR})
-TARGET_LINK_LIBRARIES("sane-kds_s2000w_net-static"
+target_link_libraries(sane-kds_s2000w_net-static
${MATH}
${PTHREAD}
${CONFUSE}
${CURL_LIBRARY}
json-c)
-IF(IMAGEMAGICK)
- TARGET_INCLUDE_DIRECTORIES("sane-kds_s2000w_net-static"
+if(IMAGEMAGICK)
+ target_include_directories(sane-kds_s2000w_net-static
PRIVATE
${ImageMagick_INCLUDE_DIRS})
- TARGET_LINK_LIBRARIES("sane-kds_s2000w_net-static"
+ target_link_libraries(sane-kds_s2000w_net-static
${ImageMagick_LIBRARIES})
-ELSE()
- TARGET_LINK_LIBRARIES("sane-kds_s2000w_net-static"
+else()
+ target_link_libraries(sane-kds_s2000w_net-static
${netpbm}
${JPEG_LIBRARIES}
${TIFF_LIBRARIES})
-ENDIF()
+endif()
-INSTALL(TARGETS "sane-kds_s2000w_net" "sane-kds_s2000w_net-static"
+install(TARGETS sane-kds_s2000w_net sane-kds_s2000w_net-static
DESTINATION ${CMAKE_LIBRARY_PATH}/sane)
-install(FILES "kds_s2000w_net.conf"
+install(FILES kds_s2000w_net.conf
DESTINATION ${CONFIG_INSTALL_PATH})
-SET(CPACK_GENERATOR "DEB")
-SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
-SET(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
-SET(CPACK_DEBIAN_PACKAGE_NAME ${PROJECT_NAME})
-SET(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_HOST_SYSTEM_PROCESSOR})
-SET(CPACK_DEBIAN_FILE_NAME ${PROJECT_NAME}_${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-1${EXTRA_VERSION}_${CMAKE_HOST_SYSTEM_PROCESSOR}.deb)
-SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
-SET(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
-SET(CPACK_DEBIAN_PACKAGE_RELEASE "1")
-SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Bastian Dehn <hhaalo@arcor.de")
-SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
-SET(CPACK_DEBIAN_PACKAGE_SECTION "graphics")
-SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION "sane network backend for kodak alaris s2000w series")
+set(CPACK_GENERATOR DEB)
+set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
+set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
+set(CPACK_DEBIAN_PACKAGE_NAME ${PROJECT_NAME})
+set(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_HOST_SYSTEM_PROCESSOR})
+set(CPACK_DEBIAN_FILE_NAME ${PROJECT_NAME}_${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-1${EXTRA_VERSION}_${CMAKE_HOST_SYSTEM_PROCESSOR}.deb)
+set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
+set(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
+set(CPACK_DEBIAN_PACKAGE_RELEASE 1)
+set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Bastian Dehn <hhaalo@arcor.de>")
+set(CPACK_DEBIAN_PACKAGE_PRIORITY optional)
+set(CPACK_DEBIAN_PACKAGE_SECTION graphics)
+set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "sane network backend for kodak alaris s2000w series")
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ${CMAKE_CURRENT_BINARY_DIR}/conffiles;
${CMAKE_CURRENT_SOURCE_DIR}/debian/postinst;
${CMAKE_CURRENT_SOURCE_DIR}/debian/postrm)
-INCLUDE(CPack)
+include(CPack)