All Projects → AlexDenisov → Toyclangplugin

AlexDenisov / Toyclangplugin

Licence: mit
Playing with Clang plugin system

Labels

Projects that are alternatives of or similar to Toyclangplugin

Bazel Toolchain
LLVM toolchain for bazel
Stars: ✭ 93 (-36.3%)
Mutual labels:  clang
Vector
➿ A supercharged std::vector implementation (minus Allocator)
Stars: ✭ 118 (-19.18%)
Mutual labels:  clang
Gllvm
Whole Program LLVM: wllvm ported to go
Stars: ✭ 126 (-13.7%)
Mutual labels:  clang
Termux Ndk
android-ndk for termux
Stars: ✭ 91 (-37.67%)
Mutual labels:  clang
Moderncppci
This is an example of doing a Modern C++ project with CI
Stars: ✭ 109 (-25.34%)
Mutual labels:  clang
Clang Format Hooks
Apply a coding style with clang-format only to new code added to an existing code base.
Stars: ✭ 122 (-16.44%)
Mutual labels:  clang
Ip2region
Ip2region is a offline IP location library with accuracy rate of 99.9% and 0.0x millseconds searching performance. DB file is ONLY a few megabytes with all IP address stored. binding for Java,PHP,C,Python,Nodejs,Golang,C#,lua. Binary,B-tree,Memory searching algorithm
Stars: ✭ 9,836 (+6636.99%)
Mutual labels:  clang
Cppcoro
A library of C++ coroutine abstractions for the coroutines TS
Stars: ✭ 2,118 (+1350.68%)
Mutual labels:  clang
Hmap
hmap is a command line tool written in Swift to work with Clang header maps produced by Xcode.
Stars: ✭ 110 (-24.66%)
Mutual labels:  clang
Proton Clang
Proton Clang toolchains builds in the form of a continuously updating Git repository. Clone with --depth=1.
Stars: ✭ 126 (-13.7%)
Mutual labels:  clang
Tre
LLVM backed progamming language (Go subset)
Stars: ✭ 100 (-31.51%)
Mutual labels:  clang
Cmakepchcompiler
CMake precompiled header support via custom PCH compiler extension
Stars: ✭ 105 (-28.08%)
Mutual labels:  clang
Llvm Utils
LLVM/Clang for Visual Studio 2019, 2017, 2015, 2013, 2012 and 2010. clang-cl for Python3 distutils. Utils for Clang Static Analyzer
Stars: ✭ 123 (-15.75%)
Mutual labels:  clang
Violations Lib
Java library for parsing report files from static code analysis.
Stars: ✭ 94 (-35.62%)
Mutual labels:  clang
Embedded Ide
IDE for C embedded development centered on bare-metal ARM systems
Stars: ✭ 127 (-13.01%)
Mutual labels:  clang
Yavide
Modern C/C++ integrated development environment
Stars: ✭ 1,306 (+794.52%)
Mutual labels:  clang
Bsodsurvivor
This project aims to facilitate debugging a kernel driver in windows by adding support for a code change on the fly without reboot/unload, and more!
Stars: ✭ 122 (-16.44%)
Mutual labels:  clang
Clang Llvm Tutorial
clang & llvm examples, e.g. AST Interpreter, Function Pointer Analysis, Value Range Analysis, Data-Flow Analysis, Andersen Pointer Analysis, LLVM Backend...
Stars: ✭ 139 (-4.79%)
Mutual labels:  clang
Compilescore
Visual Studio extension and standalone app for build times and compilation data visualization.
Stars: ✭ 135 (-7.53%)
Mutual labels:  clang
Metareflect
Metareflect is a lightweight reflection system for C++, based on LLVM and Clangs libtooling.
Stars: ✭ 125 (-14.38%)
Mutual labels:  clang

ToyClangPlugin

Simple clang plugin. More details here

This plugin shows you a warning in case of class' name starts with lowercse letter and shows an error in case when class' name contains underscore (_).

As a bonus it proposes you a FixIt hints

Warning FixItHint Error FixItHint

Installation

Build llvm/clang from sources

cd /opt
sudo mkdir llvm
sudo chown `whoami` llvm
cd llvm
export LLVM_HOME=`pwd`

git clone -b release_33 https://github.com/llvm-mirror/llvm.git llvm
git clone -b release_33 https://github.com/llvm-mirror/clang.git llvm/tools/clang
git clone -b release_33 https://github.com/llvm-mirror/clang-tools-extra.git llvm/tools/clang/tools/extra
git clone -b release_33 https://github.com/llvm-mirror/compiler-rt.git llvm/projects/compiler-rt

mkdir llvm_build
cd llvm_build
cmake ../llvm -DCMAKE_BUILD_TYPE:STRING=Release
make -j`sysctl -n hw.logicalcpu`

Get the plugin copy

cd $LLVM_HOME
git clone https://github.com/AlexDenisov/ToyClangPlugin.git
cd ToyClangPlugin

Build the plugin

mkdir build; cd build
cmake -G Xcode ..
open ToyClangPlugin.xcodeproj

Download this archive, unzip and run following commands

sudo mv HackedClang.xcplugin `xcode-select -print-path`/../PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins
sudo mv HackedBuildSystem.xcspec `xcode-select -print-path`/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications

Open your project and pudate build settings:

  1. Select custom compiler

Custom compiler

  1. Disable modules

Disable modules

  1. Add OTHER_CFLAGS
-Xclang -load -Xclang /opt/llvm/toy_clang_plugin/build/lib/Debug/ToyClangPlugin.dylib -Xclang -add-plugin -Xclang ToyClangPlugin

Other C flags

That's it. Build and run you project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].