diff options
Diffstat (limited to 'modules/NepomukAddOntologyClasses.cmake')
-rw-r--r-- | modules/NepomukAddOntologyClasses.cmake | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/modules/NepomukAddOntologyClasses.cmake b/modules/NepomukAddOntologyClasses.cmake deleted file mode 100644 index a2bdd5bb..00000000 --- a/modules/NepomukAddOntologyClasses.cmake +++ /dev/null @@ -1,115 +0,0 @@ -# -# Use the Nepomuk resource class generator to generate convinient Resource subclasses -# from ontologies. -# -# Usage: -# NEPOMUK_ADD_ONTOLOGY_CLASSES(<sources-var> -# [FAST] -# [ONTOLOGIES] <onto-file1> [<onto-file2> ...] -# [CLASSES <class1> [<class2> ...]] -# [VISIBILITY <visibility-name>] -# ) -# -# If FAST is specified the rcgen parameter --fast will be used which results in resource classes -# not based on Nepomuk::Resource but on a custom class which does not perform any checks and simply -# writes the data to Nepomuk (hence the name fast). -# -# The optional CLASSES parameter allows to specify the classes to be generated (RDF URIs) in -# case one does not want all classes in the ontologies to be generated. -# -# The optional VISIBILITY parameter can only be used in non-fast mode and allows to set the gcc visibility -# to make the generated classes usable in a publically exported API. The <visibility-name> is used to create -# the name of the export macro and the export include file. Thus, when using "VISIBILITY foobar" include -# file "foobar_export.h" needs to define FOOBAR_EXPORT. -# -# Copyright (c) 2009 Sebastian Trueg <trueg@kde.org> -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# -macro(NEPOMUK_ADD_ONTOLOGY_CLASSES _sources) - # extract arguments - set(_current_arg_type "onto") - foreach(_arg ${ARGN}) - if(${_arg} STREQUAL "ONTOLOGIES") - set(_current_arg_type "onto") - elseif(${_arg} STREQUAL "VISIBILITY") - set(_current_arg_type "visib") - elseif(${_arg} STREQUAL "CLASSES") - set(_current_arg_type "class") - elseif(${_arg} STREQUAL "FAST") - set(_fastmode "--fast") - else(${_arg} STREQUAL "ONTOLOGIES") - if(${_current_arg_type} STREQUAL "onto") - list(APPEND _ontologies ${_arg}) - get_filename_component(_filename ${_arg} NAME) - list(APPEND _ontofilenames ${_filename}) - elseif(${_current_arg_type} STREQUAL "class") - list(APPEND _classes "--class" "${_arg}") - else(${_current_arg_type} STREQUAL "onto") - set(_visibility "--visibility" "${_arg}") - endif(${_current_arg_type} STREQUAL "onto") - endif(${_arg} STREQUAL "ONTOLOGIES") - endforeach(_arg) - - # find our helper program (first in the install dir, then everywhere) - if(NOT WINCE) - find_program(RCGEN nepomuk-rcgen PATHS ${KDE4_BIN_INSTALL_DIR} ${BIN_INSTALL_DIR} NO_DEFAULT_PATH) - find_program(RCGEN nepomuk-rcgen) - else(NOT WINCE) - find_program(RCGEN nepomuk-rcgen PATHS ${HOST_BINDIR} NO_DEFAULT_PATH) - endif(NOT WINCE) - - if(NOT RCGEN) - message(SEND_ERROR "Failed to find the Nepomuk source generator" ) - else(NOT RCGEN) - file(TO_NATIVE_PATH ${RCGEN} RCGEN) - - # we generate the files in the current binary dir - set(_targetdir ${CMAKE_CURRENT_BINARY_DIR}) - - # generate the list of source and header files - execute_process( - COMMAND ${RCGEN} ${_fastmode} --listheaders --prefix ${_targetdir}/ ${_classes} ${_visibility} ${_ontologies} - OUTPUT_VARIABLE _out_headers - RESULT_VARIABLE rcgen_result - ) - if(NOT ${rcgen_result} EQUAL 0) - message(SEND_ERROR "Running ${RCGEN} to generate list of headers failed with error code ${rcgen_result}") - endif(NOT ${rcgen_result} EQUAL 0) - - execute_process( - COMMAND ${RCGEN} ${_fastmode} --listsources --prefix ${_targetdir}/ ${_classes} ${_visibility} ${_ontologies} - OUTPUT_VARIABLE _out_sources - RESULT_VARIABLE rcgen_result - ) - if(NOT ${rcgen_result} EQUAL 0) - message(SEND_ERROR "Running ${RCGEN} to generate list of sources failed with error code ${rcgen_result}") - endif(NOT ${rcgen_result} EQUAL 0) - - add_custom_command(OUTPUT ${_out_headers} ${_out_sources} - COMMAND ${RCGEN} ${_fastmode} --writeall --target ${_targetdir}/ ${_classes} ${_visibility} ${_ontologies} - DEPENDS ${_ontologies} - COMMENT "Generating ontology source files from ${_ontofilenames}" - ) - - # make sure the includes are found - include_directories(${_targetdir}) - - # finally append the source files to the source list - list(APPEND ${_sources} ${_out_sources}) - endif(NOT RCGEN) - - # reset variable names used - unset(_current_arg_type) - unset(_arg) - unset(_ontologies) - unset(_ontofilenames) - unset(_classes) - unset(_visibility) - unset(_fastmode) - unset(_targetdir) - unset(_out_headers) - unset(_out_sources) - unset(rcgen_result) -endmacro(NEPOMUK_ADD_ONTOLOGY_CLASSES) |