get_filename_component(_TEST_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) add_executable(${_TEST_NAME}_tests ${_TEST_NAME}_tests_main.cpp test_dev_mapping.cpp test_network_versions.cpp test_action_source.cpp test_plugin_host_api.cpp test_plugin_capability_config.cpp test_plugin_config.cpp test_plugin_capabilities_in_use.cpp test_plugin_status.cpp test_printer_agent.cpp test_plugin_install.cpp test_plugin_lifecycle.cpp test_slicing_pipeline_bindings.cpp test_slicing_pipeline_config.cpp test_plugin_sort.cpp test_plugin_cloud_metadata.cpp test_plugin_audit.cpp ../fff_print/test_helpers.cpp ) if (MSVC) target_link_libraries(${_TEST_NAME}_tests Setupapi.lib) endif () target_link_libraries(${_TEST_NAME}_tests test_common libslic3r_gui libslic3r pybind11::embed Catch2::Catch2WithMain) set_property(TARGET ${_TEST_NAME}_tests PROPERTY FOLDER "tests") orcaslicer_copy_test_dlls() if (WIN32) add_custom_command(TARGET ${_TEST_NAME}_tests POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "$/python" COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_PREFIX_PATH}/libpython" "$/python" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_PREFIX_PATH}/libpython/python${_bundled_python_abi}.dll" "${CMAKE_PREFIX_PATH}/libpython/vcruntime140.dll" "${CMAKE_PREFIX_PATH}/libpython/vcruntime140_1.dll" "$" COMMENT "Copying Python runtime for slic3rutils plugin host API tests" VERBATIM ) elseif (APPLE) target_link_options(${_TEST_NAME}_tests PRIVATE "LINKER:-rpath,@executable_path/python/lib") add_custom_command(TARGET ${_TEST_NAME}_tests POST_BUILD COMMAND ${CMAKE_COMMAND} -E rm -rf "$/python" COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_PREFIX_PATH}/libpython" "$/python" COMMENT "Copying Python runtime for macOS plugin host API tests" VERBATIM ) endif() orcaslicer_discover_tests(${_TEST_NAME}_tests) # why: the loader runs on a detached worker thread, so its Python interpreter # ownership model cannot share the embedded interpreter in the main test binary. add_executable(printer_agent_plugin_tests test_printer_agent_plugin.cpp) if (MSVC) target_link_libraries(printer_agent_plugin_tests Setupapi.lib) endif () target_link_libraries(printer_agent_plugin_tests test_common libslic3r_gui libslic3r pybind11::embed Catch2::Catch2) set_property(TARGET printer_agent_plugin_tests PROPERTY FOLDER "tests") # why: the existing target stages the complete bundled Python home under # python/, which is the layout PythonInterpreter discovers beside the test exe. add_dependencies(printer_agent_plugin_tests ${_TEST_NAME}_tests) orcaslicer_copy_test_dlls() orcaslicer_discover_tests(printer_agent_plugin_tests)