1 # FindGObjectIntrospection.cmake
2 # © 2016 Evan Nemerson <evan@nemerson.com>
4 find_program(GI_COMPILER_EXECUTABLE g-ir-compiler)
5 find_program(GI_SCANNER_EXECUTABLE g-ir-scanner)
7 if(CMAKE_INSTALL_FULL_DATADIR)
8 set(GI_REPOSITORY_DIR "${CMAKE_INSTALL_FULL_DATADIR}/gir-1.0")
10 set(GI_REPOSITORY_DIR "${CMAKE_INSTALL_PREFIX}/share/gir-1.0")
13 if(CMAKE_INSTALL_FULL_LIBDIR)
14 set(GI_TYPELIB_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/girepository-1.0")
16 set(GI_TYPELIB_DIR "${CMAKE_INSTALL_LIBDIR}/girepository-1.0")
19 include(FindPackageHandleStandardArgs)
20 find_package_handle_standard_args(GObjectIntrospection
22 GI_COMPILER_EXECUTABLE
23 GI_SCANNER_EXECUTABLE)
25 function(gobject_introspection_compile TYPELIB)
26 set (options DEBUG VERBOSE)
27 set (oneValueArgs MODULE SHARED_LIBRARY)
28 set (multiValueArgs FLAGS INCLUDE_DIRS)
29 cmake_parse_arguments(GI_COMPILER "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
32 unset (multiValueArgs)
34 get_filename_component(TYPELIB "${TYPELIB}" ABSOLUTE
35 BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
38 list(APPEND GI_COMPILER_FLAGS "--debug")
41 if(GI_COMPILER_VERBOSE)
42 list(APPEND GI_COMPILER_FLAGS "--verbose")
46 list(APPEND GI_COMPILER_FLAGS "--shared-library" "${GI_SHARED_LIBRARY}")
49 foreach(include_dir ${GI_COMPILER_INCLUDE_DIRS})
50 list(APPEND GI_COMPILER_FLAGS "--includedir" "${include_dir}")
55 COMMAND "${GI_COMPILER_EXECUTABLE}"
59 ${GI_COMPILER_UNPARSED_ARGUMENTS}
61 ${GI_COMPILER_UNPARSED_ARGUMENTS})