add new CMake macro generate_from_any and extend PythonToCPP script to create source file from any text file
This commit is contained in:
@@ -161,6 +161,19 @@ macro(generate_from_py BASE_NAME OUTPUT_FILE)
|
||||
COMMENT "Building files out of ${BASE_NAME}.py")
|
||||
endmacro(generate_from_py)
|
||||
|
||||
macro(generate_from_any INPUT_FILE OUTPUT_FILE VARIABLE)
|
||||
set(TOOL_PATH "${CMAKE_SOURCE_DIR}/src/Tools/PythonToCPP.py")
|
||||
file(TO_NATIVE_PATH "${TOOL_PATH}" TOOL_NATIVE_PATH)
|
||||
file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${INPUT_FILE}" SOURCE_NATIVE_PATH)
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_FILE}"
|
||||
COMMAND "${PYTHON_EXECUTABLE}" "${TOOL_NATIVE_PATH}" "${SOURCE_NATIVE_PATH}" "${OUTPUT_FILE}" "${VARIABLE}"
|
||||
MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/${INPUT_FILE}"
|
||||
DEPENDS "${TOOL_PATH}"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
COMMENT "Building files out of ${INPUT_FILE}")
|
||||
endmacro(generate_from_any)
|
||||
|
||||
|
||||
# generates the ui -> cpp h files
|
||||
#macro(qt4_wrap_ui infiles )
|
||||
|
||||
@@ -9,19 +9,24 @@ import os,sys,string
|
||||
|
||||
file = open(sys.argv[1])
|
||||
|
||||
if(len(sys.argv) > 3):
|
||||
sys.stderr.write("Wrong Parameter\n Usage:\n PythonToCPP Infile.py [Outfile]\n")
|
||||
if(len(sys.argv) > 4):
|
||||
sys.stderr.write("Wrong Parameter\n Usage:\n PythonToCPP Infile.py [Outfile][Variable]\n")
|
||||
|
||||
if(len(sys.argv) > 2):
|
||||
out = open(sys.argv[2],"w");
|
||||
else:
|
||||
out = sys.stdout
|
||||
|
||||
if(len(sys.argv) > 3):
|
||||
identifier = sys.argv[3]
|
||||
else:
|
||||
identifier = os.path.basename(sys.argv[1])
|
||||
identifier = identifier[:-3]
|
||||
|
||||
lines = file.readlines()
|
||||
|
||||
# We want to use this script for files in another directory, so we extract the actual file name
|
||||
fn = os.path.basename(sys.argv[1])
|
||||
out.write("const char " + fn[:-3] + "[] =")
|
||||
out.write("const char " + identifier + "[] =")
|
||||
|
||||
for line in lines:
|
||||
# remove new line
|
||||
|
||||
Reference in New Issue
Block a user