From aba50e730000e74bc8723821a03193c118e703ea Mon Sep 17 00:00:00 2001 From: cspark Date: Thu, 20 Nov 2025 01:29:00 +0000 Subject: [PATCH] Switch to cmake and cc-ls --- .gitignore | 3 ++- CMakeLists.txt | 18 ++++++++++++++++++ compile_commands.json | 21 +-------------------- default.nix | 8 ++++++++ main.cpp | 15 +++++++++++++-- run.sh | 6 +++--- 6 files changed, 45 insertions(+), 26 deletions(-) create mode 100644 CMakeLists.txt mode change 100644 => 120000 compile_commands.json create mode 100644 default.nix diff --git a/.gitignore b/.gitignore index b2f55fd..ea4b235 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +build/ .cache/ -a.out +.ccls-cache/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..0699e16 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 3.23) + +project(discern) + +set(CMAKE_CXX_STANDARD 23) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +#string(REPLACE ":" ";" INCLUDE_LIST $ENV{CMAKE_LIBRARY_PATH}) + +#include_directories(${INCLUDE_LIST}) + + +add_executable(discern) + +target_sources(discern + PRIVATE + main.cpp +) diff --git a/compile_commands.json b/compile_commands.json deleted file mode 100644 index a808858..0000000 --- a/compile_commands.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "arguments": [ - "/run/current-system/sw/bin/clang++", - "-std=c++23", - "-resource-dir", - "/nix/store/k2s6xfca52n25yb8b6f58i87kszp3m7g-clang-wrapper-21.1.2/resource-root", - "-idirafter", - "/nix/store/dqgfdpr53ldqmdfmginb1z6kzslkzsdl-glibc-2.40-66-dev/include", - "-isystem", - "/nix/store/68ndh04pl2hhhizsarvzwa9cnlp7zj3d-gcc-14.3.0/include/c++/14.3.0", - "-isystem", - "/nix/store/68ndh04pl2hhhizsarvzwa9cnlp7zj3d-gcc-14.3.0/include/c++/14.3.0/x86_64-unknown-linux-gnu", - "-c", - "main.cpp" - ], - "directory": "/home/cspark/Projects/CPP/hello_world", - "file": "/home/cspark/Projects/CPP/hello_world/main.cpp" - } -] diff --git a/compile_commands.json b/compile_commands.json new file mode 120000 index 0000000..25eb4b2 --- /dev/null +++ b/compile_commands.json @@ -0,0 +1 @@ +build/compile_commands.json \ No newline at end of file diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..83b1569 --- /dev/null +++ b/default.nix @@ -0,0 +1,8 @@ +with (import {}); + +pkgs.mkShell { + name = "C++ Study Repository"; + buildInputs = with pkgs; [ + cmake + ]; +} diff --git a/main.cpp b/main.cpp index 01ed3a0..3b27157 100644 --- a/main.cpp +++ b/main.cpp @@ -1,6 +1,17 @@ -#include #include +#include +#include + +typedef struct foo { + uint8_t test; + + int one() { + return 1; + }; +} foo; int main() { - std::println("Hello, world!"); + foo ok; + std::cout << std::to_string(ok.one()) << std::endl; } + diff --git a/run.sh b/run.sh index 120684f..2b9c3be 100755 --- a/run.sh +++ b/run.sh @@ -1,7 +1,7 @@ #!/bin/sh -rm a.out +cmake -B build --fresh -clang++ -std=c++23 main.cpp +cmake --build build -./a.out +./build/discern