summaryrefslogtreecommitdiff
path: root/view/kernelcache/api/python
diff options
context:
space:
mode:
Diffstat (limited to 'view/kernelcache/api/python')
-rw-r--r--view/kernelcache/api/python/CMakeLists.txt30
1 files changed, 14 insertions, 16 deletions
diff --git a/view/kernelcache/api/python/CMakeLists.txt b/view/kernelcache/api/python/CMakeLists.txt
index 55dfa308..938bbf38 100644
--- a/view/kernelcache/api/python/CMakeLists.txt
+++ b/view/kernelcache/api/python/CMakeLists.txt
@@ -2,9 +2,11 @@ cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
project(kernelcache-python-api)
+include(${PROJECT_SOURCE_DIR}/../../../../cmake/PythonBindings.cmake)
+
file(GLOB PYTHON_SOURCES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/*.py)
list(REMOVE_ITEM PYTHON_SOURCES ${PROJECT_SOURCE_DIR}/_kernelcachecore.py)
-list(REMOVE_ITEM PYTHON_SOURCES ${PROJECT_SOURCE_DIR}/enums.py)
+list(REMOVE_ITEM PYTHON_SOURCES ${PROJECT_SOURCE_DIR}/kernelcache_enums.py)
add_executable(kernelcache_generator
${PROJECT_SOURCE_DIR}/generator.cpp)
@@ -33,18 +35,14 @@ if(WIN32)
endif()
endif()
-add_custom_target(kernelcache_generator_copy ALL
- BYPRODUCTS ${PROJECT_SOURCE_DIR}/_kernelcachecore.py ${PROJECT_SOURCE_DIR}/enums.py
- DEPENDS ${PYTHON_SOURCES} ${PROJECT_SOURCE_DIR}/../kernelcachecore.h $<TARGET_FILE:kernelcache_generator>
- COMMAND ${CMAKE_COMMAND} -E echo "Copying Kernel Cache Python Sources"
- COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTHON_OUTPUT_DIRECTORY}
- COMMAND ${CMAKE_COMMAND} -E env ASAN_OPTIONS=detect_leaks=0 $<TARGET_FILE:kernelcache_generator>
- ${PROJECT_SOURCE_DIR}/../kernelcachecore.h
- ${PROJECT_SOURCE_DIR}/_kernelcachecore.py
- ${PROJECT_SOURCE_DIR}/_kernelcachecore_template.py
- ${PROJECT_SOURCE_DIR}/kernelcache_enums.py
-
- COMMAND ${CMAKE_COMMAND} -E copy ${PYTHON_SOURCES} ${PYTHON_OUTPUT_DIRECTORY}
- COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/_kernelcachecore.py ${PYTHON_OUTPUT_DIRECTORY}
- COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/kernelcache_enums.py ${PYTHON_OUTPUT_DIRECTORY})
-
+generate_python_bindings(
+ TARGET_NAME kernelcache_generator_copy
+ DISPLAY_NAME "Kernel Cache"
+ GENERATOR_TARGET kernelcache_generator
+ HEADER_FILE ${PROJECT_SOURCE_DIR}/../kernelcachecore.h
+ TEMPLATE_FILE ${PROJECT_SOURCE_DIR}/_kernelcachecore_template.py
+ OUTPUT_DIRECTORY ${PYTHON_OUTPUT_DIRECTORY}
+ CORE_OUTPUT_FILE _kernelcachecore.py
+ ENUMS_OUTPUT_FILE kernelcache_enums.py
+ PYTHON_SOURCES ${PYTHON_SOURCES}
+)