Skip to content

Commit 8a1a592

Browse files
test
1 parent 936c93d commit 8a1a592

2 files changed

Lines changed: 41 additions & 14 deletions

File tree

CMakeLists.txt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
cmake_minimum_required(VERSION 3.12)
2+
project(banana-clang)
3+
4+
set(CMAKE_C_COMPILER clang)
5+
set(CMAKE_CXX_COMPILER clang++)
6+
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
7+
8+
set(CMAKE_CXX_STANDARD 23)
9+
set(CMAKE_CXX_EXTENSIONS OFF)
10+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
11+
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
12+
set(CMAKE_VISIBILITY_INLINES_HIDDEN YES)
13+
14+
find_package(LLVM REQUIRED CONFIG)
15+
find_package(Clang REQUIRED CONFIG)
16+
17+
include_directories("include")
18+
include_directories(SYSTEM ${LLVM_INCLUDE_DIRS})
19+
add_definitions(${LLVM_DEFINITIONS})
20+
21+
file(GLOB_RECURSE SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
22+
file(GLOB_RECURSE HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp")
23+
24+
add_library(banana_clang SHARED ${SOURCE_FILES} ${HEADER_FILES})
25+
target_link_libraries(banana_clang PRIVATE ${llvm_libs})
26+
add_compile_options(-std=c++23 -Wall -Wextra -Wno-unused-command-line-argument -Wno-unused-parameter -Werror)
27+
28+
29+
install(TARGETS banana_clang DESTINATION lib)
30+
install(DIRECTORY include/ DESTINATION include)

banana-plugin.nix

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,29 @@
11
{
22
lib,
3-
clangStdenv,
4-
clang_20,
3+
llvmPackages_20,
54
ruleset-v4,
65
cmake,
7-
llvmPackages_20,
86
}:
9-
clangStdenv.mkDerivation {
7+
llvmPackages_20.stdenv.mkDerivation {
108
pname = "banana-plugin";
119
version = "4.0-unstable-2025-09-24";
1210

1311
src = ruleset-v4;
1412

1513
nativeBuildInputs = [ cmake ];
1614

17-
buildInputs = [
18-
clang_20
19-
llvmPackages_20.libclang
20-
llvmPackages_20.libllvm
15+
buildInputs = with llvmPackages_20; [
16+
libclang
17+
libllvm
2118
];
2219

23-
postPatch = ''
24-
substituteInPlace CMakeLists.txt \
25-
--replace-fail 'clang-20' '${lib.getExe' clang_20 "clang"}' \
26-
--replace-fail 'clang++-20' '${lib.getExe' clang_20 "clang++"}'
20+
cmakeFlags = [
21+
"-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
22+
];
2723

28-
echo "install(TARGETS banana_clang DESTINATION lib)" | tee -a CMakeLists.txt
29-
echo "install(DIRECTORY include/ DESTINATION include)" | tee -a CMakeLists.txt
24+
preConfigure = ''
25+
# The provided CMakeLists.txt is quite bad...
26+
cp ${./CMakeLists.txt} CMakeLists.txt
3027
'';
3128

3229
meta = {

0 commit comments

Comments
 (0)