From 07ecb273821c18fe114ef0bd56e69859ff4b7bfc Mon Sep 17 00:00:00 2001 From: ChUrl Date: Mon, 20 Mar 2023 17:49:51 +0100 Subject: [PATCH] CMake: Add Boost dependency --- CMakeLists.txt | 9 +++++++- flake.nix | 56 ++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 51 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7190330..79fcea2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,4 +3,11 @@ project(LogisimAssembler) set(CMAKE_CXX_STANDARD 20) -add_executable(LogisimAssembler src/main.cpp) +find_package(Boost 1.81 COMPONENTS program_options REQUIRED) + +add_executable(LogisimAssembler + src/main.cpp + src/lexer/Token.cpp + src/lexer/Lexer.cpp) + +target_link_libraries(LogisimAssembler Boost::program_options) \ No newline at end of file diff --git a/flake.nix b/flake.nix index d2e6d4c..883c422 100644 --- a/flake.nix +++ b/flake.nix @@ -50,11 +50,8 @@ bintools = bintools_multi; }; in { - # devShell = pkgs.devshell.mkShell ... - devShell = pkgs.devshell.mkShell { - name = "Logisim Assembler Development Environment"; - - packages = with pkgs; [ + devShells.default = pkgs.mkShell { + buildInputs = with pkgs; [ # Compilers bintools gcc12 @@ -63,6 +60,9 @@ # gcc12_multi # clang14_multi + # Libraries + boost181 + # Native buildinputs gnumake cmake @@ -74,14 +74,44 @@ cling # To try out my bullshit implementations # doxygen # Generate docs + graphs ]; - - commands = [ - { - name = "ide"; - help = "Run clion for project"; - command = "clion &>/dev/null ./ &"; - } - ]; }; + + # TODO: DevShell doesn't propagate buildinputs, so its difficult to find e.g. Boost... + # # devShell = pkgs.devshell.mkShell ... + # devShell = pkgs.devshell.mkShell { + # name = "Logisim Assembler Development Environment"; + + # packages = with pkgs; [ + # # Compilers + # bintools + # gcc12 + # clang15 + # # bintools_multi + # # gcc12_multi + # # clang14_multi + + # # Libraries + # boost181 + + # # Native buildinputs + # gnumake + # cmake + # # nasm + + # # Development + # # bear # To generate compilation database + # gdb + # cling # To try out my bullshit implementations + # # doxygen # Generate docs + graphs + # ]; + + # commands = [ + # { + # name = "ide"; + # help = "Run clion for project"; + # command = "clion &>/dev/null ./ &"; + # } + # ]; + # }; }); }