diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 09d35b4..dcefc6d 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -46,7 +46,7 @@ jobs: strategy: matrix: # active versions: https://devguide.python.org/versions/ - python: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] steps: - uses: actions/checkout@v3 @@ -75,7 +75,7 @@ jobs: strategy: matrix: # active versions: https://devguide.python.org/versions/ - python: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] steps: - uses: actions/checkout@v3 @@ -110,7 +110,7 @@ jobs: strategy: matrix: # active versions: https://devguide.python.org/versions/ - python: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] steps: - uses: actions/checkout@v3 diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f85edc..7bc2cf5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ option(LIBMOTIONCAPTURE_BUILD_PYTHON_BINDINGS "Generate Python Bindings" ON) option(LIBMOTIONCAPTURE_ENABLE_QUALISYS "Enable Qualisys" OFF) option(LIBMOTIONCAPTURE_ENABLE_OPTITRACK "Enable Optitrack" ON) option(LIBMOTIONCAPTURE_ENABLE_OPTITRACK_CLOSED_SOURCE "Enable Optitrack (Closed Source)" OFF) -option(LIBMOTIONCAPTURE_ENABLE_VICON "Enable Vicon" OFF) +option(LIBMOTIONCAPTURE_ENABLE_VICON "Enable Vicon" ON) option(LIBMOTIONCAPTURE_ENABLE_NOKOV "Enable Nokov" OFF) option(LIBMOTIONCAPTURE_ENABLE_VRPN "Enable VRPN" OFF) option(LIBMOTIONCAPTURE_ENABLE_FZMOTION "Enable FZMOTION" OFF) @@ -18,7 +18,9 @@ set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -find_package(Boost 1.5 COMPONENTS system REQUIRED) # for optitrack +find_package(Threads REQUIRED) + +find_package(Boost 1.5 REQUIRED) # for optitrack add_definitions( -DBOOST_DATE_TIME_NO_LIB -DBOOST_REGEX_NO_LIB @@ -27,6 +29,15 @@ add_definitions( find_package(Eigen3 REQUIRED) +# Handle both old and new Eigen3 package configurations +if(NOT TARGET Eigen3::Eigen) + # Old-style Eigen3 package - create interface target + add_library(Eigen3::Eigen INTERFACE IMPORTED) + set_target_properties(Eigen3::Eigen PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${EIGEN3_INCLUDE_DIR};${EIGEN3_INCLUDE_DIRS}" + ) +endif() + set(VICON_SDK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/deps/vicon-datastream-sdk/) set(QUALISYS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/deps/qualisys_cpp_sdk/) set(NATNET_SDK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/deps/NatNetSDKCrossplatform/) @@ -87,7 +98,8 @@ if (LIBMOTIONCAPTURE_ENABLE_OPTITRACK) ) set(my_libraries ${my_libraries} - Boost::system + Boost::boost + Threads::Threads ) endif() @@ -232,7 +244,10 @@ target_link_directories(libmotioncapture PUBLIC ${my_link_directories} ) target_link_libraries(libmotioncapture - ${my_libraries} + PUBLIC + Eigen3::Eigen + PRIVATE + ${my_libraries} ) set_property(TARGET libmotioncapture PROPERTY POSITION_INDEPENDENT_CODE ON) diff --git a/deps/vicon-datastream-sdk b/deps/vicon-datastream-sdk index a21c9c8..a5096f2 160000 --- a/deps/vicon-datastream-sdk +++ b/deps/vicon-datastream-sdk @@ -1 +1 @@ -Subproject commit a21c9c8e5fd797e4833e19b78ad310d857c2f6c1 +Subproject commit a5096f283f484acca98b434c08810cd922551701 diff --git a/setup.py b/setup.py index 8094014..305fe9b 100644 --- a/setup.py +++ b/setup.py @@ -45,6 +45,11 @@ def build_extension(self, ext): "-DCMAKE_BUILD_TYPE={}".format(cfg), # not used on MSVC, but no harm "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" # to make sure vrpn compiles ] + + # Add CMAKE_TOOLCHAIN_FILE for vcpkg on Windows + if "CMAKE_TOOLCHAIN_FILE" in os.environ: + cmake_args += ["-DCMAKE_TOOLCHAIN_FILE={}".format(os.environ["CMAKE_TOOLCHAIN_FILE"])] + build_args = [] if self.compiler.compiler_type != "msvc":