diff options
Diffstat (limited to 'cmake')
| -rw-r--r-- | cmake/Modules/GlibIntrospection.cmake | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/cmake/Modules/GlibIntrospection.cmake b/cmake/Modules/GlibIntrospection.cmake index c6b0752..db4434d 100644 --- a/cmake/Modules/GlibIntrospection.cmake +++ b/cmake/Modules/GlibIntrospection.cmake @@ -5,6 +5,11 @@ find_program(G_IR_SCANNER_BIN REQUIRED ) +find_program(G_IR_COMPILER_BIN + NAMES "g-ir-compiler" + REQUIRED +) + function(target_glib_generate_gir TARGET) if(NOT BUILD_SHARED_LIBS) message(STATUS "GlibIntrospection: skipping GIR generation for static library target '${TARGET}'") @@ -57,15 +62,18 @@ function(target_glib_generate_gir TARGET) endif() get_target_property(TARGET_OUTPUT_NAME "${TARGET}" OUTPUT_NAME) - set(_OUTPUT_FILE "${_OUTPUT_DIR}/$<CONFIG>/${TARGET_OUTPUT_NAME}.gir") + set(_OUTPUT_FILE "${_OUTPUT_DIR}/$<CONFIG>/${_NAMESPACE}") add_custom_command(TARGET "${TARGET}" POST_BUILD - BYPRODUCTS "${_OUTPUT_FILE}" + BYPRODUCTS + "${_OUTPUT_FILE}.gir" + "${_OUTPUT_FILE}.typelib" COMMENT "Generating GIR file for ${TARGET}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" COMMAND "${G_IR_SCANNER_BIN}" ARGS + "--quiet" "--warn-all" "--namespace=${_NAMESPACE}" "--nsversion=${_VERSION}" @@ -74,9 +82,13 @@ function(target_glib_generate_gir TARGET) "$<LIST:TRANSFORM,$<TARGET_PROPERTY:${TARGET},INTERFACE_INCLUDE_DIRECTORIES>,PREPEND,-I>" "$<LIST:TRANSFORM,$<LIST:TRANSFORM,${_DEPENDENCIES},TOLOWER>,PREPEND,--pkg=>" "$<LIST:TRANSFORM,${_DEPENDENCIES},PREPEND,--include=>" - "--output=${_OUTPUT_FILE}" + "--output=${_OUTPUT_FILE}.gir" ${_SOURCES} + COMMAND "${G_IR_COMPILER_BIN}" + "--output=${_OUTPUT_FILE}.typelib" + "${_OUTPUT_FILE}.gir" COMMAND_EXPAND_LISTS + VERBATIM ) endfunction()
\ No newline at end of file |
