rubikoslav 0.4.1__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 (33) hide show
  1. rubikoslav-0.4.1/CMakeLists.txt +61 -0
  2. rubikoslav-0.4.1/LICENSE +674 -0
  3. rubikoslav-0.4.1/PKG-INFO +61 -0
  4. rubikoslav-0.4.1/README.md +33 -0
  5. rubikoslav-0.4.1/api/solve.py +79 -0
  6. rubikoslav-0.4.1/cpp/CMakeLists.txt +73 -0
  7. rubikoslav-0.4.1/cpp/cmake/RubikoslavConfig.cmake.in +5 -0
  8. rubikoslav-0.4.1/cpp/examples/CMakeLists.txt +4 -0
  9. rubikoslav-0.4.1/cpp/examples/solve_scramble.cpp +37 -0
  10. rubikoslav-0.4.1/cpp/include/Rubikoslav/Cuboslav.hpp +299 -0
  11. rubikoslav-0.4.1/cpp/include/Rubikoslav/Move.hpp +63 -0
  12. rubikoslav-0.4.1/cpp/include/Rubikoslav/Stopwatch.hpp +38 -0
  13. rubikoslav-0.4.1/cpp/src/Cuboslav.cpp +1596 -0
  14. rubikoslav-0.4.1/cpp/src/CuboslavWrapper.cpp +43 -0
  15. rubikoslav-0.4.1/cpp/src/Move.cpp +295 -0
  16. rubikoslav-0.4.1/cpp/tests/CMakeLists.txt +3 -0
  17. rubikoslav-0.4.1/cpp/tests/CubeTests.cpp +139 -0
  18. rubikoslav-0.4.1/cpp/tools/generate_cube_data.cpp +112 -0
  19. rubikoslav-0.4.1/pyproject.toml +84 -0
  20. rubikoslav-0.4.1/python/rubikoslav/__init__.py +28 -0
  21. rubikoslav-0.4.1/python/rubikoslav/cli.py +228 -0
  22. rubikoslav-0.4.1/python/rubikoslav/solver.py +293 -0
  23. rubikoslav-0.4.1/python/tests/test_cli.py +250 -0
  24. rubikoslav-0.4.1/python/tests/test_solver.py +165 -0
  25. rubikoslav-0.4.1/python/tests/test_web_docs.py +30 -0
  26. rubikoslav-0.4.1/scripts/check_release.py +55 -0
  27. rubikoslav-0.4.1/vercel.json +3 -0
  28. rubikoslav-0.4.1/web/CMakeLists.txt +16 -0
  29. rubikoslav-0.4.1/web/api.html +110 -0
  30. rubikoslav-0.4.1/web/app.js +540 -0
  31. rubikoslav-0.4.1/web/generated/cube-data.js +32 -0
  32. rubikoslav-0.4.1/web/index.html +226 -0
  33. rubikoslav-0.4.1/web/styles.css +1085 -0
@@ -0,0 +1,61 @@
1
+ cmake_minimum_required(VERSION 3.26)
2
+
3
+ project(Rubikoslav VERSION 0.4.1 LANGUAGES CXX)
4
+
5
+ include(CTest)
6
+ include(GNUInstallDirs)
7
+ include(CMakePackageConfigHelpers)
8
+
9
+ set(CMAKE_CXX_EXTENSIONS OFF)
10
+
11
+ option(RUBIKOSLAV_BUILD_PYTHON "Build the optional pybind11 cube module" ON)
12
+ option(RUBIKOSLAV_BUILD_EXAMPLES "Build the supported command-line example" ON)
13
+ option(RUBIKOSLAV_BUILD_WEB "Build the web visualizer data generator" ON)
14
+ option(RUBIKOSLAV_WARNINGS_AS_ERRORS "Treat compiler warnings as errors" OFF)
15
+
16
+ add_subdirectory(cpp)
17
+
18
+ if(BUILD_TESTING)
19
+ add_subdirectory(cpp/tests)
20
+ endif()
21
+
22
+ if(RUBIKOSLAV_BUILD_EXAMPLES)
23
+ add_subdirectory(cpp/examples)
24
+ endif()
25
+
26
+ if(RUBIKOSLAV_BUILD_WEB)
27
+ add_subdirectory(web)
28
+ endif()
29
+
30
+ if(SKBUILD)
31
+ install(DIRECTORY "${CMAKE_SOURCE_DIR}/web/"
32
+ DESTINATION rubikoslav/web
33
+ FILES_MATCHING
34
+ PATTERN "*.html"
35
+ PATTERN "*.css"
36
+ PATTERN "*.js")
37
+ else()
38
+ install(DIRECTORY cpp/include/Rubikoslav
39
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
40
+
41
+ install(EXPORT RubikoslavTargets
42
+ FILE RubikoslavTargets.cmake
43
+ NAMESPACE Rubikoslav::
44
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Rubikoslav)
45
+
46
+ configure_package_config_file(
47
+ cpp/cmake/RubikoslavConfig.cmake.in
48
+ "${CMAKE_CURRENT_BINARY_DIR}/RubikoslavConfig.cmake"
49
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Rubikoslav
50
+ )
51
+ write_basic_package_version_file(
52
+ "${CMAKE_CURRENT_BINARY_DIR}/RubikoslavConfigVersion.cmake"
53
+ VERSION ${PROJECT_VERSION}
54
+ COMPATIBILITY SameMajorVersion
55
+ )
56
+ install(FILES
57
+ "${CMAKE_CURRENT_BINARY_DIR}/RubikoslavConfig.cmake"
58
+ "${CMAKE_CURRENT_BINARY_DIR}/RubikoslavConfigVersion.cmake"
59
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Rubikoslav
60
+ )
61
+ endif()