Added SDK
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
function(embed_files TARGET)
|
||||
cmake_parse_arguments(EMBED_FILES "" "" "FOLDERS" ${ARGN})
|
||||
|
||||
set(EMBED_FILES_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/EmbeddedFiles")
|
||||
set(EMBED_FILES_HEADER "${EMBED_FILES_OUTPUT_DIR}/EmbeddedFiles.h")
|
||||
set(EMBED_FILES_RC "${EMBED_FILES_OUTPUT_DIR}/data.rc")
|
||||
|
||||
# Find the Python executable
|
||||
find_package(Python COMPONENTS Interpreter)
|
||||
if(Python_FOUND)
|
||||
set(PYTHON_EXECUTABLE ${Python_EXECUTABLE})
|
||||
else()
|
||||
find_program(PYTHON_EXECUTABLE NAMES python python2 python3)
|
||||
endif()
|
||||
|
||||
if(NOT PYTHON_EXECUTABLE)
|
||||
message(FATAL_ERROR "Python executable not found.")
|
||||
endif()
|
||||
|
||||
# Find the embed_files.py script
|
||||
find_file(EMBED_FILES_SCRIPT NAMES embed_files.py PATHS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH})
|
||||
|
||||
if(NOT EMBED_FILES_SCRIPT)
|
||||
message(FATAL_ERROR "embed_files.py script not found.")
|
||||
endif()
|
||||
|
||||
# Add the output directory to the target's include directories
|
||||
target_include_directories(${TARGET} PRIVATE ${EMBED_FILES_OUTPUT_DIR})
|
||||
|
||||
# Create a custom target to run the embed_files.py script unconditionally
|
||||
add_custom_target(${TARGET}_embed_files
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${EMBED_FILES_OUTPUT_DIR}
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${EMBED_FILES_SCRIPT} ${EMBED_FILES_FOLDERS} ${EMBED_FILES_OUTPUT_DIR}
|
||||
BYPRODUCTS ${EMBED_FILES_HEADER} ${EMBED_FILES_RC}
|
||||
COMMENT "Embedding files for target ${TARGET}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
if (${ALLINONE_BUILD})
|
||||
add_dependencies(${TARGET}_embed_files GenerateSDK)
|
||||
endif ()
|
||||
|
||||
# Add the custom target as a dependency of the main target
|
||||
add_dependencies(${TARGET} ${TARGET}_embed_files)
|
||||
|
||||
# Add the output header as a source file to the target
|
||||
target_sources(${TARGET} PRIVATE ${EMBED_FILES_HEADER})
|
||||
|
||||
# Add the RC file to the target's source files on Windows
|
||||
if(WIN32)
|
||||
target_sources(${TARGET} PRIVATE ${EMBED_FILES_RC})
|
||||
endif()
|
||||
|
||||
target_compile_definitions(${TARGET} PRIVATE UL_EMBED_FILES=1)
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user