From 7b0e263d851c9ca1a8ffb50a74b52a0489c02c4e Mon Sep 17 00:00:00 2001 From: Kerstin Keller Date: Wed, 16 Oct 2024 18:07:06 +0200 Subject: [PATCH] [python] First time successfully debugging Python extensions from Visual Studio --- lang/python/CMakeLists.txt | 107 +++++++++++++++++- lang/python/core/CMakeLists.txt | 51 +++++++-- lang/python/ecalhdf5/CMakeLists.txt | 47 ++++++-- lang/python/sample.pyproj.in | 50 ++++++++ .../python/samples/core/pubsub/string_rec.py | 0 .../samples/measurement/low_level_rw.py | 0 .../measurement/low_level_rw_protobuf.py | 0 .../samples/measurement}/measurement_read.py | 0 pyproject.toml | 3 +- samples/CMakeLists.txt | 37 +++--- .../ecalhdf5_protobuf_rw/CMakeLists.txt | 32 ------ .../ecalhdf5_protobuf_rw.pyproj | 35 ------ .../measurement/ecalhdf5_rw/CMakeLists.txt | 32 ------ .../ecalhdf5_rw/ecalhdf5_rw.pyproj | 35 ------ .../measurement_read/CMakeLists.txt | 32 ------ .../measurement_read/measurement_read.pyproj | 35 ------ 16 files changed, 250 insertions(+), 246 deletions(-) create mode 100644 lang/python/sample.pyproj.in rename samples/python/pubsub/string/minimal_rec/minimal_rec.py => lang/python/samples/core/pubsub/string_rec.py (100%) rename samples/python/measurement/ecalhdf5_rw/ecalhdf5_rw.py => lang/python/samples/measurement/low_level_rw.py (100%) rename samples/python/measurement/ecalhdf5_protobuf_rw/ecalhdf5_protobuf_rw.py => lang/python/samples/measurement/low_level_rw_protobuf.py (100%) rename {samples/python/measurement/measurement_read => lang/python/samples/measurement}/measurement_read.py (100%) delete mode 100644 samples/python/measurement/ecalhdf5_protobuf_rw/CMakeLists.txt delete mode 100644 samples/python/measurement/ecalhdf5_protobuf_rw/ecalhdf5_protobuf_rw.pyproj delete mode 100644 samples/python/measurement/ecalhdf5_rw/CMakeLists.txt delete mode 100644 samples/python/measurement/ecalhdf5_rw/ecalhdf5_rw.pyproj delete mode 100644 samples/python/measurement/measurement_read/CMakeLists.txt delete mode 100644 samples/python/measurement/measurement_read/measurement_read.pyproj diff --git a/lang/python/CMakeLists.txt b/lang/python/CMakeLists.txt index eeeee67a9d..42ae617653 100644 --- a/lang/python/CMakeLists.txt +++ b/lang/python/CMakeLists.txt @@ -1,6 +1,6 @@ # ========================= eCAL LICENSE ================================= # -# Copyright (C) 2016 - 2019 Continental Corporation +# Copyright (C) 2016 - 2024 Continental Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -24,6 +24,86 @@ cmake_minimum_required(VERSION 3.18...3.26) project(ecal_python) find_package(Python REQUIRED COMPONENTS Development.Module Interpreter) +option(ECAL_PYTHON_BUILD_SAMPLES "Includes the python samples" ON) +option(ECAL_PYTHON_BUILD_TESTS "Includes the python tests" ON) +option(ECAL_PYTHON_HAS_HDF5 "Enables eCAL application cmd line interfaces" ON) + +set(ECAL_PYTHON_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}) + + +function(copy_python_code) + set(singleValueArgs TARGET PYTHON_CODE_ROOT) + set(multiValueArgs PYTHON_FILES) + cmake_parse_arguments(ARGUMENTS + "" + "${singleValueArgs}" + "${multiValueArgs}" ${ARGN} ) + + cmake_path( + ABSOLUTE_PATH ARGUMENTS_PYTHON_CODE_ROOT + OUTPUT_VARIABLE absolute_path_python_code_root + ) + + foreach (python_file ${ARGUMENTS_PYTHON_FILES}) + cmake_path( + ABSOLUTE_PATH python_file + OUTPUT_VARIABLE absolute_path_python_file + ) + + cmake_path( + RELATIVE_PATH absolute_path_python_file + BASE_DIRECTORY ${absolute_path_python_code_root} + OUTPUT_VARIABLE relative_path) + + + # Now we actually copy the file to the correct directory + set(origin_file ${absolute_path_python_file}) + set(destination_file ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/python/${relative_path}) + file( + GENERATE + OUTPUT ${destination_file} + INPUT ${origin_file} + ) + + endforeach() +endfunction() + +function(ecal_python_set_output_directory TARGET_NAME) + set_target_properties(${TARGET_NAME} PROPERTIES + LIBRARY_OUTPUT_DIRECTORY $,${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/python/ecal,${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/python/ecal> + ) +endfunction() + +function(ecal_python_add_sample) + set(singleValueArgs PY_FILE TARGET_NAME) + cmake_parse_arguments(ARGUMENTS + "" + "${singleValueArgs}" + "" ${ARGN} ) + + set(ECAL_PYPROJ_FILE ${ARGUMENTS_PY_FILE}) + string(UUID ECAL_PYPROJ_GUID NAMESPACE 8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942 NAME ${ARGUMENTS_TARGET_NAME} + TYPE MD5) + get_target_property(ECAL_PYPROJ_INTERPRETER_DEBUG Python::Interpreter LOCATION) + get_target_property(ECAL_PYPROJ_INTERPRETER_RELEASE Python::Interpreter LOCATION) + set(ECAL_PYPROJ_NAME ${ARGUMENTS_TARGET_NAME}) + set(ECAL_PYPROJ_PYTHON_VERSION ${Python_VERSION}) + set(ECAL_PYPROJ_SEARCH_PATH_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Debug/python) + set(ECAL_PYPROJ_SEARCH_PATH_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Release/python) + set(ECAL_PYPROJ_SEARCH_PATH_RELWITHDEBINFO ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/RelWithDebInfo/python/ecal) + + set(generated_pyproj_path ${CMAKE_CURRENT_BINARY_DIR}/${ARGUMENTS_TARGET_NAME}.pyproj) + + # Generate the .pyproj file from the template + configure_file( + ${ECAL_PYTHON_DIRECTORY}/sample.pyproj.in + ${generated_pyproj_path} + @ONLY + ) + + include_external_msproject(${ARGUMENTS_TARGET_NAME} ${generated_pyproj_path}) +endfunction() + # Convenience target to have all Python targets buildable via one name add_custom_target(${PROJECT_NAME}) @@ -47,3 +127,28 @@ else() message(WARNING "Building Python bindings without HDF5 support") endif() +if (ECAL_PYTHON_BUILD_SAMPLES) + add_subdirectory(samples) +endif() + +if (WIN32) + add_custom_target(copy_ecal_core_dll ALL + COMMAND cmake -E copy_if_different "$" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/python/ecal" + COMMENT "Copy eCAL Core DLL to python directory" + DEPENDS eCAL::core + ) + set_property(TARGET copy_ecal_core_dll PROPERTY FOLDER lang/python/core) +endif() + +#This is a really hacky way. Let's do this differently. +if (WIN32 AND HAS_HDF5) + if (TARGET hdf5::hdf5-shared) + add_custom_target(copy_hdf5_dll ALL + COMMAND cmake -E copy_if_different "$" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/python/ecal" + COMMENT "Copy eCAL Core DLL to python directory" + DEPENDS hdf5::hdf5-shared + ) + set_property(TARGET copy_hdf5_dll PROPERTY FOLDER lang/python/core) + endif() +endif() + diff --git a/lang/python/core/CMakeLists.txt b/lang/python/core/CMakeLists.txt index c6d1972e1c..47069427c3 100644 --- a/lang/python/core/CMakeLists.txt +++ b/lang/python/core/CMakeLists.txt @@ -1,6 +1,6 @@ # ========================= eCAL LICENSE ================================= # -# Copyright (C) 2016 - 2019 Continental Corporation +# Copyright (C) 2016 - 2024 Continental Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,12 +18,35 @@ project(_ecal_core_py) +###### +# build +###### python_add_library(${PROJECT_NAME} MODULE WITH_SOABI src/ecal_clang.cpp src/ecal_clang.h src/ecal_wrap.cxx ) +set(python_files + ecal/__init__.py + ecal/core/__init__.py + ecal/core/core.py + ecal/core/publisher.py + ecal/core/service.py + ecal/core/subscriber.py + ecal/proto/__init__.py + ecal/proto/helper.py +) + +target_sources(${PROJECT_NAME} + PUBLIC + FILE_SET ecal_core_python_files + TYPE HEADERS + BASE_DIRS . + FILES + ${python_files} +) + target_link_libraries(${PROJECT_NAME} PRIVATE eCAL::core @@ -31,20 +54,28 @@ target_link_libraries(${PROJECT_NAME} target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14) -set_target_properties(${PROJECT_NAME} PROPERTIES - FOLDER lang/python/core -) +######## +# installation +######## install(TARGETS ${PROJECT_NAME} core RUNTIME DESTINATION ecal COMPONENT python EXCLUDE_FROM_ALL LIBRARY DESTINATION ecal COMPONENT python EXCLUDE_FROM_ALL NAMELINK_SKIP ) -if(ECAL_INCLUDE_PY_SAMPLES) - if(WIN32) - include_external_msproject(ecal_core_py ${CMAKE_CURRENT_SOURCE_DIR}/ecal_core_py.pyproj) - set_property(TARGET ecal_core_py PROPERTY FOLDER lang/python/core) +############## +# IDE appearance +############## +set_target_properties(${PROJECT_NAME} PROPERTIES + FOLDER lang/python/core +) +source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Python Files" FILES ${python_files}) + + +########## +# IDE Debugging / Runtime +########### +copy_python_code(TARGET ${PROJECT_NAME} PYTHON_FILES ${python_files} PYTHON_CODE_ROOT .) - endif() -endif() +ecal_python_set_output_directory(${PROJECT_NAME}) \ No newline at end of file diff --git a/lang/python/ecalhdf5/CMakeLists.txt b/lang/python/ecalhdf5/CMakeLists.txt index 560b878730..b98c66cacf 100644 --- a/lang/python/ecalhdf5/CMakeLists.txt +++ b/lang/python/ecalhdf5/CMakeLists.txt @@ -1,6 +1,6 @@ # ========================= eCAL LICENSE ================================= # -# Copyright (C) 2016 - 2019 Continental Corporation +# Copyright (C) 2016 - 2024 Continental Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,10 +18,29 @@ project(_ecal_hdf5_py) +###### +# build +###### python_add_library(${PROJECT_NAME} MODULE WITH_SOABI src/ecalhdf5_wrap.cxx ) +set(python_files + ecal/measurement/hdf5.py + ecal/measurement/measurement.py + ecal/measurement/writer.py + ecal/measurement/__init__.py +) + +target_sources(${PROJECT_NAME} + PUBLIC + FILE_SET ecal_hdf5_python_files + TYPE HEADERS + BASE_DIRS . + FILES + ${python_files} +) + target_link_libraries(${PROJECT_NAME} PRIVATE eCAL::hdf5 @@ -29,10 +48,9 @@ target_link_libraries(${PROJECT_NAME} target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14) -set_target_properties(${PROJECT_NAME} PROPERTIES - FOLDER lang/python/hdf5 -) - +######## +# installation +######## if(TARGET hdf5-shared) install(TARGETS ${PROJECT_NAME} hdf5-shared RUNTIME DESTINATION ecal COMPONENT python EXCLUDE_FROM_ALL @@ -44,11 +62,18 @@ install(TARGETS ${PROJECT_NAME} DESTINATION ecal COMPONENT python EXCLUDE_FROM_ALL ) -if(ECAL_INCLUDE_PY_SAMPLES) - if(WIN32) - include_external_msproject(ecal_hdf5_py ${CMAKE_CURRENT_SOURCE_DIR}/ecal_hdf5_py.pyproj) - set_property(TARGET ecal_hdf5_py PROPERTY FOLDER lang/python/hdf5) +############## +# IDE appearance +############## +source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Python Files" FILES ${python_files}) +set_target_properties(${PROJECT_NAME} PROPERTIES + FOLDER lang/python/hdf5 +) + +########## +# IDE Debugging / Runtime +########### +copy_python_code(TARGET ${PROJECT_NAME} PYTHON_FILES ${python_files} PYTHON_CODE_ROOT .) - endif() -endif() +ecal_python_set_output_directory(${PROJECT_NAME}) \ No newline at end of file diff --git a/lang/python/sample.pyproj.in b/lang/python/sample.pyproj.in new file mode 100644 index 0000000000..c1551d829f --- /dev/null +++ b/lang/python/sample.pyproj.in @@ -0,0 +1,50 @@ + + + + 2.0 + @ECAL_PYPROJ_GUID@ + . + @ECAL_PYPROJ_FILE@ + @ECAL_PYPROJ_SEARCH_PATH_RELEASE@ + . + . + @ECAL_PYPROJ_NAME@ + @ECAL_PYPROJ_NAME@ + MSBuild|debugging-env|$(MSBuildProjectFullPath) + + + true + false + + + true + false + + + true + false + + + + + + + debugging-env + 0.0 + eCAL Debugging Environment (Python @ECAL_PYPROJ_PYTHON_VERSION@ ) + @ECAL_PYPROJ_INTERPRETER_RELEASE@ + @ECAL_PYPROJ_INTERPRETER_RELEASE@ + PYTHONPATH + X64 + + + + + + + + + + \ No newline at end of file diff --git a/samples/python/pubsub/string/minimal_rec/minimal_rec.py b/lang/python/samples/core/pubsub/string_rec.py similarity index 100% rename from samples/python/pubsub/string/minimal_rec/minimal_rec.py rename to lang/python/samples/core/pubsub/string_rec.py diff --git a/samples/python/measurement/ecalhdf5_rw/ecalhdf5_rw.py b/lang/python/samples/measurement/low_level_rw.py similarity index 100% rename from samples/python/measurement/ecalhdf5_rw/ecalhdf5_rw.py rename to lang/python/samples/measurement/low_level_rw.py diff --git a/samples/python/measurement/ecalhdf5_protobuf_rw/ecalhdf5_protobuf_rw.py b/lang/python/samples/measurement/low_level_rw_protobuf.py similarity index 100% rename from samples/python/measurement/ecalhdf5_protobuf_rw/ecalhdf5_protobuf_rw.py rename to lang/python/samples/measurement/low_level_rw_protobuf.py diff --git a/samples/python/measurement/measurement_read/measurement_read.py b/lang/python/samples/measurement/measurement_read.py similarity index 100% rename from samples/python/measurement/measurement_read/measurement_read.py rename to lang/python/samples/measurement/measurement_read.py diff --git a/pyproject.toml b/pyproject.toml index 7e8b30cd61..9c3a9aa5c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,7 +44,8 @@ sdist.only-include = [ "/README.md", "/app/app_pb/", "/app/apps/", # TODO: Remove this directory - "/app/rec/rec_addon_*/", # TODO: Remove this directory + "/app/rec/rec_addon_core/", # TODO: Remove this directory + "/app/rec/rec_addon_dummy/", # TODO: Remove this directory "/cmake/", "/contrib/", "/cpack/", diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index eb2ce18369..ef0e0bd360 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -64,33 +64,26 @@ endif(HAS_QT) if(BUILD_PY_BINDING) if(WIN32) # benchmarks - add_subdirectory(python/benchmarks/latency_rec) - add_subdirectory(python/benchmarks/latency_rec_cb) - add_subdirectory(python/benchmarks/latency_snd) - - # measurement - if(HAS_HDF5) - add_subdirectory(python/measurement/ecalhdf5_rw) - add_subdirectory(python/measurement/ecalhdf5_protobuf_rw) - add_subdirectory(python/measurement/measurement_read) - endif(HAS_HDF5) + #add_subdirectory(python/benchmarks/latency_rec) + #add_subdirectory(python/benchmarks/latency_rec_cb) + #add_subdirectory(python/benchmarks/latency_snd) # monitoring - add_subdirectory(python/monitoring/monitoring) - add_subdirectory(python/monitoring/monitoring_json) + #add_subdirectory(python/monitoring/monitoring) + #add_subdirectory(python/monitoring/monitoring_json) # pubsub - add_subdirectory(python/pubsub/protobuf/person_rec) - add_subdirectory(python/pubsub/protobuf/person_rec_cb) - add_subdirectory(python/pubsub/protobuf/person_snd) - add_subdirectory(python/pubsub/string/minimal_rec) - add_subdirectory(python/pubsub/string/minimal_rec_cb) - add_subdirectory(python/pubsub/string/minimal_snd) - add_subdirectory(python/pubsub/binary/binary_rec) - add_subdirectory(python/pubsub/binary/binary_rec_cb) - add_subdirectory(python/pubsub/binary/binary_snd) + #add_subdirectory(python/pubsub/protobuf/person_rec) + #add_subdirectory(python/pubsub/protobuf/person_rec_cb) + #add_subdirectory(python/pubsub/protobuf/person_snd) + #add_subdirectory(python/pubsub/string/minimal_rec) + #add_subdirectory(python/pubsub/string/minimal_rec_cb) + #add_subdirectory(python/pubsub/string/minimal_snd) + #add_subdirectory(python/pubsub/binary/binary_rec) + #add_subdirectory(python/pubsub/binary/binary_rec_cb) + #add_subdirectory(python/pubsub/binary/binary_snd) # services - add_subdirectory(python/services/minimal_service) + #add_subdirectory(python/services/minimal_service) endif(WIN32) endif(BUILD_PY_BINDING) diff --git a/samples/python/measurement/ecalhdf5_protobuf_rw/CMakeLists.txt b/samples/python/measurement/ecalhdf5_protobuf_rw/CMakeLists.txt deleted file mode 100644 index 0ce5295257..0000000000 --- a/samples/python/measurement/ecalhdf5_protobuf_rw/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -# ========================= eCAL LICENSE ================================= -# -# Copyright (C) 2016 - 2019 Continental Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ========================= eCAL LICENSE ================================= - -project(ecalhdf5_protobuf_rw) - -find_package(eCAL REQUIRED) - -set(PROJECT_GROUP ecalhdf5_protobuf_rw) - -if(ECAL_INCLUDE_PY_SAMPLES) - if(WIN32) - - include_external_msproject(${PROJECT_NAME}_py ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pyproj) - set_property(TARGET ${PROJECT_NAME}_py PROPERTY FOLDER samples/python/${PROJECT_GROUP}) - - endif() -endif() diff --git a/samples/python/measurement/ecalhdf5_protobuf_rw/ecalhdf5_protobuf_rw.pyproj b/samples/python/measurement/ecalhdf5_protobuf_rw/ecalhdf5_protobuf_rw.pyproj deleted file mode 100644 index 09c1b8c868..0000000000 --- a/samples/python/measurement/ecalhdf5_protobuf_rw/ecalhdf5_protobuf_rw.pyproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - Debug - 2.0 - . - ecalhdf5_protobuf_rw.py - ..\..\..\lang\python\src - . - . - ecalhdf5_protobuf_rw - measurement_read - {3b37f456-c807-3a24-9ba7-d4757cf4ca23} - - - true - false - - - true - false - - - - - - 10.0 - - - - - - - - \ No newline at end of file diff --git a/samples/python/measurement/ecalhdf5_rw/CMakeLists.txt b/samples/python/measurement/ecalhdf5_rw/CMakeLists.txt deleted file mode 100644 index 41aa93715a..0000000000 --- a/samples/python/measurement/ecalhdf5_rw/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -# ========================= eCAL LICENSE ================================= -# -# Copyright (C) 2016 - 2019 Continental Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ========================= eCAL LICENSE ================================= - -project(ecalhdf5_rw) - -find_package(eCAL REQUIRED) - -set(PROJECT_GROUP ecalhdf5) - -if(ECAL_INCLUDE_PY_SAMPLES) - if(WIN32) - - include_external_msproject(${PROJECT_NAME}_py ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pyproj) - set_property(TARGET ${PROJECT_NAME}_py PROPERTY FOLDER samples/python/${PROJECT_GROUP}) - - endif() -endif() diff --git a/samples/python/measurement/ecalhdf5_rw/ecalhdf5_rw.pyproj b/samples/python/measurement/ecalhdf5_rw/ecalhdf5_rw.pyproj deleted file mode 100644 index 0172d7b518..0000000000 --- a/samples/python/measurement/ecalhdf5_rw/ecalhdf5_rw.pyproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - Debug - 2.0 - . - ecalhdf5_rw.py - ..\..\..\lang\python\src - . - . - ecalhdf5_rw - ecalhdf5_rw - {ff2de1ed-4c2e-39b0-9370-e52b97bce0b5} - - - true - false - - - true - false - - - - - - 10.0 - - - - - - - - \ No newline at end of file diff --git a/samples/python/measurement/measurement_read/CMakeLists.txt b/samples/python/measurement/measurement_read/CMakeLists.txt deleted file mode 100644 index 765d7f380a..0000000000 --- a/samples/python/measurement/measurement_read/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -# ========================= eCAL LICENSE ================================= -# -# Copyright (C) 2016 - 2019 Continental Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ========================= eCAL LICENSE ================================= - -project(measurement_read) - -find_package(eCAL REQUIRED) - -set(PROJECT_GROUP measurement) - -if(ECAL_INCLUDE_PY_SAMPLES) - if(WIN32) - - include_external_msproject(${PROJECT_NAME}_py ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pyproj) - set_property(TARGET ${PROJECT_NAME}_py PROPERTY FOLDER samples/python/${PROJECT_GROUP}) - - endif() -endif() diff --git a/samples/python/measurement/measurement_read/measurement_read.pyproj b/samples/python/measurement/measurement_read/measurement_read.pyproj deleted file mode 100644 index 80957f3eca..0000000000 --- a/samples/python/measurement/measurement_read/measurement_read.pyproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - Debug - 2.0 - . - measurement_read.py - ..\..\..\lang\python\src - . - . - measurement_read - measurement_read - {2b37f456-c807-3a24-9ba7-d4757cf4ca23} - - - true - false - - - true - false - - - - - - 10.0 - - - - - - - - \ No newline at end of file