-
Notifications
You must be signed in to change notification settings - Fork 85
/
Copy pathCMakeLists.txt
70 lines (60 loc) · 2.2 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
cmake_minimum_required(VERSION 3.15)
project(HGS_CVRP)
set(CMAKE_CXX_STANDARD 17)
set(
src_files
Program/Genetic.cpp
Program/Individual.cpp
Program/LocalSearch.cpp
Program/Params.cpp
Program/Population.cpp
Program/Split.cpp
Program/InstanceCVRPLIB.cpp
Program/AlgorithmParameters.cpp
Program/C_Interface.cpp)
if (MSVC)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif (MSVC)
include_directories(Program)
# Build Executable
add_executable(bin
Program/main.cpp
${src_files})
set_target_properties(bin PROPERTIES OUTPUT_NAME hgs)
# Test Executable
include(CTest)
add_test(NAME bin_test_X-n101-k25
COMMAND ${CMAKE_COMMAND} -DINSTANCE=X-n101-k25
-DCOST=27591
-DROUND=1
-P ${CMAKE_CURRENT_SOURCE_DIR}/Test/TestExecutable.cmake)
add_test(NAME bin_test_X-n106-k14
COMMAND ${CMAKE_COMMAND} -DINSTANCE=X-n110-k13
-DCOST=14971
-DROUND=1
-P ${CMAKE_CURRENT_SOURCE_DIR}/Test/TestExecutable.cmake)
# Test Executable: Instances with Duration, without Rounding
add_test(NAME bin_test_CMT6
COMMAND ${CMAKE_COMMAND} -DINSTANCE=CMT6
-DCOST=555.43
-DROUND=0
-P ${CMAKE_CURRENT_SOURCE_DIR}/Test/TestExecutable.cmake)
add_test(NAME bin_test_CMT7
COMMAND ${CMAKE_COMMAND} -DINSTANCE=CMT7
-DCOST=909.675
-DROUND=0
-P ${CMAKE_CURRENT_SOURCE_DIR}/Test/TestExecutable.cmake)
# Build Library
add_library(lib SHARED ${src_files})
set_target_properties(lib PROPERTIES OUTPUT_NAME hgscvrp)
# Test Library
add_subdirectory(Test/Test-c/)
add_test(NAME lib_test_c
COMMAND lib_test_c)
# Install
install(TARGETS lib
DESTINATION lib)
install(TARGETS bin
DESTINATION bin)
install(FILES Program/AlgorithmParameters.h Program/C_Interface.h
DESTINATION include)