From 325bc103307d23e04dc418f30cd489a831a6d4b5 Mon Sep 17 00:00:00 2001 From: szdytom Date: Wed, 12 Jun 2024 09:15:00 +0100 Subject: [PATCH] use cmake to control auto generation Signed-off-by: szdytom --- CMakeLists.txt | 11 +++++++++-- python/CMakeLists.txt | 16 ++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 python/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 75367832..a79cef94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,12 +37,19 @@ endif() configure_file("include/pocketpy/common/version.h.in" "pocketpy/common/version.h") -target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17 c_std_11) +add_subdirectory(python) +add_dependencies(${PROJECT_NAME} EmbedPyLibs) +target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17 c_std_11) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include ${PROJECT_BINARY_DIR}) + file(GLOB_RECURSE POCKETPY_SRC_CPP ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp) file(GLOB_RECURSE POCKETPY_SRC_C ${CMAKE_CURRENT_LIST_DIR}/src/*.c) -target_sources(${PROJECT_NAME} PRIVATE ${POCKETPY_SRC_CPP} ${POCKETPY_SRC_C}) +target_sources(${PROJECT_NAME} PRIVATE + ${POCKETPY_SRC_CPP} + ${POCKETPY_SRC_C} + ${CMAKE_CURRENT_LIST_DIR}/src/common/_generated.cpp +) set_target_properties( ${PROJECT_NAME} diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt new file mode 100644 index 00000000..fccd45cf --- /dev/null +++ b/python/CMakeLists.txt @@ -0,0 +1,16 @@ +find_package(Python3 REQUIRED) + +file(GLOB_RECURSE POCKETPY_PYLIB_SRC ${CMAKE_CURRENT_LIST_DIR}/*.py) + +add_custom_target(EmbedPyLibs ALL + COMMENT "Embedding Python library sources..." + COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/../prebuild.py + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/.. + DEPENDS + ${CMAKE_CURRENT_LIST_DIR}/../prebuild.py + ${POCKETPY_PYLIB_SRC} + BYPRODUCTS + ${CMAKE_CURRENT_LIST_DIR}/../include/pocketpy/common/_generated.hpp + ${CMAKE_CURRENT_LIST_DIR}/../src/common/_generated.cpp + VERBATIM +)