Move integration-api folder from adaptors to adaptor-framework
[platform/core/uifw/dali-adaptor.git] / build / tizen / common.cmake
1 # Find dependencies ( linux, tizen )
2 FIND_PACKAGE(PkgConfig REQUIRED)
3
4 # Special constant for ARG_ENABLE function
5 SET( ENABLE_VAL "#ENABLE_VAL" )
6 SET( HELP_ENABLES "" )
7 SET( CUSTOM_ARGUMENTS "" )
8 # Macro checks if the module is available and sets user variable
9 MACRO( CHECK_MODULE_AND_SET PKG_VAR PKG_LIB_REQUIREMENTS VAR_TO_SET )
10   PKG_CHECK_MODULES(${PKG_VAR} "${PKG_LIB_REQUIREMENTS}")
11   IF( ${PKG_VAR}_FOUND )
12     SET( ${VAR_TO_SET} ON )
13     SET( ${VAR_TO_SET}_ENABLED ON )
14   ELSE()
15     SET( ${VAR_TO_SET}_ENABLED OFF )
16   ENDIF()
17 ENDMACRO()
18
19 # Simple ternary operator
20 FUNCTION( TEST_IF CONDITION OUTPUT_VAR VAL0 VAL1 )
21   IF( ${CONDITION} )
22     SET( ${OUTPUT_VAR} ${VAL0} PARENT_SCOPE )
23   ELSE()
24     SET( ${OUTPUT_VAR} {VAL1} PARENT_SCOPE )
25   ENDIF()
26 ENDFUNCTION()
27
28 # Conditional macro immitates autoconf AM_CONDITIONAL
29 MACRO( CONDITIONAL VARIABLE )
30   IF( ${ARGN} )
31       SET( ${VARIABLE} ON )
32   ENDIF()
33 ENDMACRO()
34
35 MACRO( OPT_STRING NAME DEFAULT_VALUE )
36   SET( ${NAME} ${DEFAULT_VALUE} CACHE STRING "${ARGN}" )
37 ENDMACRO()
38
39 FUNCTION( ARG_ENABLE NAME INTERNAL_VAR LIST_OF_VALUES )
40   SET(HELP_ENABLES "${HELP_ENABLES}\n${NAME}\t-\t${ARGN}" PARENT_SCOPE)
41   SET(CUSTOM_ARGUMENTS "${CUSTOM_ARGUMENTS};${NAME}" PARENT_SCOPE)
42   LIST(LENGTH LIST_OF_VALUES SIZE)
43   LIST(GET LIST_OF_VALUES 0 OPT_ON )
44   IF( SIZE EQUAL 2 )
45     LIST(GET LIST_OF_VALUES 1 OPT_OFF )
46   ENDIF()
47   IF( OPT_OFF )
48     SET( ${NAME} "${OPT_OFF}" CACHE STRING "${ARGN}" )
49   ELSE()
50     SET( ${NAME} "OFF" CACHE STRING "${ARGN}" )
51   ENDIF()
52   IF( ${NAME} )
53     IF(OPT_ON MATCHES ENABLE_VAL)
54       SET( ${INTERNAL_VAR} ${${NAME}} PARENT_SCOPE )
55     ELSE()
56       SET( ${INTERNAL_VAR} ${OPT_ON} PARENT_SCOPE )
57     ENDIF()
58   ELSE()
59     IF( OPT_OFF )
60       SET( ${INTERNAL_VAR} ${OPT_OFF} PARENT_SCOPE )
61     ELSE()
62       IF( CMAKE_MAJOR_VERSION GREATER 3 )
63         UNSET( ${INTERNAL_VAR} PARENT_SCOPE )
64       ELSE()
65         UNSET( ${INTERNAL_VAR} )
66       ENDIF()
67     ENDIF()
68   ENDIF()
69   MESSAGE( STATUS "${NAME} = ${${NAME}}")
70 ENDFUNCTION()
71
72 # This macro unsets all cached argument variables, should be called
73 # upon exit
74 MACRO( CLEAN_ARG_CACHE )
75   FOREACH( arg IN LISTS CUSTOM_ARGUMENTS )
76     UNSET( ${arg} CACHE )
77   ENDFOREACH()
78 ENDMACRO()
79
80 MACRO( EXIT )
81   CLEAN_ARG_CACHE()
82   MESSAGE(FATAL_ERROR ${ARGN})
83 ENDMACRO()