594231971e930ed615d5178a22955088fed53147
[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 ${LIB_INSTALL_DIR})
9 SET(SRCS ppd_compare.c)
10 SET(ETC ${CMAKE_ETC})
11
12 SET(DB_LIB_NAME ptdb)
13 SET(GETPPD getppd)
14 SET(GETPPD_SRCS getppd.c)
15
16 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
17 INCLUDE(FindPkgConfig)
18
19 IF(ENABLE_OM_TESTS)
20         # Sources for OptionMapping tests's binaries
21         SET(SRCS_OM_TEST
22                 test-automation.c)
23
24         # OptionMapping test automation
25         # Sources for OptionMapping library
26         SET(SRCS_OM_LIB
27                 ../src/pt_optionmapping.c
28                 ../src/pt_optionkeywords.c
29                 ../src/pt_utils.c
30                 ../src/pt_ppd.c)
31
32         SET(VERSION_MAJOR 1)
33         SET(VERSION "${VERSION_MAJOR}.0.1")
34         SET(OPMAP_LIB_NAME opmap)
35
36         SET(OPMAP_TEST_NAME test-opmap)
37         SET(OPMAP_TEST_SCRIPT print-test-opmap.sh)
38         SET(HP_LIST        hp.list)
39         SET(HP_PRDLIST     hp_product.list)
40         SET(EPSON_LIST     epson.list)
41         SET(SAMSUNG_LIST   samsung.list)
42         SET(PRINTLIST_DIR ${ETC}/cups/ppd/)
43
44         ADD_LIBRARY(${OPMAP_LIB_NAME} SHARED ${SRCS_OM_LIB})
45         SET_TARGET_PROPERTIES(${OPMAP_LIB_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
46         SET_TARGET_PROPERTIES(${OPMAP_LIB_NAME} PROPERTIES VERSION ${VERSION})
47
48         pkg_check_modules(test_pkgs REQUIRED ecore eina dlog libtzplatform-config)
49
50         FOREACH(flag ${test_pkgs_LDFLAGS})
51         SET(OPMAP_TEST_LDFLAGS "${flag} ${OPMAP_TEST_LDFLAGS}")
52         ENDFOREACH(flag)
53
54         SET(OPMAP_TEST_LDFLAGS "${OPMAP_TEST_LDFLAGS} -lcups")
55
56         ADD_EXECUTABLE(${OPMAP_TEST_NAME} ${SRCS_OM_TEST})
57         TARGET_LINK_LIBRARIES(${OPMAP_TEST_NAME} ${OPMAP_LIB_NAME})
58         TARGET_LINK_LIBRARIES(${OPMAP_TEST_NAME} ${OPMAP_TEST_LDFLAGS})
59         TARGET_LINK_LIBRARIES(${OPMAP_TEST_NAME} ${DB_LIB_NAME})
60
61         ADD_CUSTOM_COMMAND(TARGET ${OPMAP_TEST_NAME} POST_BUILD
62                                            COMMAND ./create-printlist.sh "hp" ${CMAKE_SOURCE_DIR} ${HP_LIST}
63                                            COMMAND ./create-printlist.sh "hp_product" ${CMAKE_SOURCE_DIR} ${HP_PRDLIST}
64                                            COMMAND ./create-printlist.sh "epson" ${CMAKE_SOURCE_DIR} ${EPSON_LIST}
65                                            COMMAND ./create-printlist.sh "samsung" ${CMAKE_SOURCE_DIR} ${SAMSUNG_LIST}
66                                            COMMENT "Generate list of printers")
67
68         INSTALL(TARGETS ${OPMAP_TEST_NAME} DESTINATION ${BINDIR})
69         INSTALL(TARGETS ${OPMAP_LIB_NAME} LIBRARY DESTINATION ${LIBDIR})
70         INSTALL(FILES ${HP_LIST} DESTINATION ${PRINTLIST_DIR})
71         INSTALL(FILES ${HP_PRDLIST} DESTINATION ${PRINTLIST_DIR})
72         INSTALL(FILES ${SAMSUNG_LIST} DESTINATION ${PRINTLIST_DIR})
73         INSTALL(FILES ${EPSON_LIST} DESTINATION ${PRINTLIST_DIR})
74         INSTALL(FILES ${OPMAP_TEST_SCRIPT} DESTINATION ${BINDIR})
75 ENDIF(ENABLE_OM_TESTS)
76
77 # Compile and install getppd wrapper
78 pkg_check_modules(GETPPD_PKGS REQUIRED glib-2.0 dlog)
79 FOREACH(flag ${GETPPD_PKGS_LDFLAGS})
80         SET(GETPPD_TEST_LDFLAGS "${flag} ${GETPPD_TEST_LDFLAGS}")
81 ENDFOREACH(flag)
82 # This is workaround for CMP0004 of CMAKE
83 SET(GETPPD_TEST_LDFLAGS "${GETPPD_TEST_LDFLAGS} -ldlog")
84
85 ADD_EXECUTABLE(${GETPPD} ${GETPPD_SRCS})
86 TARGET_LINK_LIBRARIES(${GETPPD} ${DB_LIB_NAME})
87 TARGET_LINK_LIBRARIES(${GETPPD} ${GETPPD_TEST_LDFLAGS})
88 INSTALL(TARGETS ${GETPPD} DESTINATION ${BINDIR})
89
90
91 # Compile and install getppdvalue
92 SET(getppdvalue_LDFLAGS "-Wl,-lcups")
93
94 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
95 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${getppdvalue_LDFLAGS})
96
97 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
98 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/ppd_test.sh DESTINATION ${BINDIR})
99