From cd28555c0519398dcd9824cae49d7a8f0ebc3528 Mon Sep 17 00:00:00 2001 From: Andrew Hu Date: Sat, 16 Nov 2024 14:44:04 -0500 Subject: [PATCH 1/7] =?UTF-8?q?feat(devx):=20=F0=9F=A7=91=E2=80=8D?= =?UTF-8?q?=F0=9F=92=BB=20update/simplify=20dev=20environment=20to=20use?= =?UTF-8?q?=20devbox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile | 59 --- .devcontainer/devcontainer.json | 18 - .devcontainer/docker-compose.dev.yaml | 16 - CMakeLists.txt | 2 +- Taskfile.yaml | 9 +- devbox.json | 22 ++ devbox.lock | 361 ++++++++++++++++++ include/.gitkeep | 0 packages/.gitkeep | 0 ...-22.04.clang.debug.ini => linux.clang.ini} | 5 +- ...untu-22.04.gcc.debug.ini => linux.gcc.ini} | 1 - 11 files changed, 391 insertions(+), 102 deletions(-) delete mode 100644 .devcontainer/Dockerfile delete mode 100644 .devcontainer/devcontainer.json delete mode 100644 .devcontainer/docker-compose.dev.yaml create mode 100644 devbox.json create mode 100644 devbox.lock create mode 100644 include/.gitkeep create mode 100644 packages/.gitkeep rename profiles/{ubuntu-22.04.clang.debug.ini => linux.clang.ini} (56%) rename profiles/{ubuntu-22.04.gcc.debug.ini => linux.gcc.ini} (91%) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index d5bd03e..0000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM mcr.microsoft.com/vscode/devcontainers/cpp:jammy - -ENV DEBIAN_FRONTEND="noninteractive" -ENV DEBCONF_NONINTERACTIVE_SEEN "true" - -RUN apt-get update && apt-get dist-upgrade -y - -# Install development tools -RUN apt-get install -y \ - --no-install-recommends \ - software-properties-common \ - ninja-build \ - gdb \ - valgrind \ - python3-pip - -# Install Clang 16 -RUN wget -nv -O - https://apt.llvm.org/llvm-snapshot.gpg.key \ - | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc \ - && add-apt-repository \ - "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" \ - && apt-get update -RUN apt-get install -y \ - --no-install-recommends \ - clang-16 \ - lld-16 \ - libc++-16-dev \ - libc++abi-16-dev \ - clangd-16 \ - clang-format-16 \ - clang-tidy-16 \ - libllvm16 \ - llvm-16 \ - llvm-16-dev - -RUN apt-get clean && rm -rf "/var/lib/apt/lists/*" - -# Install CMake version that supports presets -ENV CMAKE_TAG="v3.27" -ENV CMAKE_VERSION="3.27.6" -ENV CMAKE_PLATFORM="linux-x86_64" -ENV CMAKE_RELEASE="cmake-${CMAKE_VERSION}-${CMAKE_PLATFORM}" -RUN wget -qO- "https://cmake.org/files/${CMAKE_TAG}/${CMAKE_RELEASE}.tar.gz" \ - | tar --strip-components=1 -xz -C "/usr/local" - -ENV CCACHE_TAG="v4.8.3" -ENV CCACHE_VERSION="4.8.3" -ENV CCACHE_PLATFORM="linux-x86_64" -ENV CCACHE_RELEASE="ccache-${CCACHE_VERSION}-${CCACHE_PLATFORM}" -RUN wget -qO- "https://github.com/ccache/ccache/releases/download/${CCACHE_TAG}/${CCACHE_RELEASE}.tar.xz" \ - | tar -xJ -C "/opt" \ - && mv "/opt/${CCACHE_RELEASE}/ccache" "/usr/local/bin" \ - && rm -rf "/opt/${CCACHE_RELEASE}" - -# Install Conan package manager -RUN python3.10 -m pip install conan --upgrade - -# Install Task: https://taskfile.dev/ -RUN sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b "/usr/local/bin" diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index f7e5c03..0000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Dao Workspace", - "dockerComposeFile": [ - "docker-compose.dev.yaml" - ], - "service": "workspace", - "workspaceFolder": "/workspace/dao", - "shutdownAction": "stopCompose", - "customizations": { - "vscode": { - "extensions": [ - "editorconfig.editorconfig", - "llvm-vs-code-extensions.vscode-clangd", - "revng.llvm-ir" - ] - } - } -} diff --git a/.devcontainer/docker-compose.dev.yaml b/.devcontainer/docker-compose.dev.yaml deleted file mode 100644 index 781e30b..0000000 --- a/.devcontainer/docker-compose.dev.yaml +++ /dev/null @@ -1,16 +0,0 @@ -version: "3.8" - -services: - workspace: - build: - context: . - dockerfile: "Dockerfile" - - volumes: - - type: "bind" - source: ".." - target: "/workspace/dao" - consistency: "cached" - - "/var/run/docker.sock:/var/run/docker.sock" - - command: "/bin/sh -c 'while sleep 1000; do :; done'" diff --git a/CMakeLists.txt b/CMakeLists.txt index ce08be0..b4b3100 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.27.6) +cmake_minimum_required(VERSION 3.30.4) project(dao LANGUAGES C CXX ) diff --git a/Taskfile.yaml b/Taskfile.yaml index 0179ebf..3689404 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -3,9 +3,9 @@ version: "3" env: DOCKER_BUILDKIT: 1 BUILDKIT_PROGRESS: "plain" - BUILD_OS: "ubuntu-22.04" + BUILD_OS: "linux" BUILD_COMPILER: "clang" - BUILD_TYPE: "debug" + BUILD_TYPE: "Debug" tasks: lock: conan lock create . @@ -14,9 +14,10 @@ tasks: cmds: - | conan install . \ - --profile="profiles/${BUILD_OS}.${BUILD_COMPILER}.${BUILD_TYPE}.ini" \ + --profile="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \ --output-folder="build" \ - --build=missing + --build=missing \ + --settings=build_type=${BUILD_TYPE} generate: aliases: [gen] diff --git a/devbox.json b/devbox.json new file mode 100644 index 0000000..dbcc634 --- /dev/null +++ b/devbox.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.13.6/.schema/devbox.schema.json", + "packages": [ + "clang@18.1.8", + "conan@2.9.1", + "cmake@3.30.4", + "ccache@4.10.2", + "go-task@3.39.2", + "lld@18.1.8", + "ninja@1.12.1" + ], + "shell": { + "init_hook": [ + "echo 'Welcome to devbox!' > /dev/null" + ], + "scripts": { + "test": [ + "echo \"Error: no test specified\" && exit 1" + ] + } + } +} diff --git a/devbox.lock b/devbox.lock new file mode 100644 index 0000000..71e0bce --- /dev/null +++ b/devbox.lock @@ -0,0 +1,361 @@ +{ + "lockfile_version": "1", + "packages": { + "ccache@4.10.2": { + "last_modified": "2024-11-03T14:18:04Z", + "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#ccache", + "source": "devbox-search", + "version": "4.10.2", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/82pxa23mrlkgajhgrxmyf0h0ybb54v0d-ccache-4.10.2", + "default": true + }, + { + "name": "man", + "path": "/nix/store/niz54smf0blwxsfc5n8ny99gk1a13h7l-ccache-4.10.2-man", + "default": true + } + ], + "store_path": "/nix/store/82pxa23mrlkgajhgrxmyf0h0ybb54v0d-ccache-4.10.2" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/dz28y29fyf2h3l5cpi7hq7fsq4ghl6rp-ccache-4.10.2", + "default": true + }, + { + "name": "man", + "path": "/nix/store/4wcdy67w32l7fcnks93smds90hf42cyf-ccache-4.10.2-man", + "default": true + } + ], + "store_path": "/nix/store/dz28y29fyf2h3l5cpi7hq7fsq4ghl6rp-ccache-4.10.2" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/5mgdfgqbdl88w53a82vq78mky2pd4q1d-ccache-4.10.2", + "default": true + }, + { + "name": "man", + "path": "/nix/store/z9fn56sgm13jp4jm21w6d4zns10sq47y-ccache-4.10.2-man", + "default": true + } + ], + "store_path": "/nix/store/5mgdfgqbdl88w53a82vq78mky2pd4q1d-ccache-4.10.2" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/qb9f59halilymzmxhgyvndqbrrk3h3rj-ccache-4.10.2", + "default": true + }, + { + "name": "man", + "path": "/nix/store/kh78krrqsv1k81wxxccmlwj9miwj58ry-ccache-4.10.2-man", + "default": true + } + ], + "store_path": "/nix/store/qb9f59halilymzmxhgyvndqbrrk3h3rj-ccache-4.10.2" + } + } + }, + "clang@18.1.8": { + "last_modified": "2024-11-03T14:18:04Z", + "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#clang", + "source": "devbox-search", + "version": "18.1.8", + "systems": { + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/0wvjh9f0yamfs8yckkhskazy5sxwc48d-clang-wrapper-18.1.8", + "default": true + } + ], + "store_path": "/nix/store/0wvjh9f0yamfs8yckkhskazy5sxwc48d-clang-wrapper-18.1.8" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/qajfjv5lnfys2ykm0ggkr4lnnkvgs10r-clang-wrapper-18.1.8", + "default": true + } + ], + "store_path": "/nix/store/qajfjv5lnfys2ykm0ggkr4lnnkvgs10r-clang-wrapper-18.1.8" + } + } + }, + "cmake@3.30.4": { + "last_modified": "2024-11-03T14:18:04Z", + "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#cmake", + "source": "devbox-search", + "version": "3.30.4", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/wjja52fahksjwnikmy09n5y2pa7dymma-cmake-3.30.4", + "default": true + } + ], + "store_path": "/nix/store/wjja52fahksjwnikmy09n5y2pa7dymma-cmake-3.30.4" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/i8hfbcxgsp8aj8vhsscxyjsglilwd5i3-cmake-3.30.4", + "default": true + }, + { + "name": "debug", + "path": "/nix/store/8s1jn7aj6k5r0dzga4na6mf2hmbhd62a-cmake-3.30.4-debug" + } + ], + "store_path": "/nix/store/i8hfbcxgsp8aj8vhsscxyjsglilwd5i3-cmake-3.30.4" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/y0gmpiv78vyxb0bfqm8y58hqazjkpm7l-cmake-3.30.4", + "default": true + } + ], + "store_path": "/nix/store/y0gmpiv78vyxb0bfqm8y58hqazjkpm7l-cmake-3.30.4" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/irwcgpm8csj7br49jih6kdpqkaqya3vf-cmake-3.30.4", + "default": true + }, + { + "name": "debug", + "path": "/nix/store/wqa3jwxi67szp5q7s89x58a31791qh7s-cmake-3.30.4-debug" + } + ], + "store_path": "/nix/store/irwcgpm8csj7br49jih6kdpqkaqya3vf-cmake-3.30.4" + } + } + }, + "conan@2.9.1": { + "last_modified": "2024-11-05T01:08:39Z", + "resolved": "github:NixOS/nixpkgs/a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc#conan", + "source": "devbox-search", + "version": "2.9.1", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/nlwzvayf3g1arkg1hlrgybwjmapaxp8w-conan-2.9.1", + "default": true + }, + { + "name": "dist", + "path": "/nix/store/kr2m7q54r08lz330xdd3mzzx9jax5x9p-conan-2.9.1-dist" + } + ], + "store_path": "/nix/store/nlwzvayf3g1arkg1hlrgybwjmapaxp8w-conan-2.9.1" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/dh30qsrhf10birp5759vgsl5kjxpcvm9-conan-2.9.1", + "default": true + }, + { + "name": "dist", + "path": "/nix/store/ak679fa4qria3qdvkb1njv8gziyi9k1q-conan-2.9.1-dist" + } + ], + "store_path": "/nix/store/dh30qsrhf10birp5759vgsl5kjxpcvm9-conan-2.9.1" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/affmak6kzwk28x379chpg4vc57iqkq42-conan-2.9.1", + "default": true + }, + { + "name": "dist", + "path": "/nix/store/g70k28y1gyri02rfg2wanyq1h7k832pb-conan-2.9.1-dist" + } + ], + "store_path": "/nix/store/affmak6kzwk28x379chpg4vc57iqkq42-conan-2.9.1" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/93bfi222dfw7xb2qw2lg42bxrf8vyxzn-conan-2.9.1", + "default": true + }, + { + "name": "dist", + "path": "/nix/store/j439kzv7gxi0rk0fg3dydwz5d6g9qf5f-conan-2.9.1-dist" + } + ], + "store_path": "/nix/store/93bfi222dfw7xb2qw2lg42bxrf8vyxzn-conan-2.9.1" + } + } + }, + "go-task@3.39.2": { + "last_modified": "2024-11-03T14:18:04Z", + "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#go-task", + "source": "devbox-search", + "version": "3.39.2", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/gbjz4920rwwlmlwb6wdgvvpk4yh31vnk-go-task-3.39.2", + "default": true + } + ], + "store_path": "/nix/store/gbjz4920rwwlmlwb6wdgvvpk4yh31vnk-go-task-3.39.2" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/a38ydnaa915s50yq7pahlam6wmhpi9k8-go-task-3.39.2", + "default": true + } + ], + "store_path": "/nix/store/a38ydnaa915s50yq7pahlam6wmhpi9k8-go-task-3.39.2" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/8py3ncvx2ir85pilzrcp1ygai9s82hx4-go-task-3.39.2", + "default": true + } + ], + "store_path": "/nix/store/8py3ncvx2ir85pilzrcp1ygai9s82hx4-go-task-3.39.2" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/pp4g03va3plfx8lmpfgwvpgx5jm8z7ny-go-task-3.39.2", + "default": true + } + ], + "store_path": "/nix/store/pp4g03va3plfx8lmpfgwvpgx5jm8z7ny-go-task-3.39.2" + } + } + }, + "lld@18.1.8": { + "last_modified": "2024-11-05T18:23:38Z", + "resolved": "github:NixOS/nixpkgs/8c4dc69b9732f6bbe826b5fbb32184987520ff26#lld", + "source": "devbox-search", + "version": "18.1.8", + "systems": { + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/nbd5bw2d7g6sa7n6x6ljgyhmyzz5qr8q-lld-18.1.8", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/0ci9jwkwifw5pmnvpzwimlnzyp2c8phj-lld-18.1.8-dev" + }, + { + "name": "lib", + "path": "/nix/store/pfd256xs2nnkyy9nyjg6hsjdyds1nq9c-lld-18.1.8-lib" + } + ], + "store_path": "/nix/store/nbd5bw2d7g6sa7n6x6ljgyhmyzz5qr8q-lld-18.1.8" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/r730vjwyq2wc1qvx5kihb7zj2i3vmsfw-lld-18.1.8", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/w05crza899krmz1nss5yciv207xf25gd-lld-18.1.8-dev" + }, + { + "name": "lib", + "path": "/nix/store/qdn9phl5hj16bl9bxqn6f9hfvxsl6mcp-lld-18.1.8-lib" + } + ], + "store_path": "/nix/store/r730vjwyq2wc1qvx5kihb7zj2i3vmsfw-lld-18.1.8" + } + } + }, + "ninja@1.12.1": { + "last_modified": "2024-11-03T14:18:04Z", + "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#ninja", + "source": "devbox-search", + "version": "1.12.1", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/fm05zym1mwczjmg3y37z36cpfjh34x3f-ninja-1.12.1", + "default": true + } + ], + "store_path": "/nix/store/fm05zym1mwczjmg3y37z36cpfjh34x3f-ninja-1.12.1" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/1qh7a1qy38fw7k5kzx19mbmklxsjaqp3-ninja-1.12.1", + "default": true + } + ], + "store_path": "/nix/store/1qh7a1qy38fw7k5kzx19mbmklxsjaqp3-ninja-1.12.1" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/7y36gjyqqrfs29fwb530y5rvljd18jhh-ninja-1.12.1", + "default": true + } + ], + "store_path": "/nix/store/7y36gjyqqrfs29fwb530y5rvljd18jhh-ninja-1.12.1" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/m5d2zsm9252fdr825lahyqxpn2av8136-ninja-1.12.1", + "default": true + } + ], + "store_path": "/nix/store/m5d2zsm9252fdr825lahyqxpn2av8136-ninja-1.12.1" + } + } + } + } +} diff --git a/include/.gitkeep b/include/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/.gitkeep b/packages/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/profiles/ubuntu-22.04.clang.debug.ini b/profiles/linux.clang.ini similarity index 56% rename from profiles/ubuntu-22.04.clang.debug.ini rename to profiles/linux.clang.ini index 49c1a8d..7b99c1a 100644 --- a/profiles/ubuntu-22.04.clang.debug.ini +++ b/profiles/linux.clang.ini @@ -1,12 +1,11 @@ [settings] arch=x86_64 -build_type=Debug compiler=clang compiler.cppstd=20 compiler.libcxx=libstdc++11 -compiler.version=16 +compiler.version=18 os=Linux [conf] -tools.build:compiler_executables={'c': 'clang-16', 'cpp': 'clang++-16'} +tools.build:compiler_executables={'c': 'clang-18', 'cpp': 'clang++-18'} tools.build:exelinkflags=["-fuse-ld=lld"] diff --git a/profiles/ubuntu-22.04.gcc.debug.ini b/profiles/linux.gcc.ini similarity index 91% rename from profiles/ubuntu-22.04.gcc.debug.ini rename to profiles/linux.gcc.ini index 24bb0b0..5e2821a 100644 --- a/profiles/ubuntu-22.04.gcc.debug.ini +++ b/profiles/linux.gcc.ini @@ -1,6 +1,5 @@ [settings] arch=x86_64 -build_type=Debug compiler=gcc compiler.cppstd=20 compiler.libcxx=libstdc++11 From 5fe2565d9512f8e343801e0f4ca9f178d84701ea Mon Sep 17 00:00:00 2001 From: Andrew Hu Date: Sat, 16 Nov 2024 14:46:12 -0500 Subject: [PATCH 2/7] add direnv --- .envrc | 9 +++++++++ devbox.json | 3 ++- devbox.lock | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 .envrc diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..2f05af9 --- /dev/null +++ b/.envrc @@ -0,0 +1,9 @@ +#!/bin/bash + +# Automatically sets up your devbox environment whenever you cd into this +# directory via our direnv integration: + +eval "$(devbox generate direnv --print-envrc)" + +# check out https://www.jetpack.io/devbox/docs/ide_configuration/direnv/ +# for more details diff --git a/devbox.json b/devbox.json index dbcc634..08c2c08 100644 --- a/devbox.json +++ b/devbox.json @@ -7,7 +7,8 @@ "ccache@4.10.2", "go-task@3.39.2", "lld@18.1.8", - "ninja@1.12.1" + "ninja@1.12.1", + "direnv@2.35.0" ], "shell": { "init_hook": [ diff --git a/devbox.lock b/devbox.lock index 71e0bce..83b9e4d 100644 --- a/devbox.lock +++ b/devbox.lock @@ -217,6 +217,54 @@ } } }, + "direnv@2.35.0": { + "last_modified": "2024-11-03T14:18:04Z", + "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#direnv", + "source": "devbox-search", + "version": "2.35.0", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/7diqlbq62s6xr8444vjii72ry59j3g4d-direnv-2.35.0", + "default": true + } + ], + "store_path": "/nix/store/7diqlbq62s6xr8444vjii72ry59j3g4d-direnv-2.35.0" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/5ai2khczjzvixwp030la6g84c7b7mhvs-direnv-2.35.0", + "default": true + } + ], + "store_path": "/nix/store/5ai2khczjzvixwp030la6g84c7b7mhvs-direnv-2.35.0" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/bvpj9pvgavx2lha8mp12xj70nxbvb1jw-direnv-2.35.0", + "default": true + } + ], + "store_path": "/nix/store/bvpj9pvgavx2lha8mp12xj70nxbvb1jw-direnv-2.35.0" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/vk7m83mq14whwjbhx0gx3934jz4a8gxk-direnv-2.35.0", + "default": true + } + ], + "store_path": "/nix/store/vk7m83mq14whwjbhx0gx3934jz4a8gxk-direnv-2.35.0" + } + } + }, "go-task@3.39.2": { "last_modified": "2024-11-03T14:18:04Z", "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#go-task", From 231090ccd57eb92c34186ad4691c5add43549e82 Mon Sep 17 00:00:00 2001 From: Andrew Hu Date: Sat, 16 Nov 2024 15:12:27 -0500 Subject: [PATCH 3/7] try llvm --- CMakePresets.json | 2 +- Taskfile.yaml | 12 +++++- cmake/llvm.cmake | 6 +-- conan.lock | 3 +- devbox.json | 3 +- devbox.lock | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 114 insertions(+), 8 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index 4ed3cd9..a386ead 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -4,7 +4,7 @@ "conan": {} }, "include": [ - "/workspace/dao/build/CMakePresets.json" + "build/CMakePresets.json" ], "configurePresets": [ { diff --git a/Taskfile.yaml b/Taskfile.yaml index 3689404..aa10822 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -7,14 +7,22 @@ env: BUILD_COMPILER: "clang" BUILD_TYPE: "Debug" + # TODO (andrew): disambiguate host vs target (a.k.a. conan build) settings + tasks: - lock: conan lock create . + lock: + cmds: + - | + conan lock create . \ + --profile:host="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \ + --profile:build="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" install: cmds: - | conan install . \ - --profile="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \ + --profile:host="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \ + --profile:build="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \ --output-folder="build" \ --build=missing \ --settings=build_type=${BUILD_TYPE} diff --git a/cmake/llvm.cmake b/cmake/llvm.cmake index 5d993f6..4a75d06 100644 --- a/cmake/llvm.cmake +++ b/cmake/llvm.cmake @@ -1,11 +1,11 @@ -find_package(LLVM REQUIRED 16 CONFIG) +find_package(LLVM REQUIRED 19 CONFIG) message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") add_definitions(${LLVM_DEFINITIONS}) execute_process( - COMMAND llvm-config-16 --ldflags + COMMAND llvm-config-19 --ldflags OUTPUT_VARIABLE LLVM_LD_FLAGS ) string(STRIP ${LLVM_LD_FLAGS} LLVM_LD_FLAGS) @@ -13,7 +13,7 @@ message(STATUS "LLVM_LD_FLAGS: ${LLVM_LD_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LLVM_LD_FLAGS}") execute_process( - COMMAND llvm-config-16 --libs core + COMMAND llvm-config-19 --libs core OUTPUT_VARIABLE LLVM_LIBS ) string(STRIP ${LLVM_LIBS} LLVM_LIBS) diff --git a/conan.lock b/conan.lock index fd843a3..d044aec 100644 --- a/conan.lock +++ b/conan.lock @@ -9,5 +9,6 @@ "build_requires": [ "cmake/3.27.7#6e11610a238b9292dffda14c34bb53e6%1696774949.5" ], - "python_requires": [] + "python_requires": [], + "config_requires": [] } \ No newline at end of file diff --git a/devbox.json b/devbox.json index 08c2c08..6c36072 100644 --- a/devbox.json +++ b/devbox.json @@ -8,7 +8,8 @@ "go-task@3.39.2", "lld@18.1.8", "ninja@1.12.1", - "direnv@2.35.0" + "direnv@2.35.0", + "llvm_19@19.1.1" ], "shell": { "init_hook": [ diff --git a/devbox.lock b/devbox.lock index 83b9e4d..2b379c8 100644 --- a/devbox.lock +++ b/devbox.lock @@ -357,6 +357,102 @@ } } }, + "llvm_19@19.1.1": { + "last_modified": "2024-11-03T14:18:04Z", + "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#llvm_19", + "source": "devbox-search", + "version": "19.1.1", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/5a4frddncgc7a1anx3iv2nqm56p9xhnr-llvm-19.1.1", + "default": true + }, + { + "name": "python", + "path": "/nix/store/mh83gks1zd3pgbdx341rddnv4xybm35r-llvm-19.1.1-python" + }, + { + "name": "dev", + "path": "/nix/store/4d57f4saicwhh2gi8lwwc4314n7360j2-llvm-19.1.1-dev" + }, + { + "name": "lib", + "path": "/nix/store/l2i2ipgmjdh6jvjrc0gpk5x2803gd2j0-llvm-19.1.1-lib" + } + ], + "store_path": "/nix/store/5a4frddncgc7a1anx3iv2nqm56p9xhnr-llvm-19.1.1" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/zm9m81ymv74qm5xry2mpyc4mx5c1brpl-llvm-19.1.1", + "default": true + }, + { + "name": "lib", + "path": "/nix/store/794nwyi29zk11zcxha4602cv0x08ia4y-llvm-19.1.1-lib" + }, + { + "name": "python", + "path": "/nix/store/80cal4acby5dl7n3bxspargfdlri7ypg-llvm-19.1.1-python" + }, + { + "name": "dev", + "path": "/nix/store/z23snsybfp2sh7dy4r90v92781craqkh-llvm-19.1.1-dev" + } + ], + "store_path": "/nix/store/zm9m81ymv74qm5xry2mpyc4mx5c1brpl-llvm-19.1.1" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/znch2frhdamc8ll25dp2sv1a8mckzhv8-llvm-19.1.1", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/fxhbwbs21raj3i58a46p7lh34dzrz24f-llvm-19.1.1-dev" + }, + { + "name": "lib", + "path": "/nix/store/3d02b4dffvawrzx6x7n20yv220pcsr7a-llvm-19.1.1-lib" + }, + { + "name": "python", + "path": "/nix/store/v6galjrv44bazk7r7kpqak4n12splj7n-llvm-19.1.1-python" + } + ], + "store_path": "/nix/store/znch2frhdamc8ll25dp2sv1a8mckzhv8-llvm-19.1.1" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/r3vy1ay76m1kdmh8fy8q54jfbhwlfcq5-llvm-19.1.1", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/vaz05bsh6scnqhg2mny3b365rpkyr23k-llvm-19.1.1-dev" + }, + { + "name": "lib", + "path": "/nix/store/86wd5w2yn581yqhgvw0pzzadhj04ga7g-llvm-19.1.1-lib" + }, + { + "name": "python", + "path": "/nix/store/q3852rcyvkc4yn85y8k9hfvyv4pbf86w-llvm-19.1.1-python" + } + ], + "store_path": "/nix/store/r3vy1ay76m1kdmh8fy8q54jfbhwlfcq5-llvm-19.1.1" + } + } + }, "ninja@1.12.1": { "last_modified": "2024-11-03T14:18:04Z", "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#ninja", From 1e8f3ffd54e07e8386b31a152e24829fa0b5d4a1 Mon Sep 17 00:00:00 2001 From: Andrew Hu Date: Sun, 17 Nov 2024 10:12:01 -0500 Subject: [PATCH 4/7] fixes --- Taskfile.yaml | 12 ++--- cmake/llvm.cmake | 9 ++-- devbox.json | 25 ++++++----- devbox.lock | 94 ++++++++++++++++++++++++++++++++-------- profiles/linux.clang.ini | 4 +- 5 files changed, 103 insertions(+), 41 deletions(-) diff --git a/Taskfile.yaml b/Taskfile.yaml index aa10822..3fb5d70 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -13,14 +13,14 @@ tasks: lock: cmds: - | - conan lock create . \ + devbox run conan lock create . \ --profile:host="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \ --profile:build="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" install: cmds: - | - conan install . \ + devbox run conan install . \ --profile:host="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \ --profile:build="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \ --output-folder="build" \ @@ -30,12 +30,12 @@ tasks: generate: aliases: [gen] cmds: - - cmake . --preset default + - devbox run cmake . --preset default - clean: cmake --build --preset default --target clean + clean: devbox run cmake --build --preset default --target clean - build: time cmake --build --preset default + build: time devbox run cmake --build --preset default run: ./build/apps/daoc/daoc - test: ctest --test-dir build --preset default --output-on-failure --verbose + test: devbox run ctest --test-dir build --preset default --output-on-failure --verbose diff --git a/cmake/llvm.cmake b/cmake/llvm.cmake index 4a75d06..6ba9501 100644 --- a/cmake/llvm.cmake +++ b/cmake/llvm.cmake @@ -1,11 +1,14 @@ -find_package(LLVM REQUIRED 19 CONFIG) +set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${DEVBOX_PACKAGES_DIR}") +find_package( + LLVM 19.1 REQUIRED CONFIG +) message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") add_definitions(${LLVM_DEFINITIONS}) execute_process( - COMMAND llvm-config-19 --ldflags + COMMAND llvm-config --ldflags OUTPUT_VARIABLE LLVM_LD_FLAGS ) string(STRIP ${LLVM_LD_FLAGS} LLVM_LD_FLAGS) @@ -13,7 +16,7 @@ message(STATUS "LLVM_LD_FLAGS: ${LLVM_LD_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LLVM_LD_FLAGS}") execute_process( - COMMAND llvm-config-19 --libs core + COMMAND llvm-config --libs core OUTPUT_VARIABLE LLVM_LIBS ) string(STRIP ${LLVM_LIBS} LLVM_LIBS) diff --git a/devbox.json b/devbox.json index 6c36072..a1a7db4 100644 --- a/devbox.json +++ b/devbox.json @@ -1,16 +1,19 @@ { "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.13.6/.schema/devbox.schema.json", - "packages": [ - "clang@18.1.8", - "conan@2.9.1", - "cmake@3.30.4", - "ccache@4.10.2", - "go-task@3.39.2", - "lld@18.1.8", - "ninja@1.12.1", - "direnv@2.35.0", - "llvm_19@19.1.1" - ], + "packages": { + "conan": "2.9.1", + "cmake": "3.30.4", + "ccache": "4.10.2", + "go-task": "3.39.2", + "ninja": "1.12.1", + "direnv": "2.35.0", + "llvm_19": { + "version": "19.1.1", + "outputs": ["dev", "lib"] + }, + "clang_19": "19.1.1", + "lld_19": "19.1.1" + }, "shell": { "init_hook": [ "echo 'Welcome to devbox!' > /dev/null" diff --git a/devbox.lock b/devbox.lock index 2b379c8..145b529 100644 --- a/devbox.lock +++ b/devbox.lock @@ -69,31 +69,51 @@ } } }, - "clang@18.1.8": { + "clang_19@19.1.1": { "last_modified": "2024-11-03T14:18:04Z", - "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#clang", + "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#clang_19", "source": "devbox-search", - "version": "18.1.8", + "version": "19.1.1", "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/vrgflqcbkqy3mzvy5m7hnkhx0j8z7q3i-clang-wrapper-19.1.1", + "default": true + } + ], + "store_path": "/nix/store/vrgflqcbkqy3mzvy5m7hnkhx0j8z7q3i-clang-wrapper-19.1.1" + }, "aarch64-linux": { "outputs": [ { "name": "out", - "path": "/nix/store/0wvjh9f0yamfs8yckkhskazy5sxwc48d-clang-wrapper-18.1.8", + "path": "/nix/store/zq7d2rs3lf901wgk5vkryirbyzf026i0-clang-wrapper-19.1.1", + "default": true + } + ], + "store_path": "/nix/store/zq7d2rs3lf901wgk5vkryirbyzf026i0-clang-wrapper-19.1.1" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/d252l7fm4ixig816yw2aic0nangpqjhz-clang-wrapper-19.1.1", "default": true } ], - "store_path": "/nix/store/0wvjh9f0yamfs8yckkhskazy5sxwc48d-clang-wrapper-18.1.8" + "store_path": "/nix/store/d252l7fm4ixig816yw2aic0nangpqjhz-clang-wrapper-19.1.1" }, "x86_64-linux": { "outputs": [ { "name": "out", - "path": "/nix/store/qajfjv5lnfys2ykm0ggkr4lnnkvgs10r-clang-wrapper-18.1.8", + "path": "/nix/store/6lgr3sr5vnaxpb7yzy2a8l0s9f9hxbv0-clang-wrapper-19.1.1", "default": true } ], - "store_path": "/nix/store/qajfjv5lnfys2ykm0ggkr4lnnkvgs10r-clang-wrapper-18.1.8" + "store_path": "/nix/store/6lgr3sr5vnaxpb7yzy2a8l0s9f9hxbv0-clang-wrapper-19.1.1" } } }, @@ -313,47 +333,83 @@ } } }, - "lld@18.1.8": { - "last_modified": "2024-11-05T18:23:38Z", - "resolved": "github:NixOS/nixpkgs/8c4dc69b9732f6bbe826b5fbb32184987520ff26#lld", + "lld_19@19.1.1": { + "last_modified": "2024-11-03T14:18:04Z", + "resolved": "github:NixOS/nixpkgs/4ae2e647537bcdbb82265469442713d066675275#lld_19", "source": "devbox-search", - "version": "18.1.8", + "version": "19.1.1", "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/nppb3fr4nybafxbfnk2jdr23f87q9qjw-lld-19.1.1", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/d7x741g3pbil7r52n272awdbpd796drg-lld-19.1.1-dev" + }, + { + "name": "lib", + "path": "/nix/store/rralxm1i0ccq6cs7df3qv0gam9y8nn8z-lld-19.1.1-lib" + } + ], + "store_path": "/nix/store/nppb3fr4nybafxbfnk2jdr23f87q9qjw-lld-19.1.1" + }, "aarch64-linux": { "outputs": [ { "name": "out", - "path": "/nix/store/nbd5bw2d7g6sa7n6x6ljgyhmyzz5qr8q-lld-18.1.8", + "path": "/nix/store/z8h3qhmca7d77dkf53il4axkdf0hdbks-lld-19.1.1", + "default": true + }, + { + "name": "lib", + "path": "/nix/store/1h9jy0g95ahh0y75iw29z003isf211a2-lld-19.1.1-lib" + }, + { + "name": "dev", + "path": "/nix/store/ldi3jh1kycjf2x3z99pq7vwznvdpr7fi-lld-19.1.1-dev" + } + ], + "store_path": "/nix/store/z8h3qhmca7d77dkf53il4axkdf0hdbks-lld-19.1.1" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/wakvddblawd13i96m4xkc0z9qv4b7qk9-lld-19.1.1", "default": true }, { "name": "dev", - "path": "/nix/store/0ci9jwkwifw5pmnvpzwimlnzyp2c8phj-lld-18.1.8-dev" + "path": "/nix/store/mpjp2c2vpiqzgj6jz3lkb49xlkw97qk8-lld-19.1.1-dev" }, { "name": "lib", - "path": "/nix/store/pfd256xs2nnkyy9nyjg6hsjdyds1nq9c-lld-18.1.8-lib" + "path": "/nix/store/xgd7x8w5yjfkvlixn6ylzxb1pbnpn6s6-lld-19.1.1-lib" } ], - "store_path": "/nix/store/nbd5bw2d7g6sa7n6x6ljgyhmyzz5qr8q-lld-18.1.8" + "store_path": "/nix/store/wakvddblawd13i96m4xkc0z9qv4b7qk9-lld-19.1.1" }, "x86_64-linux": { "outputs": [ { "name": "out", - "path": "/nix/store/r730vjwyq2wc1qvx5kihb7zj2i3vmsfw-lld-18.1.8", + "path": "/nix/store/d6q26v1r3kb4sfg387n2f85mkzic54f5-lld-19.1.1", "default": true }, { "name": "dev", - "path": "/nix/store/w05crza899krmz1nss5yciv207xf25gd-lld-18.1.8-dev" + "path": "/nix/store/nmhg0m0jf5akmq1iij394qfax1ik9f3i-lld-19.1.1-dev" }, { "name": "lib", - "path": "/nix/store/qdn9phl5hj16bl9bxqn6f9hfvxsl6mcp-lld-18.1.8-lib" + "path": "/nix/store/zabf9wf4kh6cdacqq8a7gwhc7gb05jgb-lld-19.1.1-lib" } ], - "store_path": "/nix/store/r730vjwyq2wc1qvx5kihb7zj2i3vmsfw-lld-18.1.8" + "store_path": "/nix/store/d6q26v1r3kb4sfg387n2f85mkzic54f5-lld-19.1.1" } } }, diff --git a/profiles/linux.clang.ini b/profiles/linux.clang.ini index 7b99c1a..55f5895 100644 --- a/profiles/linux.clang.ini +++ b/profiles/linux.clang.ini @@ -3,9 +3,9 @@ arch=x86_64 compiler=clang compiler.cppstd=20 compiler.libcxx=libstdc++11 -compiler.version=18 +compiler.version=19 os=Linux [conf] -tools.build:compiler_executables={'c': 'clang-18', 'cpp': 'clang++-18'} +tools.build:compiler_executables={'c': 'clang-19', 'cpp': 'clang++-19'} tools.build:exelinkflags=["-fuse-ld=lld"] From f15352d73ae668ffc3c6536f09460678e7a9e37c Mon Sep 17 00:00:00 2001 From: Andrew Hu Date: Sun, 17 Nov 2024 10:14:36 -0500 Subject: [PATCH 5/7] update cxx path --- profiles/linux.clang.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/linux.clang.ini b/profiles/linux.clang.ini index 55f5895..e0712e0 100644 --- a/profiles/linux.clang.ini +++ b/profiles/linux.clang.ini @@ -7,5 +7,5 @@ compiler.version=19 os=Linux [conf] -tools.build:compiler_executables={'c': 'clang-19', 'cpp': 'clang++-19'} +tools.build:compiler_executables={'c': 'clang', 'cpp': 'clang++'} tools.build:exelinkflags=["-fuse-ld=lld"] From 0f09776be24925a7ee9ed8fed8b81bd94f6ba5c9 Mon Sep 17 00:00:00 2001 From: Andrew Hu Date: Sun, 17 Nov 2024 10:36:07 -0500 Subject: [PATCH 6/7] adjust --- CMakeLists.txt | 2 ++ Taskfile.yaml | 9 +++++++-- cmake/llvm.cmake | 1 - profiles/linux.clang.ini | 1 - 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b4b3100..9527ae8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,7 @@ set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_COMPILER_LAUNCHER "ccache") +set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${DEVBOX_PACKAGES_DIR}") include(cmake/llvm.cmake) @@ -20,6 +21,7 @@ include_directories(${CMAKE_INCLUDE_PATH} ) link_directories(${CMAKE_LIBRARY_PATH}) link_libraries(${LLVM_LIBS}) +#link_libraries(${LLVM_LIBS} stdc++fs) add_subdirectory(packages/compiler) add_subdirectory(apps/daoc) diff --git a/Taskfile.yaml b/Taskfile.yaml index 3fb5d70..2b2bd8c 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -11,6 +11,7 @@ env: tasks: lock: + aliases: [l] cmds: - | devbox run conan lock create . \ @@ -18,6 +19,7 @@ tasks: --profile:build="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" install: + aliases: [i] cmds: - | devbox run conan install . \ @@ -28,13 +30,16 @@ tasks: --settings=build_type=${BUILD_TYPE} generate: - aliases: [gen] + aliases: [g, gen] cmds: - devbox run cmake . --preset default clean: devbox run cmake --build --preset default --target clean - build: time devbox run cmake --build --preset default + build: + aliases: [b] + cmds: + - time devbox run cmake --build --preset default run: ./build/apps/daoc/daoc diff --git a/cmake/llvm.cmake b/cmake/llvm.cmake index 6ba9501..29d725e 100644 --- a/cmake/llvm.cmake +++ b/cmake/llvm.cmake @@ -1,4 +1,3 @@ -set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${DEVBOX_PACKAGES_DIR}") find_package( LLVM 19.1 REQUIRED CONFIG ) diff --git a/profiles/linux.clang.ini b/profiles/linux.clang.ini index e0712e0..a2bfc00 100644 --- a/profiles/linux.clang.ini +++ b/profiles/linux.clang.ini @@ -2,7 +2,6 @@ arch=x86_64 compiler=clang compiler.cppstd=20 -compiler.libcxx=libstdc++11 compiler.version=19 os=Linux From 4f48c32341407f5e663f217dd849c53853bb7118 Mon Sep 17 00:00:00 2001 From: Andrew Hu Date: Sun, 17 Nov 2024 10:41:42 -0500 Subject: [PATCH 7/7] pain --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9527ae8..9a427da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,11 +8,14 @@ enable_testing() set(GLOBAL PROPERTY CTEST_TARGETS_ADDED 1) set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED) +set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_COMPILER_LAUNCHER "ccache") +set(CMAKE_CXX_SCAN_FOR_MODULES ON) set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${DEVBOX_PACKAGES_DIR}") +find_library(STDCPP_LIB stdlibc++11 REQUIRED) + include(cmake/llvm.cmake) include_directories(${CMAKE_INCLUDE_PATH}