38 lines
1.9 KiB
CMake
38 lines
1.9 KiB
CMake
# GIR.cmake
|
|
#
|
|
# Macros for building Gobject Introspection bindings for Midori API
|
|
find_program (GIR_SCANNER_BIN g-ir-scanner)
|
|
find_program (GIR_COMPILER_BIN g-ir-compiler)
|
|
|
|
if (GIR_SCANNER_BIN AND GIR_COMPILER_BIN)
|
|
|
|
set (GIR_FOUND TRUE)
|
|
set (GIR_VERSION "${MIDORI_MAJOR_VERSION}.${MIDORI_MINOR_VERSION}")
|
|
macro (gir_build module namespace)
|
|
add_custom_target ("g-ir-scanner_${module}" ALL
|
|
${GIR_SCANNER_BIN} -Imidori -I${CMAKE_SOURCE_DIR}/ -I${CMAKE_BINARY_DIR}/midori -I${CMAKE_SOURCE_DIR}/${module} -I${CMAKE_SOURCE_DIR}/toolbars -I.
|
|
--header-only -n ${namespace} --identifier-prefix ${namespace}
|
|
${CMAKE_SOURCE_DIR}/${module}/${module}-*.c ${CMAKE_SOURCE_DIR}/${module}/${module}-*.h
|
|
--pkg gtk+-2.0 --pkg webkit-1.0 --pkg gio-2.0 --pkg gobject-2.0
|
|
--warn-all -iGObject-2.0 -iGLib-2.0 -iGtk-2.0
|
|
--nsversion ${GIR_VERSION}
|
|
-o ${CMAKE_CURRENT_BINARY_DIR}/${namespace}-${GIR_VERSION}.gir
|
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
|
DEPENDS ${CMAKE_PROJECT_NAME})
|
|
add_custom_target ("g-ir-compiler_${module}" ALL
|
|
${GIR_COMPILER_BIN} ${CMAKE_CURRENT_BINARY_DIR}/${namespace}-${GIR_VERSION}.gir
|
|
--output ${CMAKE_CURRENT_BINARY_DIR}/${namespace}-${GIR_VERSION}.typelib
|
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
|
DEPENDS g-ir-scanner_${module})
|
|
|
|
endmacro (gir_build module namespace)
|
|
|
|
macro (gir module namespace)
|
|
gir_build (${module} ${namespace})
|
|
|
|
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${namespace}-${GIR_VERSION}.gir"
|
|
DESTINATION "${CMAKE_INSTALL_DATADIR}/gir-1.0/")
|
|
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${namespace}-${GIR_VERSION}.typelib"
|
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/girepository-1.0/")
|
|
endmacro (gir module)
|
|
endif ()
|