# Extract major and minor version components if("${Python3_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)\\.[0-9]+") set(PYTHON_MAJOR_VERSION "${CMAKE_MATCH_1}") set(PYTHON_MINOR_VERSION "${CMAKE_MATCH_2}") else() message(FATAL_ERROR "Failed to extract major and minor versions from Python3_VERSION.") endif() # Convert major and minor versions into an integer math(EXPR PYTHON_VERSION_INT "${PYTHON_MAJOR_VERSION} * 100 + ${PYTHON_MINOR_VERSION}") include_directories(${Python3_INCLUDE_DIRS}) configure_file(eztrace_python.h.in eztrace_python.h @ONLY) # C Tracer library add_library(eztrace-python SHARED eztrace_python.c ) target_link_libraries(eztrace-python PRIVATE dl eztrace-core eztrace-lib eztrace-instrumentation ${Python3_LIBRARIES} ) target_include_directories(eztrace-python PRIVATE ${CMAKE_SOURCE_DIR}/src/core/include/eztrace-core/ ${CMAKE_CURRENT_BINARY_DIR} ) install(TARGETS eztrace-python LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) # Configure and install the Python script configure_file(eztrace.py.in eztrace.py @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/eztrace.py DESTINATION ${CMAKE_INSTALL_BINDIR})