diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2025-05-22 18:45:20 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2025-05-22 18:45:20 +0200 |
| commit | 24f3d9147bfe222a6bfcfc0845b44ae8fde33cdf (patch) | |
| tree | c0a050776db0644ec6020181f5b4c699ce4f2e5c /cmake | |
| parent | 8038808f1968b663e351a66023fabe0ed1b019f1 (diff) | |
| download | turns-24f3d9147bfe222a6bfcfc0845b44ae8fde33cdf.tar.xz turns-24f3d9147bfe222a6bfcfc0845b44ae8fde33cdf.zip | |
lib: generate compiled typelib
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 |
