Automatized generation of marshallers.
This commit is contained in:
parent
b66704114e
commit
2dd5dbaf67
@ -100,6 +100,35 @@ configure_file (${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
|
|||||||
${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
||||||
include_directories (${CMAKE_CURRENT_BINARY_DIR})
|
include_directories (${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
|
# Generate marshallers
|
||||||
|
function (glib_genmarshal base prefix)
|
||||||
|
find_program (GLIB_GENMARSHAL_EXECUTABLE glib-genmarshal)
|
||||||
|
|
||||||
|
if (GLIB_GENMARSHAL_EXECUTABLE)
|
||||||
|
get_filename_component (base_path "${base}" PATH)
|
||||||
|
get_filename_component (base_name "${base}" NAME)
|
||||||
|
set (command_base ${GLIB_GENMARSHAL_EXECUTABLE}
|
||||||
|
--prefix ${prefix} "${base_name}.list")
|
||||||
|
|
||||||
|
# NOTE: VERBATIM may cause problems, so it is not used here
|
||||||
|
add_custom_command (OUTPUT ${base}.c
|
||||||
|
COMMAND ${command_base} --body > "${base_name}.c"
|
||||||
|
DEPENDS "${base}.list"
|
||||||
|
WORKING_DIRECTORY "${base_path}"
|
||||||
|
COMMENT "Generating marshallers source file")
|
||||||
|
add_custom_command (OUTPUT ${base}.h
|
||||||
|
COMMAND ${command_base} --header > "${base_name}.h"
|
||||||
|
DEPENDS "${base}.list"
|
||||||
|
WORKING_DIRECTORY "${base_path}"
|
||||||
|
COMMENT "Generating marshallers header file")
|
||||||
|
else (GLIB_GENMARSHAL_EXECUTABLE)
|
||||||
|
message (WARNING "glib-genmarshal is not present on this system")
|
||||||
|
endif (GLIB_GENMARSHAL_EXECUTABLE)
|
||||||
|
endfunction (glib_genmarshal)
|
||||||
|
|
||||||
|
glib_genmarshal (${CMAKE_CURRENT_SOURCE_DIR}/src/ld-marshal
|
||||||
|
g_cclosure_user_marshal)
|
||||||
|
|
||||||
# Build the executable
|
# Build the executable
|
||||||
include_directories (${GTK2_INCLUDE_DIRS})
|
include_directories (${GTK2_INCLUDE_DIRS})
|
||||||
add_executable (logdiag ${logdiag_SOURCES} ${logdiag_HEADERS})
|
add_executable (logdiag ${logdiag_SOURCES} ${logdiag_HEADERS})
|
||||||
|
Loading…
Reference in New Issue
Block a user