Warning, /libraries/kdb/cmake/modules/KDbCreateSharedDataClasses.cmake is written in an unsupported language. File is not indexed.

0001 # This file defines the KDB_CREATE_SHARED_DATA_CLASSES macro.
0002 #
0003 # KDB_CREATE_SHARED_DATA_CLASSES(LIST)
0004 #   Creates header file out of the LIST files in .shared.h format.
0005 #   FILES should be a list of relative paths to ${CMAKE_SOURCE_DIR}.
0006 #
0007 # Following example creates ${CMAKE_CURRENT_BINARY_DIR}/Foo.h
0008 # and ${CMAKE_CURRENT_BINARY_DIR}/Baz.h files:
0009 #
0010 # INCLUDE(KDbCreateSharedDataClass)
0011 # KDB_CREATE_SHARED_DATA_CLASS(OUTPUT_VAR Bar/Foo.shared.h Baz.shared.h)
0012 #
0013 # Copyright (C) 2010 Jarosław Staniek <staniek@kde.org>
0014 #
0015 # Redistribution and use is allowed according to the terms of the BSD license.
0016 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
0017 
0018 macro(KDB_CREATE_SHARED_DATA_CLASSES)
0019     # message(STATUS "KDB_CREATE_SHARED_DATA_CLASSES ARGV: ${ARGV}")
0020     set(_args "")
0021     list(APPEND _args ${ARGV})
0022     list(GET _args 0 OUTPUT_VAR)
0023     list(GET _args 1 PREFIX)
0024     list(REMOVE_AT _args 0 1)
0025     # message(STATUS "OUTPUT_VAR: ${OUTPUT_VAR} ${_args}")
0026     find_package(PythonInterp)
0027     set_package_properties(PythonInterp PROPERTIES DESCRIPTION "Python language interpreter"
0028                            URL "https://www.python.org" TYPE REQUIRED
0029                            PURPOSE "Required by the Shared Data Classes (SDC) tool")
0030     foreach(_input ${_args})
0031         get_filename_component(INPUT ${_input} ABSOLUTE)
0032         string(REGEX REPLACE "\\.shared\\.h" ".h" OUTPUT ${_input})
0033         string(REGEX REPLACE ".*/([^/]+)\\.h" "\\1.h" OUTPUT ${OUTPUT})
0034         #MESSAGE(DEBUG "--------- ${_input} ${OUTPUT} ${INPUT}")
0035         #MESSAGE(DEBUG "COMMAND python2 ${CMAKE_SOURCE_DIR}/tools/sdc.py ${INPUT} ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT}")
0036         message(STATUS "Creating shared data class in ${OUTPUT} from ${_input}")
0037         if(${PREFIX} STREQUAL "NO_PREFIX")
0038             set(OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
0039         else()
0040             set(OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX})
0041             set(OUTPUT "${PREFIX}/${OUTPUT}")
0042         endif()
0043         # message(STATUS "OUTPUT_DIR: ${OUTPUT_DIR} ${PREFIX}")
0044         file(MAKE_DIRECTORY ${OUTPUT_DIR})
0045         execute_process(
0046             COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/sdc.py
0047                            ${INPUT}
0048                            ${OUTPUT_DIR}/${OUTPUT}
0049             WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
0050             RESULT_VARIABLE KDB_CREATE_SHARED_DATA_CLASSES_RESULT
0051         )
0052         # MESSAGE(STATUS "...result: ${KDB_CREATE_SHARED_DATA_CLASSES_RESULT}")
0053         list(APPEND ${OUTPUT_VAR} "${OUTPUT}")
0054     endforeach(_input)
0055 endmacro(KDB_CREATE_SHARED_DATA_CLASSES)
0056 
0057 macro(KDB_REMOVE_EXTENSIONS)
0058     # message(STATUS "KDB_REMOVE_EXTENSIONS ARGV: ${ARGV}")
0059     set(_args "")
0060     list(APPEND _args ${ARGV})
0061     list(GET _args 0 OUTPUT_VAR)
0062     list(REMOVE_AT _args 0)
0063     # message(STATUS "OUTPUT_VAR: ${OUTPUT_VAR} ${_args}")
0064     foreach(_input ${_args})
0065         string(REGEX REPLACE "\\.h" "" OUTPUT ${_input})
0066         # message(STATUS "...result: ${OUTPUT}")
0067         list(APPEND ${OUTPUT_VAR} "${OUTPUT}")
0068     endforeach(_input)
0069 endmacro(KDB_REMOVE_EXTENSIONS)