I am building an application using Pybind11 and CMake. I got almost everything to work, but there are two things that I cannot figure out:
1.) No matter what I do, I only get a Debug folder with my .pyd files in it. How do I force CMake to make a Release version? -DCMAKE_BUILD_TYPE=Release on the command line does not do it, and setting it in the CMakeFiles.txt doesn't either.
2.) After successful building, I would like to have my .pyd files copied to my site-packages folder. I thought that the last line in my CMakeFiles.txt would do that, but it doesn't. Or do I have to invoke something besides cmake --build .?
Here's my CMakeFiles.txt:
cmake_minimum_required(VERSION 3.15...3.29)
project(b LANGUAGES CXX)
set(CMAKE_BUILD_TYPE Release)
set(pybind11_DIR C:/Users/peter/.virtualenvs/b_tool-z3PwOKEe/Lib/site-packages/pybind11/share/cmake/pybind11)
set(PYBIND11_FINDPYTHON ON)
find_package(pybind11 CONFIG REQUIRED)
set(CMAKE_CXX_STANDARD 20 CACHE STRING "C++ version selection")
include_directories(C:/Users/peter/AppData/Local/Programs/Python/Python310/include
C:/Users/peter/.virtualenvs/b_tool-z3PwOKEe/Lib/site-packages/pybind11/include
modules/surface_mesh/include
modules/magnet/include
include
C:/3rd_party/glm)
####################################################################
# mesh
####################################################################
add_library(sfc_elements modules/surface_mesh/src/sfc_elements.cpp)
pybind11_add_module(surface_mesh modules/surface_mesh/src/surface_mesh.cpp)
target_link_libraries(surface_mesh PRIVATE sfc_elements)
####################################################################
# magnet
####################################################################
add_library(ring modules/magnet/src/ring.cpp)
add_library(b_ring modules/magnet/src/b_ring.cpp)
add_library(cel modules/magnet/src/cel.cpp)
pybind11_add_module(CMagnet modules/magnet/src/c_magnet.cpp)
target_link_libraries(CMagnet PRIVATE ring)
target_link_libraries(CMagnet PRIVATE b_ring)
target_link_libraries(CMagnet PRIVATE cel)
install(TARGETS surface_mesh CMagnet COMPONENT python DESTINATION C:/Users/peter/.virtualenvs/b_tool-z3PwOKEe/Lib/site-packages)