packingsolver 0.1.1035__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. packingsolver-0.1.1035/CMakeLists.txt +49 -0
  2. packingsolver-0.1.1035/LICENSE +21 -0
  3. packingsolver-0.1.1035/PKG-INFO +939 -0
  4. packingsolver-0.1.1035/README.md +919 -0
  5. packingsolver-0.1.1035/extern/CMakeLists.txt +138 -0
  6. packingsolver-0.1.1035/include/packingsolver/algorithms/common.hpp +820 -0
  7. packingsolver-0.1.1035/include/packingsolver/algorithms/truck.hpp +228 -0
  8. packingsolver-0.1.1035/include/packingsolver/box/algorithm_formatter.hpp +106 -0
  9. packingsolver-0.1.1035/include/packingsolver/box/instance.hpp +533 -0
  10. packingsolver-0.1.1035/include/packingsolver/box/instance_builder.hpp +261 -0
  11. packingsolver-0.1.1035/include/packingsolver/box/optimize.hpp +281 -0
  12. packingsolver-0.1.1035/include/packingsolver/box/post_process.hpp +25 -0
  13. packingsolver-0.1.1035/include/packingsolver/box/reduction.hpp +267 -0
  14. packingsolver-0.1.1035/include/packingsolver/box/solution.hpp +370 -0
  15. packingsolver-0.1.1035/include/packingsolver/boxstacks/algorithm_formatter.hpp +94 -0
  16. packingsolver-0.1.1035/include/packingsolver/boxstacks/instance.hpp +572 -0
  17. packingsolver-0.1.1035/include/packingsolver/boxstacks/instance_builder.hpp +283 -0
  18. packingsolver-0.1.1035/include/packingsolver/boxstacks/optimize.hpp +279 -0
  19. packingsolver-0.1.1035/include/packingsolver/boxstacks/post_process.hpp +25 -0
  20. packingsolver-0.1.1035/include/packingsolver/boxstacks/reduction.hpp +274 -0
  21. packingsolver-0.1.1035/include/packingsolver/boxstacks/solution.hpp +452 -0
  22. packingsolver-0.1.1035/include/packingsolver/irregular/algorithm_formatter.hpp +102 -0
  23. packingsolver-0.1.1035/include/packingsolver/irregular/instance.hpp +666 -0
  24. packingsolver-0.1.1035/include/packingsolver/irregular/instance_builder.hpp +243 -0
  25. packingsolver-0.1.1035/include/packingsolver/irregular/optimize.hpp +264 -0
  26. packingsolver-0.1.1035/include/packingsolver/irregular/post_process.hpp +59 -0
  27. packingsolver-0.1.1035/include/packingsolver/irregular/reduction.hpp +250 -0
  28. packingsolver-0.1.1035/include/packingsolver/irregular/solution.hpp +342 -0
  29. packingsolver-0.1.1035/include/packingsolver/onedimensional/algorithm_formatter.hpp +94 -0
  30. packingsolver-0.1.1035/include/packingsolver/onedimensional/instance.hpp +446 -0
  31. packingsolver-0.1.1035/include/packingsolver/onedimensional/instance_builder.hpp +285 -0
  32. packingsolver-0.1.1035/include/packingsolver/onedimensional/optimize.hpp +208 -0
  33. packingsolver-0.1.1035/include/packingsolver/onedimensional/post_process.hpp +25 -0
  34. packingsolver-0.1.1035/include/packingsolver/onedimensional/reduction.hpp +697 -0
  35. packingsolver-0.1.1035/include/packingsolver/onedimensional/solution.hpp +322 -0
  36. packingsolver-0.1.1035/include/packingsolver/rectangle/algorithm_formatter.hpp +102 -0
  37. packingsolver-0.1.1035/include/packingsolver/rectangle/instance.hpp +635 -0
  38. packingsolver-0.1.1035/include/packingsolver/rectangle/instance_builder.hpp +307 -0
  39. packingsolver-0.1.1035/include/packingsolver/rectangle/optimize.hpp +316 -0
  40. packingsolver-0.1.1035/include/packingsolver/rectangle/post_process.hpp +25 -0
  41. packingsolver-0.1.1035/include/packingsolver/rectangle/reduction.hpp +2077 -0
  42. packingsolver-0.1.1035/include/packingsolver/rectangle/solution.hpp +351 -0
  43. packingsolver-0.1.1035/include/packingsolver/rectangleguillotine/algorithm_formatter.hpp +104 -0
  44. packingsolver-0.1.1035/include/packingsolver/rectangleguillotine/instance.hpp +766 -0
  45. packingsolver-0.1.1035/include/packingsolver/rectangleguillotine/instance_builder.hpp +328 -0
  46. packingsolver-0.1.1035/include/packingsolver/rectangleguillotine/optimize.hpp +276 -0
  47. packingsolver-0.1.1035/include/packingsolver/rectangleguillotine/post_process.hpp +114 -0
  48. packingsolver-0.1.1035/include/packingsolver/rectangleguillotine/reduction.hpp +290 -0
  49. packingsolver-0.1.1035/include/packingsolver/rectangleguillotine/solution.hpp +429 -0
  50. packingsolver-0.1.1035/pyproject.toml +66 -0
  51. packingsolver-0.1.1035/python/CMakeLists.txt +61 -0
  52. packingsolver-0.1.1035/python/packingsolver/__init__.py +29 -0
  53. packingsolver-0.1.1035/python/packingsolver/_version.py +1 -0
  54. packingsolver-0.1.1035/python/packingsolver/_visualize.py +26 -0
  55. packingsolver-0.1.1035/python/packingsolver/box.py +20 -0
  56. packingsolver-0.1.1035/python/packingsolver/boxstacks.py +26 -0
  57. packingsolver-0.1.1035/python/packingsolver/irregular.py +20 -0
  58. packingsolver-0.1.1035/python/packingsolver/onedimensional.py +20 -0
  59. packingsolver-0.1.1035/python/packingsolver/rectangle.py +20 -0
  60. packingsolver-0.1.1035/python/packingsolver/rectangleguillotine.py +20 -0
  61. packingsolver-0.1.1035/python/packingsolver/visualize/__init__.py +16 -0
  62. packingsolver-0.1.1035/python/packingsolver/visualize/box.py +280 -0
  63. packingsolver-0.1.1035/python/packingsolver/visualize/boxstacks.py +354 -0
  64. packingsolver-0.1.1035/python/packingsolver/visualize/irregular.py +409 -0
  65. packingsolver-0.1.1035/python/packingsolver/visualize/onedimensional.py +160 -0
  66. packingsolver-0.1.1035/python/packingsolver/visualize/rectangle.py +322 -0
  67. packingsolver-0.1.1035/python/packingsolver/visualize/rectangleguillotine.py +233 -0
  68. packingsolver-0.1.1035/python/src/box.cpp +325 -0
  69. packingsolver-0.1.1035/python/src/boxstacks.cpp +417 -0
  70. packingsolver-0.1.1035/python/src/common.cpp +71 -0
  71. packingsolver-0.1.1035/python/src/common.hpp +322 -0
  72. packingsolver-0.1.1035/python/src/irregular.cpp +608 -0
  73. packingsolver-0.1.1035/python/src/module.cpp +33 -0
  74. packingsolver-0.1.1035/python/src/onedimensional.cpp +303 -0
  75. packingsolver-0.1.1035/python/src/rectangle.cpp +300 -0
  76. packingsolver-0.1.1035/python/src/rectangleguillotine.cpp +413 -0
  77. packingsolver-0.1.1035/python/tests/test_box.py +278 -0
  78. packingsolver-0.1.1035/python/tests/test_boxstacks.py +499 -0
  79. packingsolver-0.1.1035/python/tests/test_irregular.py +358 -0
  80. packingsolver-0.1.1035/python/tests/test_onedimensional.py +348 -0
  81. packingsolver-0.1.1035/python/tests/test_rectangle.py +257 -0
  82. packingsolver-0.1.1035/python/tests/test_rectangleguillotine.py +410 -0
  83. packingsolver-0.1.1035/python/tests/test_visualize.py +79 -0
  84. packingsolver-0.1.1035/python/tests/test_visualize_box.py +70 -0
  85. packingsolver-0.1.1035/python/tests/test_visualize_boxstacks.py +75 -0
  86. packingsolver-0.1.1035/python/tests/test_visualize_irregular.py +77 -0
  87. packingsolver-0.1.1035/python/tests/test_visualize_onedimensional.py +72 -0
  88. packingsolver-0.1.1035/python/tests/test_visualize_rectangle.py +68 -0
  89. packingsolver-0.1.1035/python/tests/test_visualize_rectangleguillotine.py +72 -0
  90. packingsolver-0.1.1035/src/CMakeLists.txt +7 -0
  91. packingsolver-0.1.1035/src/algorithms/CMakeLists.txt +17 -0
  92. packingsolver-0.1.1035/src/algorithms/column_generation.hpp +1703 -0
  93. packingsolver-0.1.1035/src/algorithms/common.cpp +218 -0
  94. packingsolver-0.1.1035/src/algorithms/dichotomic_search.hpp +280 -0
  95. packingsolver-0.1.1035/src/algorithms/meet_in_the_middle.hpp +456 -0
  96. packingsolver-0.1.1035/src/algorithms/sequential_value_correction.hpp +597 -0
  97. packingsolver-0.1.1035/src/algorithms/thread_pool.hpp +199 -0
  98. packingsolver-0.1.1035/src/box/CMakeLists.txt +46 -0
  99. packingsolver-0.1.1035/src/box/algorithm_formatter.cpp +431 -0
  100. packingsolver-0.1.1035/src/box/block.cpp +419 -0
  101. packingsolver-0.1.1035/src/box/block.hpp +98 -0
  102. packingsolver-0.1.1035/src/box/dual_feasible_functions.cpp +552 -0
  103. packingsolver-0.1.1035/src/box/dual_feasible_functions.hpp +47 -0
  104. packingsolver-0.1.1035/src/box/instance.cpp +480 -0
  105. packingsolver-0.1.1035/src/box/instance_builder.cpp +1034 -0
  106. packingsolver-0.1.1035/src/box/instance_flipper.cpp +135 -0
  107. packingsolver-0.1.1035/src/box/instance_flipper.hpp +48 -0
  108. packingsolver-0.1.1035/src/box/main.cpp +263 -0
  109. packingsolver-0.1.1035/src/box/optimize.cpp +801 -0
  110. packingsolver-0.1.1035/src/box/post_process.cpp +13 -0
  111. packingsolver-0.1.1035/src/box/reduction.cpp +425 -0
  112. packingsolver-0.1.1035/src/box/solution.cpp +396 -0
  113. packingsolver-0.1.1035/src/box/solution_builder.cpp +143 -0
  114. packingsolver-0.1.1035/src/box/solution_builder.hpp +52 -0
  115. packingsolver-0.1.1035/src/box/tree_search.cpp +1208 -0
  116. packingsolver-0.1.1035/src/box/tree_search.hpp +594 -0
  117. packingsolver-0.1.1035/src/box/tree_search_maximal_spaces.cpp +968 -0
  118. packingsolver-0.1.1035/src/box/tree_search_maximal_spaces.hpp +661 -0
  119. packingsolver-0.1.1035/src/box/trivial.cpp +150 -0
  120. packingsolver-0.1.1035/src/box/trivial.hpp +34 -0
  121. packingsolver-0.1.1035/src/boxstacks/CMakeLists.txt +44 -0
  122. packingsolver-0.1.1035/src/boxstacks/algorithm_formatter.cpp +356 -0
  123. packingsolver-0.1.1035/src/boxstacks/instance.cpp +403 -0
  124. packingsolver-0.1.1035/src/boxstacks/instance_builder.cpp +1100 -0
  125. packingsolver-0.1.1035/src/boxstacks/instance_flipper.cpp +128 -0
  126. packingsolver-0.1.1035/src/boxstacks/instance_flipper.hpp +33 -0
  127. packingsolver-0.1.1035/src/boxstacks/main.cpp +265 -0
  128. packingsolver-0.1.1035/src/boxstacks/optimize.cpp +659 -0
  129. packingsolver-0.1.1035/src/boxstacks/post_process.cpp +13 -0
  130. packingsolver-0.1.1035/src/boxstacks/reduction.cpp +379 -0
  131. packingsolver-0.1.1035/src/boxstacks/sequential_onedimensional_rectangle.cpp +1316 -0
  132. packingsolver-0.1.1035/src/boxstacks/sequential_onedimensional_rectangle.hpp +108 -0
  133. packingsolver-0.1.1035/src/boxstacks/solution.cpp +643 -0
  134. packingsolver-0.1.1035/src/boxstacks/solution_builder.cpp +197 -0
  135. packingsolver-0.1.1035/src/boxstacks/solution_builder.hpp +60 -0
  136. packingsolver-0.1.1035/src/boxstacks/tree_search.cpp +1889 -0
  137. packingsolver-0.1.1035/src/boxstacks/tree_search.hpp +726 -0
  138. packingsolver-0.1.1035/src/irregular/CMakeLists.txt +85 -0
  139. packingsolver-0.1.1035/src/irregular/algorithm_formatter.cpp +409 -0
  140. packingsolver-0.1.1035/src/irregular/convert.cpp +86 -0
  141. packingsolver-0.1.1035/src/irregular/convert.hpp +28 -0
  142. packingsolver-0.1.1035/src/irregular/convert_main.cpp +55 -0
  143. packingsolver-0.1.1035/src/irregular/fill_solution_file_main.cpp +47 -0
  144. packingsolver-0.1.1035/src/irregular/instance.cpp +860 -0
  145. packingsolver-0.1.1035/src/irregular/instance_builder.cpp +1169 -0
  146. packingsolver-0.1.1035/src/irregular/large_item_first.cpp +234 -0
  147. packingsolver-0.1.1035/src/irregular/large_item_first.hpp +76 -0
  148. packingsolver-0.1.1035/src/irregular/linear_programming.cpp +1339 -0
  149. packingsolver-0.1.1035/src/irregular/linear_programming.hpp +126 -0
  150. packingsolver-0.1.1035/src/irregular/local_search.cpp +353 -0
  151. packingsolver-0.1.1035/src/irregular/local_search.hpp +38 -0
  152. packingsolver-0.1.1035/src/irregular/main.cpp +234 -0
  153. packingsolver-0.1.1035/src/irregular/milp_raster.cpp +555 -0
  154. packingsolver-0.1.1035/src/irregular/milp_raster.hpp +38 -0
  155. packingsolver-0.1.1035/src/irregular/optimize.cpp +1181 -0
  156. packingsolver-0.1.1035/src/irregular/periodic_packing.cpp +977 -0
  157. packingsolver-0.1.1035/src/irregular/periodic_packing.hpp +78 -0
  158. packingsolver-0.1.1035/src/irregular/post_process.cpp +116 -0
  159. packingsolver-0.1.1035/src/irregular/reduction.cpp +457 -0
  160. packingsolver-0.1.1035/src/irregular/rotations.cpp +592 -0
  161. packingsolver-0.1.1035/src/irregular/rotations.hpp +70 -0
  162. packingsolver-0.1.1035/src/irregular/sequential_feasibility.cpp +251 -0
  163. packingsolver-0.1.1035/src/irregular/sequential_feasibility.hpp +43 -0
  164. packingsolver-0.1.1035/src/irregular/shape_simplification.cpp +253 -0
  165. packingsolver-0.1.1035/src/irregular/shape_simplification.hpp +49 -0
  166. packingsolver-0.1.1035/src/irregular/solution.cpp +810 -0
  167. packingsolver-0.1.1035/src/irregular/solution_builder.cpp +106 -0
  168. packingsolver-0.1.1035/src/irregular/solution_builder.hpp +54 -0
  169. packingsolver-0.1.1035/src/irregular/tree_search.cpp +3095 -0
  170. packingsolver-0.1.1035/src/irregular/tree_search.hpp +820 -0
  171. packingsolver-0.1.1035/src/irregular/tree_search_periodic_packing.cpp +1342 -0
  172. packingsolver-0.1.1035/src/irregular/tree_search_periodic_packing.hpp +546 -0
  173. packingsolver-0.1.1035/src/irregular/trivial.cpp +91 -0
  174. packingsolver-0.1.1035/src/irregular/trivial.hpp +34 -0
  175. packingsolver-0.1.1035/src/irregular/utils.hpp +368 -0
  176. packingsolver-0.1.1035/src/onedimensional/CMakeLists.txt +43 -0
  177. packingsolver-0.1.1035/src/onedimensional/algorithm_formatter.cpp +320 -0
  178. packingsolver-0.1.1035/src/onedimensional/dual_feasible_functions.cpp +385 -0
  179. packingsolver-0.1.1035/src/onedimensional/dual_feasible_functions.hpp +44 -0
  180. packingsolver-0.1.1035/src/onedimensional/instance.cpp +434 -0
  181. packingsolver-0.1.1035/src/onedimensional/instance_builder.cpp +1015 -0
  182. packingsolver-0.1.1035/src/onedimensional/main.cpp +237 -0
  183. packingsolver-0.1.1035/src/onedimensional/milp_assignment.cpp +1753 -0
  184. packingsolver-0.1.1035/src/onedimensional/milp_assignment.hpp +97 -0
  185. packingsolver-0.1.1035/src/onedimensional/optimize.cpp +1038 -0
  186. packingsolver-0.1.1035/src/onedimensional/post_process.cpp +13 -0
  187. packingsolver-0.1.1035/src/onedimensional/reduction.cpp +1236 -0
  188. packingsolver-0.1.1035/src/onedimensional/solution.cpp +465 -0
  189. packingsolver-0.1.1035/src/onedimensional/solution_builder.cpp +141 -0
  190. packingsolver-0.1.1035/src/onedimensional/solution_builder.hpp +50 -0
  191. packingsolver-0.1.1035/src/onedimensional/tree_search.cpp +721 -0
  192. packingsolver-0.1.1035/src/onedimensional/tree_search.hpp +463 -0
  193. packingsolver-0.1.1035/src/rectangle/CMakeLists.txt +54 -0
  194. packingsolver-0.1.1035/src/rectangle/algorithm_formatter.cpp +394 -0
  195. packingsolver-0.1.1035/src/rectangle/bar_relaxation.cpp +636 -0
  196. packingsolver-0.1.1035/src/rectangle/bar_relaxation.hpp +143 -0
  197. packingsolver-0.1.1035/src/rectangle/benders_decomposition.cpp +1223 -0
  198. packingsolver-0.1.1035/src/rectangle/benders_decomposition.hpp +262 -0
  199. packingsolver-0.1.1035/src/rectangle/benders_decomposition_contiguity.cpp +1467 -0
  200. packingsolver-0.1.1035/src/rectangle/benders_decomposition_contiguity.hpp +209 -0
  201. packingsolver-0.1.1035/src/rectangle/block.cpp +466 -0
  202. packingsolver-0.1.1035/src/rectangle/block.hpp +121 -0
  203. packingsolver-0.1.1035/src/rectangle/conservative_scales.cpp +333 -0
  204. packingsolver-0.1.1035/src/rectangle/conservative_scales.hpp +77 -0
  205. packingsolver-0.1.1035/src/rectangle/dual_feasible_functions.cpp +770 -0
  206. packingsolver-0.1.1035/src/rectangle/dual_feasible_functions.hpp +86 -0
  207. packingsolver-0.1.1035/src/rectangle/instance.cpp +733 -0
  208. packingsolver-0.1.1035/src/rectangle/instance_builder.cpp +1268 -0
  209. packingsolver-0.1.1035/src/rectangle/instance_flipper.cpp +134 -0
  210. packingsolver-0.1.1035/src/rectangle/instance_flipper.hpp +33 -0
  211. packingsolver-0.1.1035/src/rectangle/item_subset_incompatibility.cpp +449 -0
  212. packingsolver-0.1.1035/src/rectangle/item_subset_incompatibility.hpp +117 -0
  213. packingsolver-0.1.1035/src/rectangle/main.cpp +283 -0
  214. packingsolver-0.1.1035/src/rectangle/onedimentional_contiguity/milp.cpp +389 -0
  215. packingsolver-0.1.1035/src/rectangle/onedimentional_contiguity/milp.hpp +299 -0
  216. packingsolver-0.1.1035/src/rectangle/onedimentional_contiguity/tree_search.cpp +382 -0
  217. packingsolver-0.1.1035/src/rectangle/onedimentional_contiguity/tree_search.hpp +323 -0
  218. packingsolver-0.1.1035/src/rectangle/optimize.cpp +1341 -0
  219. packingsolver-0.1.1035/src/rectangle/post_process.cpp +13 -0
  220. packingsolver-0.1.1035/src/rectangle/reduction.cpp +2655 -0
  221. packingsolver-0.1.1035/src/rectangle/solution.cpp +497 -0
  222. packingsolver-0.1.1035/src/rectangle/solution_builder.cpp +142 -0
  223. packingsolver-0.1.1035/src/rectangle/solution_builder.hpp +56 -0
  224. packingsolver-0.1.1035/src/rectangle/tree_search.cpp +1729 -0
  225. packingsolver-0.1.1035/src/rectangle/tree_search.hpp +777 -0
  226. packingsolver-0.1.1035/src/rectangle/tree_search_maximal_spaces.cpp +877 -0
  227. packingsolver-0.1.1035/src/rectangle/tree_search_maximal_spaces.hpp +549 -0
  228. packingsolver-0.1.1035/src/rectangleguillotine/CMakeLists.txt +50 -0
  229. packingsolver-0.1.1035/src/rectangleguillotine/algorithm_formatter.cpp +418 -0
  230. packingsolver-0.1.1035/src/rectangleguillotine/block.cpp +281 -0
  231. packingsolver-0.1.1035/src/rectangleguillotine/block.hpp +90 -0
  232. packingsolver-0.1.1035/src/rectangleguillotine/column_generation_strips.cpp +2393 -0
  233. packingsolver-0.1.1035/src/rectangleguillotine/column_generation_strips.hpp +88 -0
  234. packingsolver-0.1.1035/src/rectangleguillotine/instance.cpp +704 -0
  235. packingsolver-0.1.1035/src/rectangleguillotine/instance_builder.cpp +1546 -0
  236. packingsolver-0.1.1035/src/rectangleguillotine/instance_flipper.cpp +130 -0
  237. packingsolver-0.1.1035/src/rectangleguillotine/instance_flipper.hpp +33 -0
  238. packingsolver-0.1.1035/src/rectangleguillotine/main.cpp +369 -0
  239. packingsolver-0.1.1035/src/rectangleguillotine/optimize.cpp +1224 -0
  240. packingsolver-0.1.1035/src/rectangleguillotine/post_process.cpp +588 -0
  241. packingsolver-0.1.1035/src/rectangleguillotine/reduction.cpp +475 -0
  242. packingsolver-0.1.1035/src/rectangleguillotine/sequential_feasibility.cpp +202 -0
  243. packingsolver-0.1.1035/src/rectangleguillotine/sequential_feasibility.hpp +41 -0
  244. packingsolver-0.1.1035/src/rectangleguillotine/sequential_strips_onedimensional.cpp +376 -0
  245. packingsolver-0.1.1035/src/rectangleguillotine/sequential_strips_onedimensional.hpp +49 -0
  246. packingsolver-0.1.1035/src/rectangleguillotine/solution.cpp +843 -0
  247. packingsolver-0.1.1035/src/rectangleguillotine/solution_builder.cpp +528 -0
  248. packingsolver-0.1.1035/src/rectangleguillotine/solution_builder.hpp +70 -0
  249. packingsolver-0.1.1035/src/rectangleguillotine/tree_search.cpp +2580 -0
  250. packingsolver-0.1.1035/src/rectangleguillotine/tree_search.hpp +894 -0
  251. packingsolver-0.1.1035/src/rectangleguillotine/tree_search_hypergraph.cpp +626 -0
  252. packingsolver-0.1.1035/src/rectangleguillotine/tree_search_hypergraph.hpp +47 -0
  253. packingsolver-0.1.1035/src/rectangleguillotine/tree_search_hypergraph_infinite_copies.cpp +231 -0
  254. packingsolver-0.1.1035/src/rectangleguillotine/tree_search_hypergraph_infinite_copies.hpp +35 -0
  255. packingsolver-0.1.1035/src/rectangleguillotine/tree_search_maximal_spaces.cpp +967 -0
  256. packingsolver-0.1.1035/src/rectangleguillotine/tree_search_maximal_spaces.hpp +345 -0
