summaryrefslogtreecommitdiff
path: root/view/sharedcache/api/python
diff options
context:
space:
mode:
Diffstat (limited to 'view/sharedcache/api/python')
-rw-r--r--view/sharedcache/api/python/CMakeLists.txt30
1 files changed, 14 insertions, 16 deletions
diff --git a/view/sharedcache/api/python/CMakeLists.txt b/view/sharedcache/api/python/CMakeLists.txt
index 8e091eea..b6f6f875 100644
--- a/view/sharedcache/api/python/CMakeLists.txt
+++ b/view/sharedcache/api/python/CMakeLists.txt
@@ -2,9 +2,11 @@ cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
project(sharedcache-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}/_sharedcachecore.py)
-list(REMOVE_ITEM PYTHON_SOURCES ${PROJECT_SOURCE_DIR}/enums.py)
+list(REMOVE_ITEM PYTHON_SOURCES ${PROJECT_SOURCE_DIR}/sharedcache_enums.py)
add_executable(sharedcache_generator
${PROJECT_SOURCE_DIR}/generator.cpp)
@@ -33,18 +35,14 @@ if(WIN32)
endif()
endif()
-add_custom_target(sharedcache_generator_copy ALL
- BYPRODUCTS ${PROJECT_SOURCE_DIR}/_sharedcachecore.py ${PROJECT_SOURCE_DIR}/enums.py
- DEPENDS ${PYTHON_SOURCES} ${PROJECT_SOURCE_DIR}/../sharedcachecore.h $<TARGET_FILE:sharedcache_generator>
- COMMAND ${CMAKE_COMMAND} -E echo "Copying Shared Cache Python Sources"
- COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTHON_OUTPUT_DIRECTORY}
- COMMAND ${CMAKE_COMMAND} -E env ASAN_OPTIONS=detect_leaks=0 $<TARGET_FILE:sharedcache_generator>
- ${PROJECT_SOURCE_DIR}/../sharedcachecore.h
- ${PROJECT_SOURCE_DIR}/_sharedcachecore.py
- ${PROJECT_SOURCE_DIR}/_sharedcachecore_template.py
- ${PROJECT_SOURCE_DIR}/sharedcache_enums.py
-
- COMMAND ${CMAKE_COMMAND} -E copy ${PYTHON_SOURCES} ${PYTHON_OUTPUT_DIRECTORY}
- COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/_sharedcachecore.py ${PYTHON_OUTPUT_DIRECTORY}
- COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/sharedcache_enums.py ${PYTHON_OUTPUT_DIRECTORY})
-
+generate_python_bindings(
+ TARGET_NAME sharedcache_generator_copy
+ DISPLAY_NAME "Shared Cache"
+ GENERATOR_TARGET sharedcache_generator
+ HEADER_FILE ${PROJECT_SOURCE_DIR}/../sharedcachecore.h
+ TEMPLATE_FILE ${PROJECT_SOURCE_DIR}/_sharedcachecore_template.py
+ OUTPUT_DIRECTORY ${PYTHON_OUTPUT_DIRECTORY}
+ CORE_OUTPUT_FILE _sharedcachecore.py
+ ENUMS_OUTPUT_FILE sharedcache_enums.py
+ PYTHON_SOURCES ${PYTHON_SOURCES}
+)