-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+
+PROJECT(screen-connector)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-zdefs")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_C_FLAGS_RELEASE "-O2")
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_C_FLAGS} -std=c++17")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+
+## TARGET
+SET(TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE
+ "screen_connector_launcher_service")
+SET(TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS
+ "screen_connector_launcher_service_evas")
+SET(TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH
+ "screen_connector_shared_widget_launch")
+SET(TARGET_SCREEN_CONNECTOR_PROVIDER
+ "screen_connector_provider")
+SET(TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE
+ "screen_connector_remote_surface")
+SET(TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_MOCK
+ "screen_connector_remote_surface_mock")
+SET(TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS
+ "screen_connector_remote_surface_evas")
+SET(TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS_MOCK
+ "screen_connector_remote_surface_evas_mock")
+SET(TARGET_SCREEN_CONNECTOR_WATCHER
+ "screen_connector_watcher")
+SET(TARGET_SCREEN_CONNECTOR_WATCHER_EVAS
+ "screen_connector_watcher_evas")
ENABLE_TESTING()
+SET(TARGET_SCREEN_CONNECTOR_UNIT_TESTS
+ "gtest-screen-connector")
+
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/")
+
+INCLUDE(FindPkgConfig)
+INCLUDE(ApplyPkgConfig)
+
+PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0)
+PKG_CHECK_MODULES(GMOCK_DEPS REQUIRED gmock)
+PKG_CHECK_MODULES(LIBTBM_DEPS REQUIRED libtbm)
+PKG_CHECK_MODULES(AUL_DEPS REQUIRED aul)
+PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog)
+PKG_CHECK_MODULES(ECORE_WL2_DEPS REQUIRED ecore-wl2)
+PKG_CHECK_MODULES(ELEMENTARY_DEPS REQUIRED elementary)
+PKG_CHECK_MODULES(TIZEN_REMOTE_SURFACE_CLIENT_DEPS REQUIRED tizen-remote-surface-client)
+PKG_CHECK_MODULES(TZSH_LAUNCHER_SERVICE_DEPS REQUIRED tzsh-launcher-service)
+PKG_CHECK_MODULES(TZSH_SHARED_WIDGET_LAUNCH_DEPS REQUIRED tzsh-shared-widget-launch)
+PKG_CHECK_MODULES(WAYLAND_CLIENT_DEPS REQUIRED wayland-client)
+PKG_CHECK_MODULES(WAYLAND_TBM_CLIENT_DEPS REQUIRED wayland-tbm-client)
+
ADD_SUBDIRECTORY(screen_connector_launcher_service)
ADD_SUBDIRECTORY(screen_connector_launcher_service_evas)
-ADD_SUBDIRECTORY(screen_connector_shared_widget_launch)
ADD_SUBDIRECTORY(screen_connector_provider)
ADD_SUBDIRECTORY(screen_connector_remote_surface)
-ADD_SUBDIRECTORY(screen_connector_remote_surface_mock)
ADD_SUBDIRECTORY(screen_connector_remote_surface_evas)
ADD_SUBDIRECTORY(screen_connector_remote_surface_evas_mock)
+ADD_SUBDIRECTORY(screen_connector_remote_surface_mock)
+ADD_SUBDIRECTORY(screen_connector_shared_widget_launch)
ADD_SUBDIRECTORY(screen_connector_watcher)
ADD_SUBDIRECTORY(screen_connector_watcher_evas)
-ADD_SUBDIRECTORY(unittest)
-
-ADD_DEPENDENCIES(screen_connector_launcher_service_evas screen_connector_launcher_service)
-ADD_DEPENDENCIES(screen_connector_remote_surface_evas screen_connector_remote_surface)
-ADD_DEPENDENCIES(screen_connector_watcher screen_connector_remote_surface)
-ADD_DEPENDENCIES(screen_connector_watcher_evas screen_connector_watcher screen_connector_remote_surface_evas)
-ADD_DEPENDENCIES(gtest-screen-connector screen_connector_watcher)
-
-SET(SCREEN_CONNECTOR_UNIT_TESTS gtest-screen-connector)
-ADD_TEST(NAME ${SCREEN_CONNECTOR_UNIT_TESTS} COMMAND ${SCREEN_CONNECTOR_UNIT_TESTS}
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/unittest)
+ADD_SUBDIRECTORY(test)
--- /dev/null
+# Copyright (c) 2022 Samsung Electronics Co., Ltd All Rights Reserved
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+#
+# This function applies external (out of source tree) dependencies
+# to given target. Arguments are:
+# TARGET - valid cmake target
+# PRIVACY - dependency can be inherited by dependent targets or not:
+# PUBLIC - this should be used by default, cause compile/link flags passing
+# PRIVATE - do not passes any settings to dependent targets,
+# may be usefull for static libraries from the inside of the project
+# Argument ARGV2 and following are supposed to be names of checked pkg config
+# packages. This function will use variables created by check_pkg_modules().
+# - ${DEP_NAME}_LIBRARIES
+# - ${DEP_NAME}_INCLUDE_DIRS
+# - ${DEP_NAME}_CFLAGS
+#
+FUNCTION(APPLY_PKG_CONFIG TARGET PRIVACY)
+ MATH(EXPR DEST_INDEX "${ARGC}-1")
+ FOREACH(I RANGE 2 ${DEST_INDEX})
+ IF(NOT ${ARGV${I}}_FOUND)
+ MESSAGE(FATAL_ERROR "Not found dependency - ${ARGV${I}}_FOUND")
+ ENDIF(NOT ${ARGV${I}}_FOUND)
+ TARGET_LINK_LIBRARIES(${TARGET} ${PRIVACY} "${${ARGV${I}}_LIBRARIES}")
+ TARGET_INCLUDE_DIRECTORIES(${TARGET} ${PRIVACY} SYSTEM "${${ARGV${I}}_INCLUDE_DIRS}")
+ STRING(REPLACE ";" " " CFLAGS_STR "${${ARGV${I}}_CFLAGS}")
+ SET(CFLAGS_LIST ${CFLAGS_STR})
+ SEPARATE_ARGUMENTS(CFLAGS_LIST)
+ FOREACH(OPTION ${CFLAGS_LIST})
+ TARGET_COMPILE_OPTIONS(${TARGET} ${PRIVACY} ${OPTION})
+ ENDFOREACH(OPTION)
+ SET_TARGET_PROPERTIES(${TARGET} PROPERTIES SKIP_BUILD_RPATH true)
+ ENDFOREACH(I RANGE 2 ${DEST_INDEX})
+ENDFUNCTION(APPLY_PKG_CONFIG TARGET PRIVACY)
%endif
%check
-export LD_LIBRARY_PATH=../screen_connector_remote_surface
+export LD_LIBRARY_PATH=../../screen_connector_remote_surface
ctest -V
%if 0%{?gcov:1}
%files -n %{name}_watcher-devel
%{_includedir}/screen_connector_watcher/*.h
%{_libdir}/pkgconfig/screen_connector_watcher.pc
-%attr(0644,root,root) %{_libdir}/%{name}_watcher.so
+%{_libdir}/%{name}_watcher.so
#################################################
%files -n %{name}_provider-devel
%{_includedir}/screen_connector_provider/*.h
%{_libdir}/pkgconfig/screen_connector_provider.pc
-%attr(0644,root,root) %{_libdir}/%{name}_provider.so
+%{_libdir}/%{name}_provider.so
#################################################
%files -n %{name}_watcher_evas-devel
%{_includedir}/screen_connector_watcher_evas/*.h
%{_libdir}/pkgconfig/screen_connector_watcher_evas.pc
-%attr(0644,root,root) %{_libdir}/%{name}_watcher_evas.so
+%{_libdir}/%{name}_watcher_evas.so
#################################################
# libscreen_connector_remote_surface
%files -n %{name}_remote_surface-devel
%{_includedir}/screen_connector_remote_surface/*.h
%{_libdir}/pkgconfig/screen_connector_remote_surface.pc
-%attr(0644,root,root) %{_libdir}/%{name}_remote_surface.so
+%{_libdir}/%{name}_remote_surface.so
#################################################
# libscreen_connector_remote_surface_mock
%files -n %{name}_remote_surface_evas-devel
%{_includedir}/screen_connector_remote_surface_evas/*.h
%{_libdir}/pkgconfig/screen_connector_remote_surface_evas.pc
-%attr(0644,root,root) %{_libdir}/%{name}_remote_surface_evas.so
+%{_libdir}/%{name}_remote_surface_evas.so
#################################################
# libscreen_connector_remote_surface_evas_mock
%files -n %{name}_launcher_service-devel
%{_includedir}/screen_connector_launcher_service/*
%{_libdir}/pkgconfig/screen_connector_launcher_service.pc
-%attr(0644,root,root) %{_libdir}/%{name}_launcher_service.so
+%{_libdir}/%{name}_launcher_service.so
#################################################
# libscreen_connector_launcher_service_evas
%files -n %{name}_launcher_service_evas-devel
%{_includedir}/screen_connector_launcher_service_evas/*
%{_libdir}/pkgconfig/screen_connector_launcher_service_evas.pc
-%attr(0644,root,root) %{_libdir}/%{name}_launcher_service_evas.so
+%{_libdir}/%{name}_launcher_service_evas.so
#################################################
# libscreen_connector_shared_widget_launch
%files -n %{name}_shared_widget_launch-devel
%{_includedir}/screen_connector_shared_widget_launch/*
%{_libdir}/pkgconfig/screen_connector_shared_widget_launch.pc
-%attr(0644,root,root) %{_libdir}/%{name}_shared_widget_launch.so
+%{_libdir}/%{name}_shared_widget_launch.so
# End of a file
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(screen_connector_launcher_service CXX)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR "${MAJORVER}")
-SET(VERSION "${FULLVER}")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(screen_connector_launcher_service REQUIRED
- aul
- dlog
- ecore-wl2
- glib-2.0
- libtbm
- tizen-remote-surface-client
- tzsh-launcher-service
- wayland-client
- wayland-tbm-client
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}
+ SCREEN_CONNECTOR_LAUNCHER_SERVICE_SRCS)
+
+ADD_LIBRARY(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE} SHARED
+ ${SCREEN_CONNECTOR_LAUNCHER_SERVICE_SRCS})
+
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE}
+ PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE}
+ PROPERTIES VERSION ${FULLVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE}
+ PROPERTIES COMPILE_FLAGS ${CLFAGS} "-fpic")
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE}
+ PROPERTIES LINK_FLAGS "-lpthread")
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+APPLY_PKG_CONFIG(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE} PUBLIC
+ AUL_DEPS
+ DLOG_DEPS
+ ECORE_WL2_DEPS
+ GLIB_DEPS
+ LIBTBM_DEPS
+ TIZEN_REMOTE_SURFACE_CLIENT_DEPS
+ TZSH_LAUNCHER_SERVICE_DEPS
+ WAYLAND_CLIENT_DEPS
+ WAYLAND_TBM_CLIENT_DEPS
)
-FOREACH(flag ${screen_connector_launcher_service_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++11")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
-
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCES)
-ADD_LIBRARY (${PROJECT_NAME} SHARED ${SOURCES})
-
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${screen_connector_launcher_service_LDFLAGS} "-lpthread")
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(TARGETS ${PROJECT_NAME}
- DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
- DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
- DESTINATION include/${PROJECT_NAME}
- FILES_MATCHING PATTERN "*.h"
- PATTERN "*_internal.h" EXCLUDE
- PATTERN "*_implementation.h" EXCLUDE)
+CONFIGURE_FILE(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE}.pc.in
+ ${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE}.pc @ONLY)
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE}.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(TARGETS ${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE}
+ DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include
+ DESTINATION include/${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE}
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "*_internal.h" EXCLUDE
+ PATTERN "*_implementation.h" EXCLUDE)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(screen_connector_launcher_service_evas CXX)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR "${MAJORVER}")
-SET(VERSION "${FULLVER}")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(screen_connector_launcher_service_evas REQUIRED
- dlog
- aul
- wayland-tbm-client
- wayland-client
- ecore-wl2
- tizen-remote-surface-client
- tzsh-launcher-service
- glib-2.0
- elementary
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}
+ SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS_SRCS)
+
+ADD_LIBRARY(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS} SHARED
+ ${SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS_SRCS})
+
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS}
+ PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS}
+ PROPERTIES VERSION ${FULLVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS}
+ PROPERTIES COMPILE_FLAGS ${CLFAGS} "-fpic")
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS}
+ PROPERTIES LINK_FLAGS "-lpthread")
+
+TARGET_LINK_LIBRARIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS} PRIVATE
+ ${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+APPLY_PKG_CONFIG(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS} PUBLIC
+ AUL_DEPS
+ DLOG_DEPS
+ ELEMENTARY_DEPS
+ GLIB_DEPS
+ TIZEN_REMOTE_SURFACE_CLIENT_DEPS
+ TZSH_LAUNCHER_SERVICE_DEPS
+ WAYLAND_CLIENT_DEPS
+ WAYLAND_TBM_CLIENT_DEPS
)
-FOREACH(flag ${screen_connector_launcher_service_evas_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++11")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
-
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCES)
-ADD_LIBRARY (${PROJECT_NAME} SHARED ${SOURCES})
-
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${screen_connector_launcher_service_evas_LDFLAGS} "-lpthread")
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(TARGETS ${PROJECT_NAME}
- DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
- DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
- DESTINATION include/${PROJECT_NAME}
- FILES_MATCHING PATTERN "*.h"
- PATTERN "*_internal.h" EXCLUDE
- PATTERN "*_implementation.h" EXCLUDE)
+CONFIGURE_FILE(${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS}.pc.in
+ ${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS}.pc @ONLY)
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS}.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(TARGETS ${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS}
+ DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include
+ DESTINATION include/${TARGET_SCREEN_CONNECTOR_LAUNCHER_SERVICE_EVAS}
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "*_internal.h" EXCLUDE
+ PATTERN "*_implementation.h" EXCLUDE)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(screen_connector_provider C)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR 1)
-SET(VERSION "${VERSION_MAJOR}.0.0")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(screen_connector_provider REQUIRED
- dlog
- aul
- wayland-tbm-client
- elementary
- wayland-client
- ecore-wl2
- tizen-remote-surface-client
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src
+ SCREEN_CONNECTOR_PROVIDER_SRCS)
+
+ADD_LIBRARY(${TARGET_SCREEN_CONNECTOR_PROVIDER} SHARED
+ ${SCREEN_CONNECTOR_PROVIDER_SRCS})
+
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_PROVIDER}
+ PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_PROVIDER}
+ PROPERTIES VERSION ${FULLVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_PROVIDER}
+ PROPERTIES COMPILE_FLAGS ${CLFAGS} "-fpic")
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_PROVIDER}
+ PROPERTIES LINK_FLAGS "-lpthread")
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_SCREEN_CONNECTOR_PROVIDER} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+APPLY_PKG_CONFIG(${TARGET_SCREEN_CONNECTOR_PROVIDER} PUBLIC
+ AUL_DEPS
+ DLOG_DEPS
+ ECORE_WL2_DEPS
+ TIZEN_REMOTE_SURFACE_CLIENT_DEPS
+ WAYLAND_CLIENT_DEPS
+ WAYLAND_TBM_CLIENT_DEPS
)
-FOREACH(flag ${screen_connector_provider_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline")
-
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
-SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_C_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
-
-AUX_SOURCE_DIRECTORY(src SOURCES)
-ADD_LIBRARY (${PROJECT_NAME} SHARED ${SOURCES})
-
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${screen_connector_provider_LDFLAGS} "-lpthread")
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN "*.h")
\ No newline at end of file
+CONFIGURE_FILE(${TARGET_SCREEN_CONNECTOR_PROVIDER}.pc.in
+ ${TARGET_SCREEN_CONNECTOR_PROVIDER}.pc @ONLY)
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_SCREEN_CONNECTOR_PROVIDER}.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(TARGETS ${TARGET_SCREEN_CONNECTOR_PROVIDER}
+ DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
+ DESTINATION include/${TARGET_SCREEN_CONNECTOR_PROVIDER}
+ FILES_MATCHING
+ PATTERN "*.h")
#include <dlog.h>
#include <wayland-client.h>
#include <Ecore_Wl2.h>
-#include <Elementary.h>
#include <wayland-extension/tizen-extension-client-protocol.h>
#include <tizen-remote-surface-client-protocol.h>
#include <aul_screen_connector.h>
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(screen_connector_remote_surface CXX)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR 1)
-SET(VERSION "${VERSION_MAJOR}.0.0")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(screen_connector_remote_surface REQUIRED
- dlog
- aul
- wayland-tbm-client
- wayland-client
- ecore-wl2
- tizen-remote-surface-client
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}
+ SCREEN_CONNECTOR_REMOTE_SURFACE_SRCS)
+
+ADD_LIBRARY(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE} SHARED
+ ${SCREEN_CONNECTOR_REMOTE_SURFACE_SRCS})
+
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE}
+ PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE}
+ PROPERTIES VERSION ${FULLVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE}
+ PROPERTIES COMPILE_FLAGS ${CLFAGS} "-fpic")
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+APPLY_PKG_CONFIG(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE} PUBLIC
+ AUL_DEPS
+ DLOG_DEPS
+ ECORE_WL2_DEPS
+ TIZEN_REMOTE_SURFACE_CLIENT_DEPS
+ WAYLAND_CLIENT_DEPS
+ WAYLAND_TBM_CLIENT_DEPS
)
-FOREACH(flag ${screen_connector_remote_surface_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline -std=c++11")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCES)
-ADD_LIBRARY(${PROJECT_NAME} SHARED ${SOURCES})
-
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${screen_connector_remote_surface_LDFLAGS})
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include/${PROJECT_NAME} FILES_MATCHING
- PATTERN "*_internal.h"
- PATTERN "*_implementation.h" EXCLUDE
- PATTERN "*.h")
+CONFIGURE_FILE(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE}.pc.in
+ ${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE}.pc @ONLY)
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE}.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(TARGETS ${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE}
+ DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
+ DESTINATION include/${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE}
+ FILES_MATCHING
+ PATTERN "*_internal.h"
+ PATTERN "*_implementation.h" EXCLUDE
+ PATTERN "*.h")
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(screen_connector_remote_surface_evas CXX)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR 1)
-SET(VERSION "${VERSION_MAJOR}.0.0")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(screen_connector_remote_surface_evas REQUIRED
- dlog
- aul
- wayland-tbm-client
- elementary
- wayland-client
- ecore-wl2
- tizen-remote-surface-client
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}
+ SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS_SRCS)
+
+ADD_LIBRARY(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS} SHARED
+ ${SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS_SRCS})
+
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS}
+ PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS}
+ PROPERTIES VERSION ${FULLVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS}
+ PROPERTIES COMPILE_FLAGS ${CLFAGS} "-fpic")
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS}
+ PROPERTIES LINK_FLAGS "-lpthread")
+
+TARGET_LINK_LIBRARIES(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS} PRIVATE
+ ${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+APPLY_PKG_CONFIG(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS} PUBLIC
+ AUL_DEPS
+ DLOG_DEPS
+ ECORE_WL2_DEPS
+ ELEMENTARY_DEPS
+ TIZEN_REMOTE_SURFACE_CLIENT_DEPS
+ WAYLAND_CLIENT_DEPS
+ WAYLAND_TBM_CLIENT_DEPS
)
-FOREACH(flag ${screen_connector_remote_surface_evas_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline -std=c++11")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCES)
-ADD_LIBRARY (${PROJECT_NAME} SHARED ${SOURCES})
-
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${screen_connector_remote_surface_evas_LDFLAGS})
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include/${PROJECT_NAME} FILES_MATCHING
- PATTERN "*_internal.h" EXCLUDE
- PATTERN "*_implementation.h" EXCLUDE
- PATTERN "*.h")
-
+CONFIGURE_FILE(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS}.pc.in
+ ${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS}.pc @ONLY)
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS}.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(TARGETS ${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS}
+ DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
+ DESTINATION include/${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS}
+ FILES_MATCHING
+ PATTERN "*_internal.h" EXCLUDE
+ PATTERN "*_implementation.h" EXCLUDE
+ PATTERN "*.h")
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(screen_connector_remote_surface_evas_mock CXX)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR 1)
-SET(VERSION "${VERSION_MAJOR}.0.0")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include/${PROJECT_NAME} FILES_MATCHING
- PATTERN "*_internal.h"
- PATTERN "*_implementation.h" EXCLUDE
- PATTERN "*.h")
+CONFIGURE_FILE(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS_MOCK}.pc.in
+ ${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS_MOCK}.pc @ONLY)
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS_MOCK}.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
+ DESTINATION include/${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_EVAS_MOCK}
+ FILES_MATCHING
+ PATTERN "*_internal.h"
+ PATTERN "*_implementation.h" EXCLUDE
+ PATTERN "*.h")
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(screen_connector_remote_surface_mock CXX)
+CONFIGURE_FILE(${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_MOCK}.pc.in
+ ${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_MOCK}.pc @ONLY)
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR 1)
-SET(VERSION "${VERSION_MAJOR}.0.0")
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include/${PROJECT_NAME} FILES_MATCHING
- PATTERN "*_internal.h"
- PATTERN "*_implementation.h" EXCLUDE
- PATTERN "*.h")
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_MOCK}.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
+ DESTINATION include/${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE_MOCK}
+ FILES_MATCHING
+ PATTERN "*_internal.h"
+ PATTERN "*_implementation.h" EXCLUDE
+ PATTERN "*.h")
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(screen_connector_shared_widget_launch CXX)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR "${MAJORVER}")
-SET(VERSION "${FULLVER}")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(screen_connector_shared_widget_launch REQUIRED
- dlog
- aul
- wayland-client
- ecore-wl2
- tzsh-shared-widget-launch
- glib-2.0
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}
+ SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH_SRCS)
+
+ADD_LIBRARY(${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH} SHARED
+ ${SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH_SRCS})
+
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH}
+ PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH}
+ PROPERTIES VERSION ${FULLVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH}
+ PROPERTIES COMPILE_FLAGS ${CLFAGS} "-fpic")
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH}
+ PROPERTIES LINK_FLAGS "-lpthread")
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+APPLY_PKG_CONFIG(${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH} PUBLIC
+ AUL_DEPS
+ DLOG_DEPS
+ ECORE_WL2_DEPS
+ GLIB_DEPS
+ TZSH_SHARED_WIDGET_LAUNCH_DEPS
+ WAYLAND_CLIENT_DEPS
)
-FOREACH(flag ${screen_connector_shared_widget_launch_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++11")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCES)
-ADD_LIBRARY (${PROJECT_NAME} SHARED ${SOURCES})
-
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${screen_connector_shared_widget_launch_LDFLAGS} "-lpthread")
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(TARGETS ${PROJECT_NAME}
- DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
- DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
- DESTINATION include/${PROJECT_NAME}
- FILES_MATCHING PATTERN "*.h"
- PATTERN "*_internal.h" EXCLUDE
- PATTERN "*_implementation.h" EXCLUDE)
+CONFIGURE_FILE(${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH}.pc.in
+ ${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH}.pc @ONLY)
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH}.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(TARGETS ${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH}
+ DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
+ DESTINATION include/${TARGET_SCREEN_CONNECTOR_SHARED_WIDGET_LAUNCH}
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "*_internal.h" EXCLUDE
+ PATTERN "*_implementation.h" EXCLUDE)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(screen_connector_watcher CXX)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR 1)
-SET(VERSION "${VERSION_MAJOR}.0.0")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(screen_connector_watcher REQUIRED
- dlog
- aul
- wayland-tbm-client
- elementary
- wayland-client
- ecore-wl2
- tizen-remote-surface-client
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src
+ SCREEN_CONNECTOR_WATCHER_SRCS)
+
+ADD_LIBRARY(${TARGET_SCREEN_CONNECTOR_WATCHER} SHARED
+ ${SCREEN_CONNECTOR_WATCHER_SRCS})
+
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_WATCHER}
+ PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_WATCHER}
+ PROPERTIES VERSION ${FULLVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_WATCHER}
+ PROPERTIES COMPILE_FLAGS ${CLFAGS} "-fpic")
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_WATCHER}
+ PROPERTIES LINK_FLAGS "-lpthread")
+
+TARGET_LINK_LIBRARIES(${TARGET_SCREEN_CONNECTOR_WATCHER} PRIVATE
+ ${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_SCREEN_CONNECTOR_WATCHER} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+APPLY_PKG_CONFIG(${TARGET_SCREEN_CONNECTOR_WATCHER} PUBLIC
+ AUL_DEPS
+ DLOG_DEPS
+ ECORE_WL2_DEPS
+ TIZEN_REMOTE_SURFACE_CLIENT_DEPS
+ WAYLAND_CLIENT_DEPS
+ WAYLAND_TBM_CLIENT_DEPS
)
-FOREACH(flag ${screen_connector_watcher_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++11")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-
-AUX_SOURCE_DIRECTORY(src SOURCES)
-ADD_LIBRARY (${PROJECT_NAME} SHARED ${SOURCES})
-
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${screen_connector_watcher_LDFLAGS} screen_connector_remote_surface)
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN "*.h")
+CONFIGURE_FILE(${TARGET_SCREEN_CONNECTOR_WATCHER}.pc.in
+ ${TARGET_SCREEN_CONNECTOR_WATCHER}.pc @ONLY)
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_SCREEN_CONNECTOR_WATCHER}.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(TARGETS ${TARGET_SCREEN_CONNECTOR_WATCHER}
+ DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
+ DESTINATION include/${TARGET_SCREEN_CONNECTOR_WATCHER}
+ FILES_MATCHING
+ PATTERN "*.h")
#include <glib.h>
#include <dlog.h>
#include <wayland-client.h>
-#include <Elementary.h>
#include <Ecore_Wl2.h>
#include <wayland-extension/tizen-extension-client-protocol.h>
#include <tizen-remote-surface-client-protocol.h>
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(screen_connector_watcher_evas CXX)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
-SET(VERSION_MAJOR 1)
-SET(VERSION "${VERSION_MAJOR}.0.0")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(screen_connector_watcher_evas REQUIRED
- elementary
- dlog
- aul
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src
+ SCREEN_CONNECTOR_WATCHER_EVAS_SRCS)
+
+ADD_LIBRARY(${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS} SHARED
+ ${SCREEN_CONNECTOR_WATCHER_EVAS_SRCS})
+
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS}
+ PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS}
+ PROPERTIES VERSION ${FULLVER})
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS}
+ PROPERTIES COMPILE_FLAGS ${CLFAGS} "-fpic")
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS}
+ PROPERTIES LINK_FLAGS "-lpthread")
+
+TARGET_LINK_LIBRARIES(${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS} PRIVATE
+ ${TARGET_SCREEN_CONNECTOR_WATCHER})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../screen_connector_watcher/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+APPLY_PKG_CONFIG(${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS} PUBLIC
+ AUL_DEPS
+ DLOG_DEPS
+ ELEMENTARY_DEPS
)
-FOREACH(flag ${screen_connector_watcher_evas_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++11")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../screen_connector_watcher/include)
-
-AUX_SOURCE_DIRECTORY(src SOURCES)
-ADD_LIBRARY (${PROJECT_NAME} SHARED ${SOURCES})
-
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${screen_connector_watcher_evas_LDFLAGS})
-
-CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
-SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_NAME}.pc")
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN "*.h")
+CONFIGURE_FILE(${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS}.pc.in
+ ${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS}.pc @ONLY)
+
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS}.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(TARGETS ${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS}
+ DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
+ DESTINATION include/${TARGET_SCREEN_CONNECTOR_WATCHER_EVAS}
+ FILES_MATCHING
+ PATTERN "*.h")
--- /dev/null
+ADD_SUBDIRECTORY(unittest)
--- /dev/null
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src
+ SCREEN_CONNECTOR_UNIT_TESTS_SRCS)
+
+ADD_EXECUTABLE(${TARGET_SCREEN_CONNECTOR_UNIT_TESTS}
+ ${SCREEN_CONNECTOR_UNIT_TESTS_SRCS})
+
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_UNIT_TESTS}
+ PROPERTIES COMPILE_FLAGS ${CLFAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_SCREEN_CONNECTOR_UNIT_TESTS}
+ PROPERTIES LINK_FLAGS "-pie")
+
+TARGET_LINK_LIBRARIES(${TARGET_SCREEN_CONNECTOR_UNIT_TESTS} PUBLIC
+ ${TARGET_SCREEN_CONNECTOR_REMOTE_SURFACE})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_SCREEN_CONNECTOR_UNIT_TESTS} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../screen_connector_remote_surface
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../screen_connector_remote_surface/include)
+
+APPLY_PKG_CONFIG(${TARGET_SCREEN_CONNECTOR_UNIT_TESTS} PUBLIC
+ AUL_DEPS
+ ELEMENTARY_DEPS
+ GLIB_DEPS
+ GMOCK_DEPS
+)
+
+INSTALL(TARGETS ${TARGET_SCREEN_CONNECTOR_UNIT_TESTS} DESTINATION bin)
+
+ADD_TEST(NAME ${TARGET_SCREEN_CONNECTOR_UNIT_TESTS}
+ COMMAND ${TARGET_SCREEN_CONNECTOR_UNIT_TESTS})
+++ /dev/null
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(gtest-screen-connector CXX)
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(gtest-screen-connector REQUIRED
- glib-2.0
- gmock
- aul
- elementary
-)
-
-FOREACH(flag ${gtest-screen-connector_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++11")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-
-AUX_SOURCE_DIRECTORY(src SOURCES)
-ADD_EXECUTABLE(${PROJECT_NAME}
- ${SOURCES}
-)
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${gtest-screen-connector_LDFLAGS} screen_connector_remote_surface)
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin/)