1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
3 OPTION(ENABLE_OM_TESTS "Build optionmapping tests" OFF)
4 SET(PACKAGE_NAME print-service)
7 SET(BINDIR "${PREFIX}/bin")
8 SET(LIBDIR "${PREFIX}/lib")
9 SET(SRCS ppd_compare.c)
13 SET(GETPPD_SRCS getppd.c)
15 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
16 INCLUDE(FindPkgConfig)
19 # Sources for OptionMapping tests's binaries
23 # OptionMapping test automation
24 # Sources for OptionMapping library
26 ../src/pt_optionmapping.c
27 ../src/pt_optionkeywords.c
32 SET(VERSION "${VERSION_MAJOR}.0.1")
33 SET(OPMAP_LIB_NAME opmap)
35 SET(OPMAP_TEST_NAME test-opmap)
36 SET(OPMAP_TEST_SCRIPT print-test-opmap.sh)
38 SET(HP_PRDLIST hp_product.list)
39 SET(EPSON_LIST epson.list)
40 SET(SAMSUNG_LIST samsung.list)
41 SET(PRINTLIST_DIR /opt/etc/cups/ppd/)
43 ADD_LIBRARY(${OPMAP_LIB_NAME} SHARED ${SRCS_OM_LIB})
44 SET_TARGET_PROPERTIES(${OPMAP_LIB_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
45 SET_TARGET_PROPERTIES(${OPMAP_LIB_NAME} PROPERTIES VERSION ${VERSION})
47 pkg_check_modules(test_pkgs REQUIRED ecore eina dlog)
49 FOREACH(flag ${test_pkgs_LDFLAGS})
50 SET(OPMAP_TEST_LDFLAGS "${flag} ${OPMAP_TEST_LDFLAGS}")
53 SET(OPMAP_TEST_LDFLAGS "${OPMAP_TEST_LDFLAGS} -lcups")
55 ADD_EXECUTABLE(${OPMAP_TEST_NAME} ${SRCS_OM_TEST})
56 TARGET_LINK_LIBRARIES(${OPMAP_TEST_NAME} ${OPMAP_LIB_NAME})
57 TARGET_LINK_LIBRARIES(${OPMAP_TEST_NAME} ${OPMAP_TEST_LDFLAGS})
58 TARGET_LINK_LIBRARIES(${OPMAP_TEST_NAME} ${DB_LIB_NAME})
60 ADD_CUSTOM_COMMAND(TARGET ${OPMAP_TEST_NAME} POST_BUILD
61 COMMAND ./create-printlist.sh "hp" ${CMAKE_SOURCE_DIR} ${HP_LIST}
62 COMMAND ./create-printlist.sh "hp_product" ${CMAKE_SOURCE_DIR} ${HP_PRDLIST}
63 COMMAND ./create-printlist.sh "epson" ${CMAKE_SOURCE_DIR} ${EPSON_LIST}
64 COMMAND ./create-printlist.sh "samsung" ${CMAKE_SOURCE_DIR} ${SAMSUNG_LIST}
65 COMMENT "Generate list of printers")
67 INSTALL(TARGETS ${OPMAP_TEST_NAME} DESTINATION ${BINDIR})
68 INSTALL(TARGETS ${OPMAP_LIB_NAME} LIBRARY DESTINATION ${LIBDIR})
69 INSTALL(FILES ${HP_LIST} DESTINATION ${PRINTLIST_DIR})
70 INSTALL(FILES ${HP_PRDLIST} DESTINATION ${PRINTLIST_DIR})
71 INSTALL(FILES ${SAMSUNG_LIST} DESTINATION ${PRINTLIST_DIR})
72 INSTALL(FILES ${EPSON_LIST} DESTINATION ${PRINTLIST_DIR})
73 INSTALL(FILES ${OPMAP_TEST_SCRIPT} DESTINATION ${BINDIR})
74 ENDIF(ENABLE_OM_TESTS)
76 # Compile and install getppd wrapper
77 pkg_check_modules(GETPPD_PKGS REQUIRED glib-2.0 dlog)
78 FOREACH(flag ${GETPPD_PKGS_LDFLAGS})
79 SET(GETPPD_TEST_LDFLAGS "${flag} ${GETPPD_TEST_LDFLAGS}")
81 # This is workaround for CMP0004 of CMAKE
82 SET(GETPPD_TEST_LDFLAGS "${GETPPD_TEST_LDFLAGS} -ldlog")
84 ADD_EXECUTABLE(${GETPPD} ${GETPPD_SRCS})
85 TARGET_LINK_LIBRARIES(${GETPPD} ${DB_LIB_NAME})
86 TARGET_LINK_LIBRARIES(${GETPPD} ${GETPPD_TEST_LDFLAGS})
87 INSTALL(TARGETS ${GETPPD} DESTINATION ${BINDIR})
90 # Compile and install getppdvalue
91 SET(getppdvalue_LDFLAGS "-Wl -lcups")
93 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
94 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${getppdvalue_LDFLAGS})
96 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
97 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/ppd_test.sh DESTINATION ${BINDIR})