From 1d2c1742ad721c459086fccbcbf8890235618135 Mon Sep 17 00:00:00 2001 From: Dnomd343 Date: Sun, 24 Nov 2024 15:17:30 +0800 Subject: [PATCH] build: optimize cmake structure --- src/core/CMakeLists.txt | 9 +++---- src/core_ffi/CMakeLists.txt | 27 ++++--------------- src/core_ffi/c_ffi/CMakeLists.txt | 16 +++++++++++ .../{py_ffi => python_ffi}/CMakeLists.txt | 8 ++++-- .../{py_ffi => python_ffi}/binder/cases.cc | 0 .../binder/common_code.cc | 0 .../{py_ffi => python_ffi}/binder/fast_cal.cc | 0 .../{py_ffi => python_ffi}/binder/group.cc | 0 .../binder/group_union.cc | 0 .../binder/short_code.cc | 0 .../{py_ffi => python_ffi}/include/binder.h | 0 .../include/exception.h | 0 .../include/py_ffi/cases.h | 0 .../include/py_ffi/common_code.h | 0 .../include/py_ffi/fast_cal.h | 0 .../include/py_ffi/group.h | 0 .../include/py_ffi/short_code.h | 0 .../{py_ffi => python_ffi}/klotski.cc | 0 .../packing/CMakeLists.txt | 0 .../packing/MANIFEST.in | 4 +-- .../{py_ffi => python_ffi}/packing/README.md | 0 .../packing/pyproject.toml | 0 .../{py_ffi => python_ffi}/packing/setup.py | 0 .../packing/src/CMakeLists.txt | 0 .../{py_ffi => python_ffi}/packing/src/core | 0 .../packing/src/core_ffi | 0 .../packing/src/klotski/__init__.py | 0 .../packing/third_party | 0 .../{py_ffi => python_ffi}/wrapper/cases.cc | 0 .../wrapper/common_codec.cc | 0 .../wrapper/fast_cal.cc | 0 .../{py_ffi => python_ffi}/wrapper/group.cc | 0 .../wrapper/group_union.cc | 0 .../wrapper/short_code.cc | 0 src/core_ffi/rust_ffi/CMakeLists.txt | 23 ++++++++++++++++ src/core_ffi/rust_ffi/build.rs | 23 ++++++---------- .../src/core_ffi/rust_ffi/CMakeLists.txt | 1 + src/core_test/CMakeLists.txt | 2 +- 38 files changed, 66 insertions(+), 47 deletions(-) create mode 100644 src/core_ffi/c_ffi/CMakeLists.txt rename src/core_ffi/{py_ffi => python_ffi}/CMakeLists.txt (79%) rename src/core_ffi/{py_ffi => python_ffi}/binder/cases.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/binder/common_code.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/binder/fast_cal.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/binder/group.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/binder/group_union.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/binder/short_code.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/include/binder.h (100%) rename src/core_ffi/{py_ffi => python_ffi}/include/exception.h (100%) rename src/core_ffi/{py_ffi => python_ffi}/include/py_ffi/cases.h (100%) rename src/core_ffi/{py_ffi => python_ffi}/include/py_ffi/common_code.h (100%) rename src/core_ffi/{py_ffi => python_ffi}/include/py_ffi/fast_cal.h (100%) rename src/core_ffi/{py_ffi => python_ffi}/include/py_ffi/group.h (100%) rename src/core_ffi/{py_ffi => python_ffi}/include/py_ffi/short_code.h (100%) rename src/core_ffi/{py_ffi => python_ffi}/klotski.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/packing/CMakeLists.txt (100%) rename src/core_ffi/{py_ffi => python_ffi}/packing/MANIFEST.in (78%) rename src/core_ffi/{py_ffi => python_ffi}/packing/README.md (100%) rename src/core_ffi/{py_ffi => python_ffi}/packing/pyproject.toml (100%) rename src/core_ffi/{py_ffi => python_ffi}/packing/setup.py (100%) rename src/core_ffi/{py_ffi => python_ffi}/packing/src/CMakeLists.txt (100%) rename src/core_ffi/{py_ffi => python_ffi}/packing/src/core (100%) rename src/core_ffi/{py_ffi => python_ffi}/packing/src/core_ffi (100%) rename src/core_ffi/{py_ffi => python_ffi}/packing/src/klotski/__init__.py (100%) rename src/core_ffi/{py_ffi => python_ffi}/packing/third_party (100%) rename src/core_ffi/{py_ffi => python_ffi}/wrapper/cases.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/wrapper/common_codec.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/wrapper/fast_cal.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/wrapper/group.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/wrapper/group_union.cc (100%) rename src/core_ffi/{py_ffi => python_ffi}/wrapper/short_code.cc (100%) create mode 100644 src/core_ffi/rust_ffi/CMakeLists.txt create mode 120000 src/core_ffi/rust_ffi/klotski/src/core_ffi/rust_ffi/CMakeLists.txt diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index f0e1184..ed462bc 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -1,9 +1,9 @@ cmake_minimum_required(VERSION 3.12) -project(core VERSION 0.0.1 LANGUAGES CXX) +project(klotski_core VERSION 0.0.1 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) -set(KLOTSKI_CORE_SRC +set(KLSK_CORE_SRC ranges/internal/spawn.cc ranges/internal/ranges.cc ranges/internal/derive.cc @@ -31,16 +31,15 @@ set(KLOTSKI_CORE_SRC fast_cal/internal/fast_cal.cc ) -add_library(klotski_core STATIC ${KLOTSKI_CORE_SRC}) +add_library(klotski_core STATIC ${KLSK_CORE_SRC}) target_compile_options(klotski_core PRIVATE -fno-rtti -fno-exceptions) # option for `-fvisibility=hidden` target_include_directories(klotski_core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(klotski_core PUBLIC phmap::phmap) add_library(klotski::core ALIAS klotski_core) -# TODO: just for dev testing if (KLSK_DEV_MODE) add_executable(klotski_core_bin main.cc) - target_link_libraries(klotski_core_bin PRIVATE klotski_core) + target_link_libraries(klotski_core_bin PRIVATE klotski::core) endif() if (KLSK_ENABLE_BENCHMARK) diff --git a/src/core_ffi/CMakeLists.txt b/src/core_ffi/CMakeLists.txt index 3583740..b56b59e 100644 --- a/src/core_ffi/CMakeLists.txt +++ b/src/core_ffi/CMakeLists.txt @@ -1,31 +1,14 @@ cmake_minimum_required(VERSION 3.12) project(core_ffi) -set(CMAKE_CXX_STANDARD 23) - if (KLSK_C_FFI) - add_library(klotski_c c_ffi/all_cases.cc) - target_include_directories(klotski_c PUBLIC c_ffi/include) - target_link_libraries(klotski_c PRIVATE klotski::core) - set_target_properties(klotski_c PROPERTIES OUTPUT_NAME klotski) + add_subdirectory(c_ffi) endif() -if (KLSK_PYTHON_FFI) - add_subdirectory(py_ffi) +if (KLSK_RUST_FFI) + add_subdirectory(rust_ffi) endif() -if (KLSK_RUST_FFI) - if (CARGO_BUILD) - install(TARGETS klotski_core DESTINATION .) - else() - # just for IDE highlight - add_library(klotski_rs - rust_ffi/adapter/short_code.cc - rust_ffi/adapter/common_code.cc - rust_ffi/target/cxxbridge/rust_ffi/src/bridge.rs.cc - ) - target_include_directories(klotski_rs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) - target_include_directories(klotski_rs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/rust_ffi/target/cxxbridge) - target_link_libraries(klotski_rs PRIVATE klotski_core) - endif() +if (KLSK_PYTHON_FFI) + add_subdirectory(python_ffi) endif() diff --git a/src/core_ffi/c_ffi/CMakeLists.txt b/src/core_ffi/c_ffi/CMakeLists.txt new file mode 100644 index 0000000..f7bd9d0 --- /dev/null +++ b/src/core_ffi/c_ffi/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 3.12) +project(klotski_c LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 23) + +set(KLSK_C_FFI_SRC + all_cases.cc +) + +# TODO: add `-fno-rtti -fno-exceptions -fvisibility=hidden` +add_library(klotski_c STATIC ${KLSK_C_FFI_SRC}) # TODO: allow shared lib +target_include_directories(klotski_c PUBLIC include) +target_link_libraries(klotski_c PRIVATE klotski::core) + +set_target_properties(klotski_c PROPERTIES OUTPUT_NAME klotski) +add_library(klotski::c_ffi ALIAS klotski_c) diff --git a/src/core_ffi/py_ffi/CMakeLists.txt b/src/core_ffi/python_ffi/CMakeLists.txt similarity index 79% rename from src/core_ffi/py_ffi/CMakeLists.txt rename to src/core_ffi/python_ffi/CMakeLists.txt index 9a2911b..c609e94 100644 --- a/src/core_ffi/py_ffi/CMakeLists.txt +++ b/src/core_ffi/python_ffi/CMakeLists.txt @@ -1,9 +1,9 @@ cmake_minimum_required(VERSION 3.12) -project(py_ffi) +project(klotski_py LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) -pybind11_add_module(klotski_py +set(KLSK_PYTHON_FFI_SRC klotski.cc binder/cases.cc @@ -20,9 +20,13 @@ pybind11_add_module(klotski_py wrapper/group.cc wrapper/fast_cal.cc ) + +pybind11_add_module(klotski_py ${KLSK_PYTHON_FFI_SRC}) target_include_directories(klotski_py PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) target_link_libraries(klotski_py PRIVATE klotski::core) + set_target_properties(klotski_py PROPERTIES OUTPUT_NAME _klotski) +add_library(klotski::py_ffi ALIAS klotski_py) if (SKBUILD) install(TARGETS klotski_py DESTINATION .) diff --git a/src/core_ffi/py_ffi/binder/cases.cc b/src/core_ffi/python_ffi/binder/cases.cc similarity index 100% rename from src/core_ffi/py_ffi/binder/cases.cc rename to src/core_ffi/python_ffi/binder/cases.cc diff --git a/src/core_ffi/py_ffi/binder/common_code.cc b/src/core_ffi/python_ffi/binder/common_code.cc similarity index 100% rename from src/core_ffi/py_ffi/binder/common_code.cc rename to src/core_ffi/python_ffi/binder/common_code.cc diff --git a/src/core_ffi/py_ffi/binder/fast_cal.cc b/src/core_ffi/python_ffi/binder/fast_cal.cc similarity index 100% rename from src/core_ffi/py_ffi/binder/fast_cal.cc rename to src/core_ffi/python_ffi/binder/fast_cal.cc diff --git a/src/core_ffi/py_ffi/binder/group.cc b/src/core_ffi/python_ffi/binder/group.cc similarity index 100% rename from src/core_ffi/py_ffi/binder/group.cc rename to src/core_ffi/python_ffi/binder/group.cc diff --git a/src/core_ffi/py_ffi/binder/group_union.cc b/src/core_ffi/python_ffi/binder/group_union.cc similarity index 100% rename from src/core_ffi/py_ffi/binder/group_union.cc rename to src/core_ffi/python_ffi/binder/group_union.cc diff --git a/src/core_ffi/py_ffi/binder/short_code.cc b/src/core_ffi/python_ffi/binder/short_code.cc similarity index 100% rename from src/core_ffi/py_ffi/binder/short_code.cc rename to src/core_ffi/python_ffi/binder/short_code.cc diff --git a/src/core_ffi/py_ffi/include/binder.h b/src/core_ffi/python_ffi/include/binder.h similarity index 100% rename from src/core_ffi/py_ffi/include/binder.h rename to src/core_ffi/python_ffi/include/binder.h diff --git a/src/core_ffi/py_ffi/include/exception.h b/src/core_ffi/python_ffi/include/exception.h similarity index 100% rename from src/core_ffi/py_ffi/include/exception.h rename to src/core_ffi/python_ffi/include/exception.h diff --git a/src/core_ffi/py_ffi/include/py_ffi/cases.h b/src/core_ffi/python_ffi/include/py_ffi/cases.h similarity index 100% rename from src/core_ffi/py_ffi/include/py_ffi/cases.h rename to src/core_ffi/python_ffi/include/py_ffi/cases.h diff --git a/src/core_ffi/py_ffi/include/py_ffi/common_code.h b/src/core_ffi/python_ffi/include/py_ffi/common_code.h similarity index 100% rename from src/core_ffi/py_ffi/include/py_ffi/common_code.h rename to src/core_ffi/python_ffi/include/py_ffi/common_code.h diff --git a/src/core_ffi/py_ffi/include/py_ffi/fast_cal.h b/src/core_ffi/python_ffi/include/py_ffi/fast_cal.h similarity index 100% rename from src/core_ffi/py_ffi/include/py_ffi/fast_cal.h rename to src/core_ffi/python_ffi/include/py_ffi/fast_cal.h diff --git a/src/core_ffi/py_ffi/include/py_ffi/group.h b/src/core_ffi/python_ffi/include/py_ffi/group.h similarity index 100% rename from src/core_ffi/py_ffi/include/py_ffi/group.h rename to src/core_ffi/python_ffi/include/py_ffi/group.h diff --git a/src/core_ffi/py_ffi/include/py_ffi/short_code.h b/src/core_ffi/python_ffi/include/py_ffi/short_code.h similarity index 100% rename from src/core_ffi/py_ffi/include/py_ffi/short_code.h rename to src/core_ffi/python_ffi/include/py_ffi/short_code.h diff --git a/src/core_ffi/py_ffi/klotski.cc b/src/core_ffi/python_ffi/klotski.cc similarity index 100% rename from src/core_ffi/py_ffi/klotski.cc rename to src/core_ffi/python_ffi/klotski.cc diff --git a/src/core_ffi/py_ffi/packing/CMakeLists.txt b/src/core_ffi/python_ffi/packing/CMakeLists.txt similarity index 100% rename from src/core_ffi/py_ffi/packing/CMakeLists.txt rename to src/core_ffi/python_ffi/packing/CMakeLists.txt diff --git a/src/core_ffi/py_ffi/packing/MANIFEST.in b/src/core_ffi/python_ffi/packing/MANIFEST.in similarity index 78% rename from src/core_ffi/py_ffi/packing/MANIFEST.in rename to src/core_ffi/python_ffi/packing/MANIFEST.in index ec9f3f7..00a68b1 100644 --- a/src/core_ffi/py_ffi/packing/MANIFEST.in +++ b/src/core_ffi/python_ffi/packing/MANIFEST.in @@ -10,8 +10,8 @@ include src/CMakeLists.txt include src/core_ffi/CMakeLists.txt recursive-include src/core * -recursive-include src/core_ffi/py_ffi * -recursive-exclude src/core_ffi/py_ffi/packing * +recursive-include src/core_ffi/python_ffi * +recursive-exclude src/core_ffi/python_ffi/packing * include third_party/ThirdParty.cmake recursive-include third_party/pybind11 * diff --git a/src/core_ffi/py_ffi/packing/README.md b/src/core_ffi/python_ffi/packing/README.md similarity index 100% rename from src/core_ffi/py_ffi/packing/README.md rename to src/core_ffi/python_ffi/packing/README.md diff --git a/src/core_ffi/py_ffi/packing/pyproject.toml b/src/core_ffi/python_ffi/packing/pyproject.toml similarity index 100% rename from src/core_ffi/py_ffi/packing/pyproject.toml rename to src/core_ffi/python_ffi/packing/pyproject.toml diff --git a/src/core_ffi/py_ffi/packing/setup.py b/src/core_ffi/python_ffi/packing/setup.py similarity index 100% rename from src/core_ffi/py_ffi/packing/setup.py rename to src/core_ffi/python_ffi/packing/setup.py diff --git a/src/core_ffi/py_ffi/packing/src/CMakeLists.txt b/src/core_ffi/python_ffi/packing/src/CMakeLists.txt similarity index 100% rename from src/core_ffi/py_ffi/packing/src/CMakeLists.txt rename to src/core_ffi/python_ffi/packing/src/CMakeLists.txt diff --git a/src/core_ffi/py_ffi/packing/src/core b/src/core_ffi/python_ffi/packing/src/core similarity index 100% rename from src/core_ffi/py_ffi/packing/src/core rename to src/core_ffi/python_ffi/packing/src/core diff --git a/src/core_ffi/py_ffi/packing/src/core_ffi b/src/core_ffi/python_ffi/packing/src/core_ffi similarity index 100% rename from src/core_ffi/py_ffi/packing/src/core_ffi rename to src/core_ffi/python_ffi/packing/src/core_ffi diff --git a/src/core_ffi/py_ffi/packing/src/klotski/__init__.py b/src/core_ffi/python_ffi/packing/src/klotski/__init__.py similarity index 100% rename from src/core_ffi/py_ffi/packing/src/klotski/__init__.py rename to src/core_ffi/python_ffi/packing/src/klotski/__init__.py diff --git a/src/core_ffi/py_ffi/packing/third_party b/src/core_ffi/python_ffi/packing/third_party similarity index 100% rename from src/core_ffi/py_ffi/packing/third_party rename to src/core_ffi/python_ffi/packing/third_party diff --git a/src/core_ffi/py_ffi/wrapper/cases.cc b/src/core_ffi/python_ffi/wrapper/cases.cc similarity index 100% rename from src/core_ffi/py_ffi/wrapper/cases.cc rename to src/core_ffi/python_ffi/wrapper/cases.cc diff --git a/src/core_ffi/py_ffi/wrapper/common_codec.cc b/src/core_ffi/python_ffi/wrapper/common_codec.cc similarity index 100% rename from src/core_ffi/py_ffi/wrapper/common_codec.cc rename to src/core_ffi/python_ffi/wrapper/common_codec.cc diff --git a/src/core_ffi/py_ffi/wrapper/fast_cal.cc b/src/core_ffi/python_ffi/wrapper/fast_cal.cc similarity index 100% rename from src/core_ffi/py_ffi/wrapper/fast_cal.cc rename to src/core_ffi/python_ffi/wrapper/fast_cal.cc diff --git a/src/core_ffi/py_ffi/wrapper/group.cc b/src/core_ffi/python_ffi/wrapper/group.cc similarity index 100% rename from src/core_ffi/py_ffi/wrapper/group.cc rename to src/core_ffi/python_ffi/wrapper/group.cc diff --git a/src/core_ffi/py_ffi/wrapper/group_union.cc b/src/core_ffi/python_ffi/wrapper/group_union.cc similarity index 100% rename from src/core_ffi/py_ffi/wrapper/group_union.cc rename to src/core_ffi/python_ffi/wrapper/group_union.cc diff --git a/src/core_ffi/py_ffi/wrapper/short_code.cc b/src/core_ffi/python_ffi/wrapper/short_code.cc similarity index 100% rename from src/core_ffi/py_ffi/wrapper/short_code.cc rename to src/core_ffi/python_ffi/wrapper/short_code.cc diff --git a/src/core_ffi/rust_ffi/CMakeLists.txt b/src/core_ffi/rust_ffi/CMakeLists.txt new file mode 100644 index 0000000..cf98055 --- /dev/null +++ b/src/core_ffi/rust_ffi/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.12) +project(klotski_rs LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 23) + +if (KLSK_DEV_MODE) + set(KLSK_RUST_FFI_SRC + adapter/short_code.cc + adapter/common_code.cc + target/cxxbridge/rust_ffi/src/bridge.rs.cc + ) + add_library(klotski_rs STATIC ${KLSK_RUST_FFI_SRC}) # just for IDE highlight + target_include_directories(klotski_rs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../) + target_include_directories(klotski_rs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/target/cxxbridge) + target_link_libraries(klotski_rs PRIVATE klotski::core) + + set_target_properties(klotski_rs PROPERTIES OUTPUT_NAME klotski) + add_library(klotski::rs_ffi ALIAS klotski_rs) +endif() + +if (CARGO_BUILD) + install(TARGETS klotski_core DESTINATION .) +endif() diff --git a/src/core_ffi/rust_ffi/build.rs b/src/core_ffi/rust_ffi/build.rs index c4a7ccc..bd39b8b 100644 --- a/src/core_ffi/rust_ffi/build.rs +++ b/src/core_ffi/rust_ffi/build.rs @@ -1,27 +1,23 @@ -extern crate cmake; +// NOTE: add the following environment variables for using llvm toolchain +// CC=clang-20 +// CXX=clang++-20 +// CXXSTDLIB="c++" +// CXXFLAGS="-stdlib=libc++" +// RUSTFLAGS="-Clinker=clang-20 -Clink-arg=-fuse-ld=lld-20 -Clink-arg=-stdlib=libc++" use cxx_build::CFG; -// NOTE: add `CC=clang-20 CXX=clang++-20 CXXFLAGS="-stdlib=libc++"` for cargo command -// we should keep cxx crate using clang for `cxx.cc` - -// NOTE: also, `RUSTFLAGS="-C linker=clang-20"` should be added to cargo env for using lld - -// NOTE: add `CC=clang-20 CXX=clang++-20 CXXFLAGS="-stdlib=libc++" RUSTFLAGS="-C linker=clang-20 -C link-arg=-fuse-ld=lld-20 -C link-arg=-stdlib=libc++"` for using llvm toolchain - -// NOTE: it seems that cxx_build link `libstdc++` on linux, we can add `-C link-arg=-lc++ -C link-arg=-lc++abi` for workaround, but it should be fixed in the future. - fn main() { - let dst = cmake::Config::new("klotski") + cmake::Config::new("klotski") .define("CARGO_BUILD:BOOL", "ON") .define("KLSK_ENABLE_TESTING:BOOL", "OFF") .define("KLSK_ENABLE_BENCHMARK:BOOL", "OFF") .define("KLSK_C_FFI:BOOL", "OFF") .define("KLSK_PYTHON_FFI:BOOL", "OFF") .build(); + println!("cargo:rustc-link-lib=static=klotski_core"); CFG.include_prefix = "rust_ffi"; - cxx_build::bridge("src/bridge.rs") .file("adapter/short_code.cc") .file("adapter/common_code.cc") @@ -31,9 +27,6 @@ fn main() { .flag("-fno-exceptions") .compile("klotski"); - println!("cargo:rustc-link-search=native={}", dst.display()); - println!("cargo:rustc-link-lib=static=klotski_core"); - println!("cargo:rerun-if-changed=src/bridge.rs"); println!("cargo:rerun-if-changed=adapter/short_code.cc"); println!("cargo:rerun-if-changed=adapter/common_code.cc"); diff --git a/src/core_ffi/rust_ffi/klotski/src/core_ffi/rust_ffi/CMakeLists.txt b/src/core_ffi/rust_ffi/klotski/src/core_ffi/rust_ffi/CMakeLists.txt new file mode 120000 index 0000000..75f9ac9 --- /dev/null +++ b/src/core_ffi/rust_ffi/klotski/src/core_ffi/rust_ffi/CMakeLists.txt @@ -0,0 +1 @@ +../../../../CMakeLists.txt \ No newline at end of file diff --git a/src/core_test/CMakeLists.txt b/src/core_test/CMakeLists.txt index a9d314f..082ec53 100644 --- a/src/core_test/CMakeLists.txt +++ b/src/core_test/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.5 FATAL_ERROR) -project(core-test LANGUAGES CXX) +project(klotski_test LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23)