@@ -0,0 +1,49 @@
1
+ cmake_minimum_required(VERSION 3.28)
2
+
3
+ project(PackingSolver LANGUAGES CXX)
4
+
5
+ # Solver options.
6
+ option(PACKINGSOLVER_USE_CLP "Use CLP" ON)
7
+ option(PACKINGSOLVER_USE_HIGHS "Use HiGHS" ON)
8
+ option(PACKINGSOLVER_USE_KNITRO "Use Knitro" OFF)
9
+
10
+ # Build options.
11
+ option(PACKINGSOLVER_BUILD_MAIN "Build main" ON)
12
+ option(PACKINGSOLVER_BUILD_TEST "Build unit tests" ON)
13
+ option(PACKINGSOLVER_BUILD_PYTHON "Build Python bindings" OFF)
14
+
15
+ # Avoid FetchContent warning.
16
+ cmake_policy(SET CMP0135 NEW)
17
+
18
+ # Require C++14.
19
+ set(CMAKE_CXX_STANDARD 14)
20
+
21
+ # The static libraries are linked into the Python extension module. The
22
+ # prebuilt CLP archives are not position independent, so CLP can't be linked
23
+ # into it: the Python module uses HiGHS instead.
24
+ if(PACKINGSOLVER_BUILD_PYTHON)
25
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
26
+ if(PACKINGSOLVER_USE_CLP)
27
+ message(STATUS "PACKINGSOLVER_BUILD_PYTHON: disabling CLP (prebuilt archives are not position independent)")
28
+ set(PACKINGSOLVER_USE_CLP OFF)
29
+ endif()
30
+ if(NOT PACKINGSOLVER_USE_HIGHS)
31
+ message(FATAL_ERROR "PACKINGSOLVER_BUILD_PYTHON requires PACKINGSOLVER_USE_HIGHS")
32
+ endif()
33
+ endif()
34
+
35
+ # Enable output of compile commands during generation.
36
+ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
37
+
38
+ # Set MSVC_RUNTIME_LIBRARY.
39
+ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
40
+
41
+ # Add sub-directories.
42
+ add_subdirectory(extern)
43
+ add_subdirectory(src)
44
+ if(PACKINGSOLVER_BUILD_TEST)
45
+ add_subdirectory(test)
46
+ endif()
47
+ if(PACKINGSOLVER_BUILD_PYTHON)
48
+ add_subdirectory(python)
49
+ endif()
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Florian Fontan
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.