Switch to pybind11
With the switch to pybind11, the complexity of the Python integration in the TraceAnalyzer can be greatly reduced. The new code is much easier to understand and fixes a number of bugs regarding the Python integration.
This commit is contained in:
@@ -44,7 +44,14 @@ file(GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS *.cpp)
|
||||
file(GLOB_RECURSE HEADER_FILES CONFIGURE_DEPENDS *.h;*.hpp)
|
||||
|
||||
# Add Python3 Dependency:
|
||||
find_package(Python3 COMPONENTS Development)
|
||||
find_package(Python3 COMPONENTS Development Interpreter)
|
||||
|
||||
FetchContent_Declare(
|
||||
pybind11
|
||||
URL https://github.com/pybind/pybind11/archive/refs/tags/v2.10.4.zip
|
||||
)
|
||||
|
||||
FetchContent_MakeAvailable(pybind11)
|
||||
|
||||
# Add QWT Dependency:
|
||||
find_library(QWT_LIBRARY NAMES "qwt" "qwt-qt5" PATHS
|
||||
@@ -74,11 +81,10 @@ add_executable(TraceAnalyzer ${SOURCE_FILES} ${HEADER_FILES})
|
||||
target_include_directories(TraceAnalyzer
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
PRIVATE ${QWT_INCLUDE_DIRS}
|
||||
PRIVATE ${Python3_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_link_libraries(TraceAnalyzer
|
||||
PRIVATE ${Python3_LIBRARIES}
|
||||
PRIVATE pybind11::embed
|
||||
PRIVATE ${QWT_LIBRARY}
|
||||
PRIVATE Qt5::Widgets
|
||||
PRIVATE Qt5::Sql
|
||||
@@ -86,5 +92,12 @@ target_link_libraries(TraceAnalyzer
|
||||
PRIVATE DRAMSys::config
|
||||
)
|
||||
|
||||
set(DRAMSYS_TRACEANALYZER_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
target_compile_definitions(${PROJECT_NAME}
|
||||
PUBLIC
|
||||
DRAMSYS_TRACEANALYZER_DIR="${DRAMSYS_TRACEANALYZER_DIR}"
|
||||
)
|
||||
|
||||
build_source_group()
|
||||
diagnostics_print(${PROJECT_NAME})
|
||||
|
||||
Reference in New Issue
Block a user