1 # Find dependencies ( linux, tizen )
2 FIND_PACKAGE(PkgConfig REQUIRED)
4 # Special constant for ARG_ENABLE function
5 SET( ENABLE_VAL "#ENABLE_VAL" )
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 )
15 SET( ${VAR_TO_SET}_ENABLED OFF )
19 # Simple ternary operator
20 FUNCTION( TEST_IF CONDITION OUTPUT_VAR VAL0 VAL1 )
22 SET( ${OUTPUT_VAR} ${VAL0} PARENT_SCOPE )
24 SET( ${OUTPUT_VAR} {VAL1} PARENT_SCOPE )
28 # Conditional macro immitates autoconf AM_CONDITIONAL
29 MACRO( CONDITIONAL VARIABLE )
35 MACRO( OPT_STRING NAME DEFAULT_VALUE )
36 SET( ${NAME} ${DEFAULT_VALUE} CACHE STRING "${ARGN}" )
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 )
45 LIST(GET LIST_OF_VALUES 1 OPT_OFF )
48 SET( ${NAME} "${OPT_OFF}" CACHE STRING "${ARGN}" )
50 SET( ${NAME} "OFF" CACHE STRING "${ARGN}" )
53 IF(OPT_ON MATCHES ENABLE_VAL)
54 SET( ${INTERNAL_VAR} ${${NAME}} PARENT_SCOPE )
56 SET( ${INTERNAL_VAR} ${OPT_ON} PARENT_SCOPE )
60 SET( ${INTERNAL_VAR} ${OPT_OFF} PARENT_SCOPE )
62 IF( CMAKE_MAJOR_VERSION GREATER 3 )
63 UNSET( ${INTERNAL_VAR} PARENT_SCOPE )
65 UNSET( ${INTERNAL_VAR} )
69 MESSAGE( STATUS "${NAME} = ${${NAME}}")
72 # This macro unsets all cached argument variables, should be called
74 MACRO( CLEAN_ARG_CACHE )
75 FOREACH( arg IN LISTS CUSTOM_ARGUMENTS )
82 MESSAGE(FATAL_ERROR ${ARGN})