@@ -21,28 +21,30 @@ else()
2121 message (FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++17 support. Please use a different C++ compiler." )
2222endif ()
2323
24- find_package (Eigen3 3.3.0 QUIET )
24+ set (EIGEN_VERSION 3.3)
25+ find_package (Eigen3 ${EIGEN_VERSION} QUIET )
2526if (NOT EIGEN3_FOUND)
26- message (FATAL_ERROR "Eigen > 3.3.0 not found." )
27+ set (BUILD_TESTING OFF CACHE INTERNAL "" )
28+ FetchContent_Declare (eigen
29+ GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
30+ GIT_TAG ${EIGEN_VERSION}
31+ GIT_SHALLOW ON )
32+ FetchContent_MakeAvailable (eigen)
33+ unset (BUILD_TESTING CACHE )
2734endif ()
2835
29- include_directories (
30- ${PROJECT_SOURCE_DIR} /include
31- ${EIGEN3_INCLUDE_DIR}
32- )
33-
3436add_library (${PROJECT_NAME} SHARED
35- ${PROJECT_SOURCE_DIR } /src/BYTETracker.cpp
36- ${PROJECT_SOURCE_DIR } /src/KalmanFilter.cpp
37- ${PROJECT_SOURCE_DIR } /src/lapjv.cpp
38- ${PROJECT_SOURCE_DIR } /src/Object.cpp
39- ${PROJECT_SOURCE_DIR } /src/Rect.cpp
40- ${PROJECT_SOURCE_DIR } /src/STrack.cpp
37+ ${CMAKE_CURRENT_SOURCE_DIR } /src/BYTETracker.cpp
38+ ${CMAKE_CURRENT_SOURCE_DIR } /src/KalmanFilter.cpp
39+ ${CMAKE_CURRENT_SOURCE_DIR } /src/lapjv.cpp
40+ ${CMAKE_CURRENT_SOURCE_DIR } /src/Object.cpp
41+ ${CMAKE_CURRENT_SOURCE_DIR } /src/Rect.cpp
42+ ${CMAKE_CURRENT_SOURCE_DIR } /src/STrack.cpp
4143 )
42-
43- target_link_libraries (${PROJECT_NAME}
44- ${EIGEN3_LIBS}
44+ target_include_directories (${PROJECT_NAME} PUBLIC
45+ ${CMAKE_CURRENT_SOURCE_DIR} /include
4546 )
47+ target_link_libraries (${PROJECT_NAME} Eigen3::Eigen )
4648
4749# Build the tests if the 'BUILD_BYTETRACK_TEST' variable is set to 'ON'
4850set (BUILD_BYTETRACK_TEST OFF CACHE BOOL "The flag whether to build the tests or not" )
@@ -55,7 +57,7 @@ if(BUILD_BYTETRACK_TEST)
5557 endif ()
5658
5759 add_executable (${PROJECT_NAME} _test
58- ${PROJECT_SOURCE_DIR } /test/test_BYTETracker.cpp
60+ ${CMAKE_CURRENT_SOURCE_DIR } /test/test_BYTETracker.cpp
5961 )
6062
6163 target_link_libraries (${PROJECT_NAME} _test
0 commit comments