From 6e17f5d8fca5dd3e0746228951b31d01e04be0aa Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Fri, 27 Dec 2024 10:32:54 -0500 Subject: [PATCH] WIP Port to CMake --- CMakeLists.txt | 36 ++++++++++++++++++++++++++++++++++++ Cargo.toml | 3 +++ cpp/main.cpp | 3 +++ src/lib.rs | 0 4 files changed, 42 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 cpp/main.cpp create mode 100644 src/lib.rs diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1783aa6 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required(VERSION 3.19) +project(Sukai) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(ECM ${KF_MIN_VERSION} NO_MODULE REQUIRED) +set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) + +find_package(Qt6 COMPONENTS Core Gui Qml QuickControls2 QuickTest Test Widgets Quick Network REQUIRED) +find_package(KF6CoreAddons REQUIRED) + +find_package(CxxQt QUIET) +if(NOT CxxQt_FOUND) + include(FetchContent) + FetchContent_Declare( + CxxQt + GIT_REPOSITORY https://github.com/kdab/cxx-qt-cmake.git + GIT_TAG main + ) + + FetchContent_MakeAvailable(CxxQt) +endif() + +cxx_qt_import_crate( + MANIFEST_PATH Cargo.toml + CRATES Sukai + QT_MODULES Qt::Core Qt::Gui Qt::Qml Qt::QuickControls2 Qt::Widgets Qt::Quick Qt::Network) + +cxx_qt_import_qml_module(sukai_module + URI "com.redstrate.sukai" + SOURCE_CRATE Sukai) + +add_executable(sukai cpp/main.cpp) +target_link_libraries(sukai PRIVATE sukai_module) \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index f3962eb..99a7d12 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,9 @@ name = "Sukai" version = "0.1.0" edition = "2021" +[lib] +crate-type = ["staticlib"] + [build-dependencies] cxx-qt-build = { git = "https://github.com/redstrate/cxx-qt", branch = "work/josh/add-qdatetime-from-string"} diff --git a/cpp/main.cpp b/cpp/main.cpp new file mode 100644 index 0000000..30014d9 --- /dev/null +++ b/cpp/main.cpp @@ -0,0 +1,3 @@ +int main(int argc, char *argv[]) { + return 0; +} \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..e69de29