summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/CMakeLists.txt29
1 files changed, 9 insertions, 20 deletions
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 4e147d00..d8f733d0 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -31,25 +31,14 @@ if(BN_INTERNAL_BUILD)
COMMAND ${CMAKE_COMMAND} -E copy ${BN_CORE_OUTPUT_DIR}/binaryninjacore.dll ${PROJECT_BINARY_DIR}/)
endif()
- # Generate script to copy python sources with the correct paths
- file(GENERATE OUTPUT ${PROJECT_BINARY_DIR}/copy_python_sources.cmake
- CONTENT "
- foreach(PYTHON_SOURCE ${PYTHON_SOURCES})
- cmake_path(RELATIVE_PATH PYTHON_SOURCE BASE_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE OUTPUT_SUBPATH)
- cmake_path(REMOVE_FILENAME OUTPUT_SUBPATH)
- file(COPY $\{PYTHON_SOURCE\} DESTINATION ${BN_RESOURCE_DIR}/python/binaryninja/$\{OUTPUT_SUBPATH\})
- endforeach()
- "
- )
-
- add_custom_target(generator_copy ALL
- BYPRODUCTS ${PROJECT_SOURCE_DIR}/_binaryninjacore.py ${PROJECT_SOURCE_DIR}/enums.py
- DEPENDS ${PYTHON_SOURCES} ${PROJECT_SOURCE_DIR}/../binaryninjacore.h $<TARGET_FILE:generator>
- COMMENT "Copying API Python sources"
- COMMAND ${CMAKE_COMMAND} -E make_directory ${BN_RESOURCE_DIR}/python/binaryninja/
- COMMAND ${CMAKE_COMMAND} -E env ASAN_OPTIONS=detect_leaks=0 $<TARGET_FILE:generator> ${PROJECT_SOURCE_DIR}/../binaryninjacore.h ${PROJECT_SOURCE_DIR}/_binaryninjacore.py ${PROJECT_SOURCE_DIR}/enums.py
- COMMAND ${CMAKE_COMMAND} -P ${PROJECT_BINARY_DIR}/copy_python_sources.cmake
- COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/_binaryninjacore.py ${BN_RESOURCE_DIR}/python/binaryninja/
- COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/enums.py ${BN_RESOURCE_DIR}/python/binaryninja/
+ generate_python_bindings(
+ TARGET_NAME generator_copy
+ DISPLAY_NAME "Binary Ninja"
+ GENERATOR_TARGET generator
+ HEADER_FILE ${PROJECT_SOURCE_DIR}/../binaryninjacore.h
+ OUTPUT_DIRECTORY ${BN_RESOURCE_DIR}/python/binaryninja
+ CORE_OUTPUT_FILE _binaryninjacore.py
+ ENUMS_OUTPUT_FILE enums.py
+ PYTHON_SOURCES ${PYTHON_SOURCES}
)
endif()