diff options
Diffstat (limited to 'cmake/Modules/GlibIntrospection.cmake')
| -rw-r--r-- | cmake/Modules/GlibIntrospection.cmake | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/cmake/Modules/GlibIntrospection.cmake b/cmake/Modules/GlibIntrospection.cmake deleted file mode 100644 index f2f1b91..0000000 --- a/cmake/Modules/GlibIntrospection.cmake +++ /dev/null @@ -1,105 +0,0 @@ -# SPDX-FileCopyrightText: 2025 Felix Morgner <felix.morgner@gmail.com> -# SPDX-License-Identifier: LGPL-2.1-only - -include_guard() - -find_program(G_IR_SCANNER_BIN - NAMES "g-ir-scanner" - 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}'") - return() - endif() - - set(SINGLE_VALUE_ARGS - "NAMESPACE" - "OUTPUT" - "VERSION" - ) - set(MULTI_VALUE_ARGS - "DEPENDENCIES" - "SOURCES" - ) - cmake_parse_arguments( - PARSE_ARGV 1 - "" - "${OPTIONS}" - "${SINGLE_VALUE_ARGS}" - "${MULTI_VALUE_ARGS}" - ) - - if(NOT TARGET "${TARGET}") - message(FATAL_ERROR "GlibIntrospection: Target '${TARGET}' does not exist") - endif() - - if(NOT _NAMESPACE) - set(_NAMESPACE "${PROJECT_NAME}") - message(WARNING "GlibIntrospection: defaulting to namespace ${_NAMESPACE}") - endif() - - if(NOT _OUTPUT_DIR) - get_target_property(_OUTPUT_DIR "${TARGET}" BINARY_DIR) - endif() - - if(NOT _VERSION) - set(_VERSION "${CMAKE_PROJECT_VERSION_MAJOR}.${CMAKE_PROJECT_VERSION_MINOR}") - message(WARNING "GlibIntrospection: defaulting to version ${_VERSION}") - endif() - - if(NOT _DEPENDENCIES) - message(FATAL_ERROR "GlibIntrospection: no dependencies specified") - endif() - - if(NOT _SOURCES) - get_target_property(SOURCES "${TARGET}" SOURCES) - get_target_property(HEADERS "${TARGET}" HEADER_SET) - set(_SOURCES ${HEADERS} ${SOURCES}) - endif() - - get_target_property(TARGET_OUTPUT_NAME "${TARGET}" OUTPUT_NAME) - set(_OUTPUT_FILE "${_OUTPUT_DIR}/$<CONFIG>/${_NAMESPACE}-${_VERSION}") - - add_custom_command(TARGET "${TARGET}" - POST_BUILD - 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}" - "--library=$<TARGET_FILE_BASE_NAME:${TARGET}>" - "--library-path=$<TARGET_FILE_DIR:${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}.gir" - ${_SOURCES} - COMMAND "${G_IR_COMPILER_BIN}" - "--output=${_OUTPUT_FILE}.typelib" - "${_OUTPUT_FILE}.gir" - COMMAND_EXPAND_LISTS - VERBATIM - ) - - install(FILES "${_OUTPUT_FILE}.gir" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/gir-1.0" - ) - - install(FILES "${_OUTPUT_FILE}.typelib" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/girepository-1.0" - ) - -endfunction()
\ No newline at end of file |
