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 +)