@@ -8,49 +8,18 @@ set(CMAKE_CXX_STANDARD 17)
88
99set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" )
1010
11- # Add mono to invoke gk_ma.
12- find_package (PkgConfig)
13- pkg_check_modules(MONO mono-2 REQUIRED)
14- include_directories (${MONO_INCLUDE_DIRS} )
15-
16- # Download gk_ma
17- set (GKMA_INCLUDE_DIR ${CMAKE_BINARY_DIR} /gk_ma-prefix /src/gk_ma)
11+ # Download glkh
1812include (ExternalProject)
1913ExternalProject_Add(
20- gk_ma
21- URL http://www.cs.nott.ac.uk/~pszdk/gtsp_ma_source_codes.zip
22- URL https://polybox.ethz.ch/index.php/s/H4NXeaNPWo6VBrf/download
23- DOWNLOAD_NAME gtsp_ma_source_codes.zip
24- URL_MD5 765fad8e3746fa3dd9b81be0afb34d35
25- PATCH_COMMAND \\
26- patch GkMa/OurHeuristic/Algorithm.cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/Algorithm.patch && \\
27- patch NativeHelper/ClusterOptimisation.cpp ${CMAKE_CURRENT_SOURCE_DIR} /patches/ClusterOptimisationCpp.patch && \\
28- patch GkMa/OurHeuristic/Types/Generation.cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/Generation.patch && \\
29- patch GkMa/OurHeuristic/GeneticAlgorithm.cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/GeneticAlgorithm.patch && \\
30- patch GkMa/Helper.cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/Helper.patch && \\
31- patch NativeHelper/ClusterOptimisation.h ${CMAKE_CURRENT_SOURCE_DIR} /patches/ClusterOptimisationH.patch && \\
32- patch NativeHelper/ImprovementManager.h ${CMAKE_CURRENT_SOURCE_DIR} /patches/ImprovementManagerH.patch && \\
33- patch NativeHelper/Insert .cpp ${CMAKE_CURRENT_SOURCE_DIR} /patches/InsertCpp.patch && \\
34- patch NativeHelper/Insert .h ${CMAKE_CURRENT_SOURCE_DIR} /patches/InsertH.patch && \\
35- patch NativeHelper/NativeHelper.cpp ${CMAKE_CURRENT_SOURCE_DIR} /patches/NativeHelperCpp.patch && \\
36- patch NativeHelper/Swap.cpp ${CMAKE_CURRENT_SOURCE_DIR} /patches/SwapCpp.patch && \\
37- patch NativeHelper/NativeHelper.h ${CMAKE_CURRENT_SOURCE_DIR} /patches/NativeHelperH.patch && \\
38- patch GkMa/OurHeuristic/NativeHelper.cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/NativeHelper.patch && \\
39- patch GkMa/OurSolver.cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/OurSolver.patch && \\
40- patch GkMa/OurHeuristic/Types/Permutation.cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/Permutation.patch && \\
41- patch GkMa/Program .cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/Program .patch && \\
42- patch GkMa/Solver.cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/Solver.patch && \\
43- patch GkMa/Loader/Task.cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/Task.patch && \\
44- patch GkMa/OurHeuristic/Types/Tour.cs ${CMAKE_CURRENT_SOURCE_DIR} /patches/Tour.patch
45- UPDATE_COMMAND ""
46- CONFIGURE_COMMAND \\
47- cp ${PROJECT_SOURCE_DIR} /patches/MakefileCpp ./MakefileCpp && \\
48- cp ${PROJECT_SOURCE_DIR} /patches/MakefileCs ./MakefileCs
49- BUILD_COMMAND \\
50- $(MAKE) -f MakefileCs BUILD_PATH="${CMAKE_LIBRARY_OUTPUT_DIRECTORY} " \\
51- COMMAND $(MAKE) -f MakefileCpp BUILD_PATH="${CMAKE_LIBRARY_OUTPUT_DIRECTORY} "
52- INSTALL_COMMAND \\
53- COMMAND ${CMAKE_COMMAND} -E create_symlink /usr/lib/libmono-native.so ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} /System .Native
14+ glkh
15+ URL http://webhotel4.ruc.dk/~keld/research/GLKH/GLKH-1.0.tgz
16+ DOWNLOAD_NAME glkh_source_codes.tgz
17+ URL_MD5 9b0ba92053dac798f550c5c8a9524120
18+ BINARY_DIR ${CATKIN_DEVEL_PREFIX} /${CATKIN_PACKAGE_BIN_DESTINATION}
19+ PATCH_COMMAND
20+ COMMAND patch --forward ./SRC/SolveTSP.c < ${PROJECT_SOURCE_DIR} /patches/SolveTSP.patch
21+ COMMAND cp ${PROJECT_SOURCE_DIR} /patches/CMakeLists.txt ./
22+ INSTALL_COMMAND ""
5423)
5524
5625# Download GTSP test instances.
@@ -71,30 +40,32 @@ ExternalProject_Add(
7140# LIBRARIES #
7241#############
7342cs_add_library(${PROJECT_NAME}
74- src/gk_ma .cc
43+ src/glkh .cc
7544 src/combinatorics.cc
7645 src/boolean_lattice.cc
7746)
78- target_link_libraries (${PROJECT_NAME} ${MONO_LIBRARIES} )
7947
8048#########
8149# TESTS #
8250#########
8351catkin_add_gtest(test_combinatorics
8452 test /combinatorics-test .cpp
8553)
86- target_link_libraries (test_combinatorics
87- ${PROJECT_NAME} )
54+ target_link_libraries (test_combinatorics ${PROJECT_NAME} )
8855
89- catkin_add_gtest(test_gk_ma
90- test /gk_ma -test .cpp
56+ catkin_add_gtest(test_glkh
57+ test /glkh -test .cpp
9158)
92- target_link_libraries (test_gk_ma
93- ${PROJECT_NAME} )
59+ target_link_libraries (test_glkh ${PROJECT_NAME} )
9460
9561
9662##########
9763# EXPORT #
9864##########
65+ install (DIRECTORY ${CATKIN_DEVEL_PREFIX} /${CATKIN_PACKAGE_BIN_DESTINATION} /
66+ DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
67+ )
68+
9969cs_install()
70+ cs_install_scripts(scripts/run_glkh.bash)
10071cs_export()
0 commit comments