From f77c4baed78eb12f57316fcd38005faa92f7ce13 Mon Sep 17 00:00:00 2001 From: Dnomd343 Date: Thu, 26 Jan 2023 23:04:30 +0800 Subject: [PATCH] feat: klotski cli interface demo --- CMakeLists.txt | 2 +- src/CMakeLists.txt | 6 ++++-- src/demo.py | 7 +++++++ src/klotski/CMakeLists.txt | 24 ++++++++++++------------ src/klotski/ffi/klotski.h | 14 ++++++-------- src/klotski/ffi/tmain.cc | 17 ++++++++++++++--- src/main.c | 3 ++- 7 files changed, 46 insertions(+), 27 deletions(-) create mode 100755 src/demo.py diff --git a/CMakeLists.txt b/CMakeLists.txt index c3b3dab..a304e03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.0) project(klotski) -set(CMAKE_CXX_STANDARD 14) +#set(CMAKE_CXX_STANDARD 14) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1ee3004..1155cad 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,8 +1,10 @@ cmake_minimum_required(VERSION 3.0) +project(klotski-cli LANGUAGES C) + include_directories(klotski/ffi) add_subdirectory(klotski) -add_executable(demo main.c) -target_link_libraries(demo PUBLIC klotski) +add_executable(cli main.c) +target_link_libraries(cli PUBLIC klotski) diff --git a/src/demo.py b/src/demo.py new file mode 100755 index 0000000..bc02294 --- /dev/null +++ b/src/demo.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +import ctypes + +lib = ctypes.CDLL('../cmake-build-release/src/klotski/libklotski.so') + +lib.tmain() diff --git a/src/klotski/CMakeLists.txt b/src/klotski/CMakeLists.txt index 1484086..d4609bc 100644 --- a/src/klotski/CMakeLists.txt +++ b/src/klotski/CMakeLists.txt @@ -32,22 +32,22 @@ add_subdirectory(fast_cal) ################################################################ -add_library(klotski-core OBJECT ffi/codec.cc ffi/tmain.cc) +add_library(klotski-ffi OBJECT ffi/codec.cc ffi/tmain.cc) -target_link_libraries(klotski-core utils) -target_link_libraries(klotski-core all_cases) +################################################################ -target_link_libraries(klotski-core raw_code) -target_link_libraries(klotski-core short_code) -target_link_libraries(klotski-core common_code) +add_library(klotski SHARED $) +#add_library(klotski STATIC $) -target_link_libraries(klotski-core core) -target_link_libraries(klotski-core analyse) -target_link_libraries(klotski-core fast_cal) +target_link_libraries(klotski PRIVATE utils) +target_link_libraries(klotski PRIVATE all_cases) -################################################################ +target_link_libraries(klotski PRIVATE raw_code) +target_link_libraries(klotski PRIVATE short_code) +target_link_libraries(klotski PRIVATE common_code) -#add_library(klotski SHARED $) -add_library(klotski STATIC $) +target_link_libraries(klotski PRIVATE core) +target_link_libraries(klotski PRIVATE analyse) +target_link_libraries(klotski PRIVATE fast_cal) ################################################################ diff --git a/src/klotski/ffi/klotski.h b/src/klotski/ffi/klotski.h index b8e6360..e516aa3 100644 --- a/src/klotski/ffi/klotski.h +++ b/src/klotski/ffi/klotski.h @@ -1,23 +1,21 @@ #pragma once +/// klotski test interface #ifdef __cplusplus extern "C" { #endif - -void tmain(); - + // TODO: remove after test + extern void tmain(); #ifdef __cplusplus } #endif - +/// klotski codec interface #ifdef __cplusplus extern "C" { #endif - -void short_code_speed_up(); -void short_code_speed_up_fast(); - + extern void short_code_speed_up(); + extern void short_code_speed_up_fast(); #ifdef __cplusplus } #endif diff --git a/src/klotski/ffi/tmain.cc b/src/klotski/ffi/tmain.cc index f90b38e..ee69004 100644 --- a/src/klotski/ffi/tmain.cc +++ b/src/klotski/ffi/tmain.cc @@ -1,10 +1,20 @@ -#include +/// WARN: c-style lib should not using `iostream` +/// using `printf` for screen output in test process + +#include +#include + #include "klotski.h" -#include "core.h" +#include "common.h" +//#include "core.h" void tmain() { - std::cout << "tmain start" << std::endl; + printf("tmain start\n"); + + uint64_t common_code = 0x1A9BC0C00; + + Common::range_reverse(common_code); // uint64_t raw_code = 0x0603EDF5CAFFF5E2; @@ -16,4 +26,5 @@ void tmain() { // core.next_cases(raw_code, 0); // } + printf("tmain exit\n"); } diff --git a/src/main.c b/src/main.c index 0e89689..eaf10ef 100644 --- a/src/main.c +++ b/src/main.c @@ -2,9 +2,10 @@ #include "klotski.h" int main() { -// printf("interface test\n"); + printf("cli boot\n"); tmain(); + printf("cli exit\n"); return 0; }