use cmake to control auto generation

Signed-off-by: szdytom <szdytom@qq.com>
This commit is contained in:
方而静 2024-06-12 09:15:00 +01:00
parent 2b2b25e868
commit 325bc10330
2 changed files with 25 additions and 2 deletions

View File

@ -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}

16
python/CMakeLists.txt Normal file
View File

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