a9e30e03610d4ea3ccbef3119c7449933e91cea4
[platform/framework/web/web-provider.git] / src / Core / CMakeLists.txt
1 # Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved
2 #
3 #    Licensed under the Flora License, Version 1.0 (the "License");
4 #    you may not use this file except in compliance with the License.
5 #    You may obtain a copy of the License at
6 #
7 #        http://floralicense.org/license/
8 #
9 #    Unless required by applicable law or agreed to in writing, software
10 #    distributed under the License is distributed on an "AS IS" BASIS,
11 #    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 #    See the License for the specific language governing permissions and
13 #    limitations under the License.
14 #
15 # @author   Yunchan Cho (yunchan.cho@samsung.com)
16
17 SET(TARGET_NAME ${TARGET_CORE})
18 SET(TARGET_CORE_BUFFER web-provider-core-buffer)
19 SET(TARGET_CORE_VIEW web-provider-core-view)
20 SET(TARGET_CORE_SERVICE web-provider-core-service)
21 SET(TARGET_CORE_UTIL web-provider-core-util)
22 SET(DEPS ${TARGET_NAME}_DEPS)
23
24 PKG_CHECK_MODULES(${DEPS}
25     ecore
26     ewebkit2
27     dlog
28     REQUIRED
29 )
30 ADD_DEFINITIONS(${${DEPS}_CFLAGS})
31
32 SET(SRCS
33     ${CMAKE_CURRENT_SOURCE_DIR}/Box.cpp
34     ${CMAKE_CURRENT_SOURCE_DIR}/BoxManager.cpp
35     ${CMAKE_CURRENT_SOURCE_DIR}/BoxState.cpp
36     ${CMAKE_CURRENT_SOURCE_DIR}/BoxUpdateTimer.cpp
37     ${CMAKE_CURRENT_SOURCE_DIR}/BoxSchemeHandler.cpp
38 )
39
40 SET(HEADERS
41     ${${DEPS}_INCLUDE_DIRS}
42     ${CMAKE_CURRENT_SOURCE_DIR}
43 )
44 INCLUDE_DIRECTORIES(${HEADERS})
45
46 ADD_LIBRARY(${TARGET_NAME} SHARED ${SRCS})
47
48 SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
49     COMPILE_FLAGS -fPIC
50     LINK_FLAGS "-Wl,--as-needed -Wl,--hash-style=both"
51 )
52
53 SET_TARGET_PROPERTIES(${TARGET_NAME} 
54     PROPERTIES
55     SOVERSION ${CMAKE_PROJECT_API_VERSION}
56     VERSION ${CMAKE_PROJECT_VERSION}
57 )
58
59 TARGET_LINK_LIBRARIES(${TARGET_NAME} 
60     ${${DEPS}_LIBRARIES}
61     "-Wl,--whole-archive"
62     ${TARGET_CORE_VIEW}
63     ${TARGET_CORE_BUFFER}
64     ${TARGET_CORE_SERVICE}
65     ${TARGET_CORE_UTIL}
66     "-Wl,--no-whole-archive"
67 )
68
69 ADD_SUBDIRECTORY(Buffer)
70 ADD_SUBDIRECTORY(View)
71 ADD_SUBDIRECTORY(Service)
72 ADD_SUBDIRECTORY(Util)
73
74 INSTALL(TARGETS ${TARGET_NAME}
75     DESTINATION lib
76     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
77     GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
78 )
79
80 GET_FILENAME_COMPONENT(CURRENT_DIR_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME)
81
82 INSTALL_FILE(IBox.h include/${PROJECT_NAME}/${CURRENT_DIR_NAME}) 
83 INSTALL_FILE(BoxData.h include/${PROJECT_NAME}/${CURRENT_DIR_NAME}) 
84 INSTALL_FILE(IBoxManager.h include/${PROJECT_NAME}/${CURRENT_DIR_NAME}) 
85 INSTALL_FILE(BoxManager.h include/${PROJECT_NAME}/${CURRENT_DIR_NAME}) 
86 INSTALL_FILE(BoxSchemeHandler.h include/${PROJECT_NAME}/${CURRENT_DIR_NAME})