@@ -3,23 +3,24 @@ find_package (Boost COMPONENTS system)
3
3
find_package (Eigen3 )
4
4
find_package (OpenCV COMPONENTS core )
5
5
6
- if (ARMADILLO_FOUND )
7
- add_definitions (-DMUNKRES_CPP_ARMADILLO )
8
- endif ()
9
- if (Boost_FOUND )
10
- add_definitions (-DMUNKRES_CPP_BOOST )
11
- endif ()
12
- if (EIGEN3_FOUND )
13
- add_definitions (-DMUNKRES_CPP_EIGEN3 )
14
- endif ()
15
- if (OpenCV_FOUND )
16
- add_definitions (-DMUNKRES_CPP_OPENCV )
17
- set (CMAKE_EXE_LINKER_FLAGS "-l${OpenCV_LIBS} " )
18
- endif ()
19
6
20
- include_directories (${OPENCV_INCLUDE_DIRS} )
21
- include_directories (${ARMADILLO_INCLUDE_DIRS} )
22
- include_directories (${EIGEN3_INCLUDE_DIR} )
7
+ # Benchmark based on the Celero Framework.
8
+ include (ExternalProject )
9
+ ExternalProject_Add (Celero
10
+ GIT_REPOSITORY "https://github.com/DigitalInBlue/Celero.git"
11
+ GIT_TAG "v2.8.2"
12
+ PATCH_COMMAND eval "sed 's/CACHE.*FORCE//g' CMakeLists.txt > CMakeLists.mod && mv CMakeLists.mod CMakeLists.txt"
13
+ CMAKE_ARGS "-DCELERO_ENABLE_EXPERIMENTS=OFF;-DCMAKE_BUILD_TYPE=Release"
14
+ SOURCE_DIR "${PROJECT_BINARY_DIR} /Celero"
15
+ BINARY_DIR "${PROJECT_BINARY_DIR} /CeleroBuild"
16
+ INSTALL_COMMAND ""
17
+ TEST_COMMAND ""
18
+ )
19
+ set_target_properties (Celero PROPERTIES EXCLUDE_FROM_ALL TRUE )
20
+ set (CELERO_FOUND true )
21
+ set (CELERO_INCLUDE_DIR "${PROJECT_BINARY_DIR} /Celero/include" )
22
+ set (CELERO_LIBRARY "${PROJECT_BINARY_DIR} /CeleroBuild/libcelero.so" )
23
+
23
24
24
25
if (NOT DEFINED MUNKRES_CPP_VALUE_TYPE )
25
26
set (MUNKRES_CPP_VALUE_TYPE long\ unsigned\ int )
@@ -28,57 +29,64 @@ if (NOT DEFINED MUNKRES_CPP_MATRIX_TYPE)
28
29
set (MUNKRES_CPP_MATRIX_TYPE matrix_eigen )
29
30
endif ()
30
31
31
- add_definitions (-DMUNKRES_CPP_VALUE_TYPE=${MUNKRES_CPP_VALUE_TYPE} )
32
- add_definitions (-DMUNKRES_CPP_MATRIX_TYPE=${MUNKRES_CPP_MATRIX_TYPE} )
33
-
34
32
35
33
# Data generator.
36
- include_directories (${OpenCV_INCLUDE_DIRS} )
37
- add_executable (
38
- generator EXCLUDE_FROM_ALL
34
+ add_executable (generator EXCLUDE_FROM_ALL
39
35
${CMAKE_CURRENT_SOURCE_DIR} /generator.cpp
40
36
)
41
37
38
+ target_compile_definitions (generator
39
+ PRIVATE MUNKRES_CPP_VALUE_TYPE=${MUNKRES_CPP_VALUE_TYPE}
40
+ PRIVATE MUNKRES_CPP_MATRIX_TYPE=${MUNKRES_CPP_MATRIX_TYPE}
41
+ )
42
42
43
- # Benchmark based on the Celero Framework.
44
- ExternalProject_Add (
45
- Celero
46
- GIT_REPOSITORY "https://github.com/DigitalInBlue/Celero.git"
47
- GIT_TAG "v2.8.2"
48
- PATCH_COMMAND eval "sed 's/CACHE.*FORCE//g' CMakeLists.txt > CMakeLists.mod && mv CMakeLists.mod CMakeLists.txt"
49
- CMAKE_ARGS "-DCELERO_ENABLE_EXPERIMENTS=OFF;-DCMAKE_BUILD_TYPE=Release"
50
- SOURCE_DIR "${PROJECT_BINARY_DIR} /Celero"
51
- BINARY_DIR "${PROJECT_BINARY_DIR} /CeleroBuild"
52
- INSTALL_COMMAND ""
53
- TEST_COMMAND ""
43
+ target_include_directories (generator
44
+ PRIVATE ${CELERO_INCLUDE_DIR}
45
+ PRIVATE ${ARMADILLO_INCLUDE_DIRS}
46
+ PRIVATE ${EIGEN3_INCLUDE_DIR}
47
+ PRIVATE ${OpenCV_INCLUDE_DIRS}
54
48
)
55
- set_target_properties (Celero PROPERTIES EXCLUDE_FROM_ALL TRUE )
56
- set (CELERO_FOUND true )
57
- set (CELERO_INCLUDE_DIR "${PROJECT_BINARY_DIR} /Celero/include" )
58
- set (CELERO_LIBRARY "${PROJECT_BINARY_DIR} /CeleroBuild/libcelero.so" )
59
49
60
- set (MunkresCppBenchmarkCelero_SOURCES ${CMAKE_CURRENT_SOURCE_DIR} /test.cpp )
61
- add_executable (munkresbenchmark EXCLUDE_FROM_ALL ${MunkresCppBenchmarkCelero_SOURCES} )
62
- include_directories (${CELERO_INCLUDE_DIR} )
63
- target_link_libraries (munkresbenchmark ${OpenCV_LIBS} ${CELERO_LIBRARY} )
64
- add_dependencies (munkresbenchmark Celero )
50
+ target_link_libraries (generator
51
+ PRIVATE lp::munkres-cpp
52
+ PRIVATE ${OpenCV_LIBS}
53
+ )
65
54
66
55
67
- # Prevent launch tests before will be generated test data set.
68
- set (BenchmarkDataSet ${PROJECT_BINARY_DIR} /matrices.txt )
69
- add_custom_command (
70
- OUTPUT ${BenchmarkDataSet}
71
- COMMAND cd ${PROJECT_BINARY_DIR} && ./benchmarks/generator 20
56
+ # Test.
57
+ add_executable (munkresbenchmark
58
+ EXCLUDE_FROM_ALL ${CMAKE_CURRENT_SOURCE_DIR} /test.cpp
72
59
)
73
- add_custom_target (generate_benchmark_dataset DEPENDS ${BenchmarkDataSet} )
74
- add_dependencies (generate_benchmark_dataset generator )
75
60
76
- add_dependencies (munkresbenchmark generate_benchmark_dataset )
61
+ target_compile_definitions (munkresbenchmark
62
+ PRIVATE -DARMADILLO_FOUND=$<BOOL:${ARMADILLO_FOUND}>
63
+ PRIVATE -DBOOST_FOUND=$<BOOL:${BOOST_FOUND}>
64
+ PRIVATE -DEIGEN3_FOUND=$<BOOL:${EIGEN3_FOUND}>
65
+ PRIVATE -DOPENCV_FOUND=$<BOOL:${OpenCV_FOUND}>
66
+ PRIVATE -DQT5_FOUND=$<BOOL:${Qt5Gui_FOUND}>
67
+ PRIVATE MUNKRES_CPP_VALUE_TYPE=${MUNKRES_CPP_VALUE_TYPE}
68
+ PRIVATE MUNKRES_CPP_MATRIX_TYPE=${MUNKRES_CPP_MATRIX_TYPE}
69
+ )
77
70
71
+ target_include_directories (munkresbenchmark
72
+ PRIVATE ${CELERO_INCLUDE_DIR}
73
+ PRIVATE ${ARMADILLO_INCLUDE_DIRS}
74
+ PRIVATE ${EIGEN3_INCLUDE_DIR}
75
+ PRIVATE ${OpenCV_INCLUDE_DIRS}
76
+ )
78
77
79
- add_custom_target (benchmarks )
80
- add_dependencies (
81
- benchmarks
82
- munkresbenchmark
78
+ target_link_libraries (munkresbenchmark
79
+ PRIVATE lp::munkres-cpp
80
+ PRIVATE Boost::system
81
+ PRIVATE ${OpenCV_LIBS}
82
+ PRIVATE ${CELERO_LIBRARY}
83
+ )
84
+
85
+ add_dependencies (munkresbenchmark Celero )
86
+
87
+
88
+ add_custom_target (benchmarks )
89
+ add_dependencies (benchmarks
83
90
generator
91
+ munkresbenchmark
84
92
)
0 commit comments