aboutsummaryrefslogtreecommitdiff
path: root/modules/NepomukMacros.cmake
blob: 9476cf64cfafdc366f8a3a71c0802d93fa43085f (plain)
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
# This file contains the following macros:
#
# NEPOMUK_GENERATE_FROM_ONTOLOGY
#


#
# NEPOMUK_GENERATE_FROM_ONTOLOGY
# (C) 2007 Sebastian Trueg <trueg@kde.org>
#
# 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
#
macro(NEPOMUK_GENERATE_FROM_ONTOLOGY ontofile targetdir out_headers out_sources out_includes)

  FIND_PROGRAM(RCGEN nepomuk-rcgen PATHS ${BIN_INSTALL_DIR})
  if(NOT RCGEN)
    message( FATAL_ERROR "Failed to find the KMetaData source generator" )
  endif(NOT RCGEN)

  FILE(TO_NATIVE_PATH ${RCGEN} RCGEN)

  execute_process(
    COMMAND ${RCGEN} --listheaders --prefix ${targetdir}/ --ontologies ${ontofile}
    OUTPUT_VARIABLE ${out_headers}
    )
  
  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}
    )
  
endmacro(NEPOMUK_GENERATE_FROM_ONTOLOGY)