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)