File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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)
Original file line number Diff line number Diff line change 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 = {
You can’t perform that action at this time.
0 commit comments