1. Sync with master
[apps/core/preloaded/print-service.git] / TC / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(getppdvalue C)
3 OPTION(ENABLE_OM_TESTS "Build optionmapping tests" OFF)
4 SET(PACKAGE_NAME print-service)
5
6 SET(PREFIX /usr)
7 SET(BINDIR "${PREFIX}/bin")
8 SET(LIBDIR "${PREFIX}/lib")
9 SET(SRCS ppd_compare.c)
10
11 SET(DB_LIB_NAME ptdb)
12 SET(GETPPD getppd)
13 SET(GETPPD_SRCS getppd.c)
14
15 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
16 INCLUDE(FindPkgConfig)
17
18 IF(ENABLE_OM_TESTS)
19         # Sources for OptionMapping tests's binaries
20         SET(SRCS_OM_TEST
21                 test-automation.c)
22
23         # OptionMapping test automation
24         # Sources for OptionMapping library
25         SET(SRCS_OM_LIB
26                 ../src/pt_optionmapping.c
27                 ../src/pt_optionkeywords.c
28                 ../src/pt_utils.c
29                 ../src/pt_ppd.c)
30
31         SET(VERSION_MAJOR 1)
32         SET(VERSION "${VERSION_MAJOR}.0.1")
33         SET(OPMAP_LIB_NAME opmap)
34
35         SET(OPMAP_TEST_NAME test-opmap)
36         SET(OPMAP_TEST_SCRIPT print-test-opmap.sh)
37         SET(HP_LIST        hp.list)
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/)
42
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})
46
47         pkg_check_modules(test_pkgs REQUIRED ecore eina dlog)
48
49         FOREACH(flag ${test_pkgs_LDFLAGS})
50         SET(OPMAP_TEST_LDFLAGS "${flag} ${OPMAP_TEST_LDFLAGS}")
51         ENDFOREACH(flag)
52
53         SET(OPMAP_TEST_LDFLAGS "${OPMAP_TEST_LDFLAGS} -lcups")
54
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})
59
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")
66
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)
75
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}")
80 ENDFOREACH(flag)
81 # This is workaround for CMP0004 of CMAKE
82 SET(GETPPD_TEST_LDFLAGS "${GETPPD_TEST_LDFLAGS} -ldlog")
83
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})
88
89
90 # Compile and install getppdvalue
91 SET(getppdvalue_LDFLAGS "-Wl -lcups")
92
93 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
94 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${getppdvalue_LDFLAGS})
95
96 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
97 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/ppd_test.sh DESTINATION ${BINDIR})
98