Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 0 additions & 59 deletions .devcontainer/Dockerfile

This file was deleted.

18 changes: 0 additions & 18 deletions .devcontainer/devcontainer.json

This file was deleted.

16 changes: 0 additions & 16 deletions .devcontainer/docker-compose.dev.yaml

This file was deleted.

9 changes: 9 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -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
9 changes: 7 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.27.6)
cmake_minimum_required(VERSION 3.30.4)
project(dao
LANGUAGES C CXX
)
Expand All @@ -8,9 +8,13 @@ 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)

Expand All @@ -20,6 +24,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)
2 changes: 1 addition & 1 deletion CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"conan": {}
},
"include": [
"/workspace/dao/build/CMakePresets.json"
"build/CMakePresets.json"
],
"configurePresets": [
{
Expand Down
36 changes: 25 additions & 11 deletions Taskfile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,44 @@ 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"

# TODO (andrew): disambiguate host vs target (a.k.a. conan build) settings

tasks:
lock: conan lock create .
lock:
aliases: [l]
cmds:
- |
devbox run conan lock create . \
--profile:host="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \
--profile:build="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini"

install:
aliases: [i]
cmds:
- |
conan install . \
--profile="profiles/${BUILD_OS}.${BUILD_COMPILER}.${BUILD_TYPE}.ini" \
devbox run conan install . \
--profile:host="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \
--profile:build="profiles/${BUILD_OS}.${BUILD_COMPILER}.ini" \
--output-folder="build" \
--build=missing
--build=missing \
--settings=build_type=${BUILD_TYPE}

generate:
aliases: [gen]
aliases: [g, 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:
aliases: [b]
cmds:
- 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
8 changes: 5 additions & 3 deletions cmake/llvm.cmake
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
find_package(LLVM REQUIRED 16 CONFIG)
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-16 --ldflags
COMMAND llvm-config --ldflags
OUTPUT_VARIABLE LLVM_LD_FLAGS
)
string(STRIP ${LLVM_LD_FLAGS} LLVM_LD_FLAGS)
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 --libs core
OUTPUT_VARIABLE LLVM_LIBS
)
string(STRIP ${LLVM_LIBS} LLVM_LIBS)
Expand Down
3 changes: 2 additions & 1 deletion conan.lock
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
"build_requires": [
"cmake/3.27.7#6e11610a238b9292dffda14c34bb53e6%1696774949.5"
],
"python_requires": []
"python_requires": [],
"config_requires": []
}
27 changes: 27 additions & 0 deletions devbox.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.13.6/.schema/devbox.schema.json",
"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"
],
"scripts": {
"test": [
"echo \"Error: no test specified\" && exit 1"
]
}
}
}
Loading