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)