Release version 1.3.13
[platform/core/appfw/appcore-widget.git] / CMakeLists.txt
index 13129fc..7dc63e6 100644 (file)
@@ -1,59 +1,53 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(appcore-widget C)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
+
+PROJECT(appcore-widget)
 
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
-SET(EXEC_PREFIX "\${prefix}")
+SET(BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
+SET(LIBDIR ${LIB_INSTALL_DIR})
 SET(INCLUDEDIR "\${prefix}/include")
-SET(VERSION_MAJOR 1)
-SET(VERSION "${VERSION_MAJOR}.1")
 
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+## Compiler flags
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -g -Wall -Werror")
 
-ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+## Linker flags
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed,--gc-sections -pie")
 
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -Wall")
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Werror")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/")
 
-SET(CMAKE_SKIP_BUILD_RPATH TRUE)
+## Targets
+SET(TARGET_WIDGET_BASE "appcore-widget-base")
+SET(TARGET_WIDGET_APPLICATION "capi-appfw-widget-application")
 
-#################################################################
-# Build appcore-widget Library
-# ------------------------------
-SET(APPCORE_WIDGET "capi-appfw-widget-application")
+ENABLE_TESTING()
+SET(TARGET_WIDGET_APPLICATION_UNIT_TEST "appcore-widget-unit-test")
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkg_widget REQUIRED
-               aul
-               dlog
-               capi-appfw-app-control
-               appcore-common
-               capi-appfw-app-common
-               vconf
-               elementary
-               vconf-internal-keys
-               widget_service
-               capi-system-info
-               ecore-wayland
-               tizen-remote-surface-client
-               screen_connector_provider
-               )
-FOREACH(flag ${pkg_widget_CFLAGS})
-       SET(EXTRA_CFLAGS_widget "${EXTRA_CFLAGS_widget} ${flag}")
-ENDFOREACH(flag)
-
-AUX_SOURCE_DIRECTORY(src SOURCES)
-ADD_LIBRARY(${APPCORE_WIDGET} SHARED ${SOURCES})
-SET_TARGET_PROPERTIES(${APPCORE_WIDGET} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${APPCORE_WIDGET} PROPERTIES VERSION ${VERSION})
-SET_TARGET_PROPERTIES(${APPCORE_WIDGET} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_widget})
-TARGET_LINK_LIBRARIES(${APPCORE_WIDGET} ${pkg_widget_LDFLAGS} "-ldl -Wl,--no-undefined")
-
-INSTALL(TARGETS ${APPCORE_WIDGET} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${APPCORE_WIDGET}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-
-INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/appfw/
-       FILES_MATCHING
-       PATTERN "*.h"
-       )
\ No newline at end of file
+INCLUDE(ApplyPkgConfig)
+
+ADD_DEFINITIONS("-DPROJECT_TAG=\"TIZEN_APPCORE_WIDGET\"")
+
+## Find all needed packages once
+PKG_CHECK_MODULES(BUNDLE_DEPS REQUIRED bundle)
+PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog)
+PKG_CHECK_MODULES(APPCORE_COMMON_DEPS REQUIRED appcore-common)
+PKG_CHECK_MODULES(WIDGET_SERVICE_DEPS REQUIRED widget_service)
+PKG_CHECK_MODULES(SYSTEM_INFO_DEPS REQUIRED capi-system-info)
+PKG_CHECK_MODULES(ECORE_WL2_DEPS REQUIRED ecore-wl2)
+PKG_CHECK_MODULES(SCREEN_CONNECTOR_PROVIDER_DEPS REQUIRED screen_connector_provider)
+PKG_CHECK_MODULES(APPCORE_MULTIWINDOW_DEPS REQUIRED appcore-multiwindow)
+PKG_CHECK_MODULES(AUL_DEP REQUIRED aul)
+PKG_CHECK_MODULES(ELEMENTARY_DEP REQUIRED elementary)
+PKG_CHECK_MODULES(CAPI_APP_COMMON_DEP REQUIRED capi-appfw-app-common)
+PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0)
+PKG_CHECK_MODULES(GOBJECT_DEPS REQUIRED gobject-2.0)
+PKG_CHECK_MODULES(GMOCK_DEPS REQUIRED gmock)
+
+ADD_SUBDIRECTORY(src)
+ADD_SUBDIRECTORY(test)
+
+
+
+
+
+