efl
48 строк · 1.7 Кб
1# - Try to find edje
2# Once done this will define
3# EDJE_FOUND - System has edje
4# EDJE_INCLUDE_DIRS - The edje include directories
5# EDJE_LIBRARIES - The libraries needed to use edje
6# EDJE_DEFINITIONS - Compiler switches required for using edje
7# EDJE_CC_EXECUTABLE - full path to the `edje_cc' program.
8
9set(MY_PKG edje)
10
11find_package(PkgConfig)
12if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER "2.8.1")
13# "QUIET" was introduced in 2.8.2
14set(_QUIET QUIET)
15endif ()
16pkg_check_modules(PC_LIBEDJE ${_QUIET} ${MY_PKG})
17
18find_library(EDJE_LIBRARY
19NAMES ${PC_LIBEDJE_LIBRARIES}
20HINTS ${PC_LIBEDJE_LIBDIR} ${PC_LIBEDJE_LIBRARY_DIRS})
21
22find_program(EDJE_CC_EXECUTABLE
23NAMES edje_cc)
24
25set(EDJE_DEFINITIONS ${PC_LIBEDJE_CFLAGS_OTHER})
26set(EDJE_LIBRARIES ${EDJE_LIBRARY})
27set(EDJE_INCLUDE_DIRS ${PC_LIBEDJE_INCLUDE_DIRS})
28
29macro(EDJE_CC_TARGET Input)
30cmake_parse_arguments(OPTIONS "" "" "COMPILE_FLAGS" ${ARGN})
31STRING(REGEX REPLACE "[.]edc" ".edj" Output "${Input}" )
32set(Output "${CMAKE_CURRENT_BINARY_DIR}/${Output}")
33add_custom_command(OUTPUT ${Output}
34COMMAND ${EDJE_CC_EXECUTABLE}
35ARGS ${OPTIONS_COMPILE_FLAGS} ${Input} ${Output}
36DEPENDS ${Input}
37COMMENT
38"edje_cc ${Input}"
39WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
40endmacro()
41
42include(FindPackageHandleStandardArgs)
43# handle the QUIETLY and REQUIRED arguments and set EDJE_FOUND to TRUE
44# if all listed variables are TRUE
45find_package_handle_standard_args(${MY_PKG} DEFAULT_MSG
46EDJE_LIBRARIES EDJE_INCLUDE_DIRS)
47
48mark_as_advanced(EDJE_INCLUDE_DIRS EDJE_LIBRARY EDJE_LIBRARIES EDJE_DEFINITIONS EDJE_CC_EXECUTABLE)
49
50