1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
# This file contains the following macros:
#
# NEPOMUK_GENERATE_FROM_ONTOLOGY
# Parameters:
# ontofile - Path to the NRL ontology defining the resources to be generated.
# targetdir - Folder to which the generated sources should be written.
# out_headers - Variable which will be filled with the names of all generated headers.
# out_sources - Variable which will be filled with the names of all generated sources.
# out_includes - Variable which will be filled with complete include statements of all
# generated resource classes.
#
# In addition to the parameters an arbitrary number of template filenames can be set as arguments
#
# In case of success NEPOMUK_RESOURCES_GENERATED is true, otherwise false
# (C) 2007 Sebastian Trueg <trueg@kde.org>
macro(NEPOMUK_GENERATE_FROM_ONTOLOGY ontofile targetdir out_headers out_sources out_includes)
# init
set(NEPOMUK_RESOURCES_GENERATED false)
find_program(RCGEN nepomuk-rcgen PATHS ${KDE4_BIN_INSTALL_DIR} ${BIN_INSTALL_DIR} NO_DEFAULT_PATH)
if(NOT RCGEN)
message(STATUS "Failed to find the Nepomuk source generator" )
else(NOT RCGEN)
FILE(TO_NATIVE_PATH ${RCGEN} RCGEN)
execute_process(
COMMAND ${RCGEN} --listheaders --prefix ${targetdir}/ --ontologies ${ontofile}
OUTPUT_VARIABLE ${out_headers}
RESULT_VARIABLE rcgen_result
)
# If the first call succeeds it is very very likely that the rest will, too
if(${rcgen_result} EQUAL 0)
execute_process(
COMMAND ${RCGEN} --listsources --prefix ${targetdir}/ --ontologies ${ontofile}
OUTPUT_VARIABLE ${out_sources}
)
execute_process(
COMMAND ${RCGEN} --listincludes --ontologies ${ontofile}
OUTPUT_VARIABLE ${out_includes}
)
execute_process(
COMMAND ${RCGEN} --writeall --templates ${ARGN} --target ${targetdir}/ --ontologies ${ontofile}
)
set(NEPOMUK_RESOURCES_GENERATED true)
else(${rcgen_result} EQUAL 0)
message(STATUS "Failed to generate Nepomuk resource classes.")
endif(${rcgen_result} EQUAL 0)
endif(NOT RCGEN)
endmacro(NEPOMUK_GENERATE_FROM_ONTOLOGY)
|