Set of examples how to use CLion with various unsupported compilers using Custom Defined Compiler feature

Overview

About

This repository contains:

Disclaimer

All the repository content is provided on an "AS IS" basis, without warranties or conditions of any kind.

Please note that JetBrains does not provide the described compilers or required licenses. The use of third-party compilers in CLion is subject to the licensing policies of their vendors, while config files are open source. All trademarks, logos and brand names are the property of their respective owners. All company, product and service names used in this repository are for identification purposes only. Use of these names,trademarks and brands does not imply endorsement.

Supported variants so far

Comments
  • OpenWatcom 32-bit Windows target

    OpenWatcom 32-bit Windows target

    
    compilers:
    
        - description: OpenWatcom 32-bit Windows target
          match-args: "-bt=nt"
          match-compiler-exe: "(.*/)?wcc386(\\.exe)?"
          include-dirs: "${compiler-exe-dir}/../h ${compiler-exe-dir}../h/nt"
          defines-text: "
    #define __X86__ 1
    #define __386__ 1
    #define M_I386 1
    #define _M_I386 1
    #define _M_IX86 500
    #define __NT__ 1
    #define __WINDOWS_386__ 1
    #define __FLAT__ 1
    #define M_386FM 1
    #define _M_386FM 1
    #define __WATCOMC__ 1280
    #define _INTEGRAL_MAX_BITS 64"
    
    opened by claunia 9
  • OpenWatcom DOS target

    OpenWatcom DOS target

    compilers:
    
        - description: OpenWatcom DOS target
          match-args: "-bt=dos"
          match-compiler-exe: "(.*/)?wcc(\\.exe)?"
          include-dirs: "${compiler-exe-dir}/../H"
          defines-text: "
    #define __X86__ 1
    #define __I86__
    #define M_I86
    #define _M_I86
    #define _M_IX86 0
    #define __DOS__
    #define _DOS
    #define MSDOS
    #define __LARGE__
    #define M_I86LM
    #define _M_I86LM
    #define __WATCOMC__ 1280
    #define _INTEGRAL_MAX_BITS=64"
    

    Output:

    C:\Users\claunia\AppData\Local\JetBrains\Toolbox\apps\CLion\ch-1\213.4928.11\bin\cmake\win\bin\cmake.exe -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=C:/WATCOM/binnt64/nmake.exe -DCMAKE_C_COMPILER=C:/WATCOM/binnt64/wcc.exe -DCMAKE_CXX_COMPILER=C:/WATCOM/binnt64/wcc.exe -G "Unix Makefiles" -DCMAKE_SYSTEM_NAME=DOS C:\Users\claunia\Development\Aaru\fstester\setter
    CMake Deprecation Warning at CMakeLists.txt:25 (cmake_minimum_required):
      Compatibility with CMake < 2.8.12 will be removed from a future version of
      CMake.
    
      Update the VERSION argument <min> value or use a ...<max> suffix to tell
      CMake that the project does not need compatibility with older versions.
    
    
    Detected system name: DOS
    Detected system processor: 
    -- Configuring done
    -- Generating done
    -- Build files have been written to: C:/Users/claunia/Development/Aaru/fstester/setter/cmake-build-release-system
    
    [Finished]
    

    As a first try.

    opened by claunia 7
  • OpenWatcom 32-bit OS/2 target

    OpenWatcom 32-bit OS/2 target

    
    compilers:
    
        - description: OpenWatcom 32-bit OS/2 target
          match-args: "-bt=os2"
          match-compiler-exe: "(.*/)?wcc386(\\.exe)?"
          include-dirs: "${compiler-exe-dir}/../h ${compiler-exe-dir}../h/os2"
          defines-text: "
    #define __X86__ 1
    #define __386__ 1
    #define M_I386 1
    #define _M_I386 1
    #define _M_IX86 500
    #define __OS2__ 1
    #define __FLAT__ 1
    #define M_386FM 1
    #define _M_386FM 1
    #define __WATCOMC__ 1280
    #define _INTEGRAL_MAX_BITS 64"
    
    opened by claunia 1
  • OpenWatcom 16-bit OS/2 target

    OpenWatcom 16-bit OS/2 target

    
    compilers:
    
        - description: OpenWatcom 16-bit OS/2 target
          match-args: "-bt=os2"
          match-compiler-exe: "(.*/)?wcc(\\.exe)?"
          include-dirs: "${compiler-exe-dir}/../h ${compiler-exe-dir}../h/os21x"
          defines-text: "
    #define __X86__ 1
    #define __I86__ 1
    #define M_I86 1
    #define _M_I86 1
    #define _M_IX86 0
    #define __OS2__ 1
    #define __LARGE__ 1
    #define M_I86LM 1
    #define _M_I86LM 1
    #define __WATCOMC__ 1280
    #define _INTEGRAL_MAX_BITS 64"
    
    opened by claunia 1
  • OpenWatcom NetWare target

    OpenWatcom NetWare target

    
    compilers:
    
        - description: OpenWatcom NetWare target
          match-args: "-bt=netware"
          match-compiler-exe: "(.*/)?wcc386(\\.exe)?"
          include-dirs: "${compiler-exe-dir}/../novh"
          defines-text: "
    #define __X86__ 1
    #define __386__ 1
    #define M_I386 1
    #define _M_I386 1
    #define _M_IX86 500 1
    #define __NETWARE__ 1
    #define __NETWARE_386__ 1
    #define __FLAT__ 1
    #define M_386FM 1
    #define _M_386FM 1
    #define __WATCOMC__ 1280
    #define _INTEGRAL_MAX_BITS 64"
    
    opened by claunia 1
  • ARMCC: Fixed missing parentheses in match-compiler-exe regexp.

    ARMCC: Fixed missing parentheses in match-compiler-exe regexp.

    Thank you for this welcome new feature.

    This pull request aims to fix the regexp used in "custom-compiler-armcc.yaml" with the following effect: ARMCC can now be detected on Linux systems as well as Windows.

    Best regards

    opened by hpfaz 0
Rule Engine (RE) creates an interpretable anomaly classifier from many one-feature and two-feature decision rules

Rule Engine (RE) creates an interpretable anomaly classifier from many one-feature and two-feature decision rules

James Thomas 15 Aug 15, 2022
collection of C/C++ programs that try to get compilers to exploit undefined behavior

------------------------------------------------------------------------------- UB Canaries: A collection of C/C++ programs that detect undefined beh

John Regehr 161 Nov 22, 2022
Comprehensive Hashing Library for C++ Compilers.

HashLib4CPP HashLib4CPP is a C++11 library that provides an easy to use interface for computing hashes and checksums of strings, files, streams, bytea

Telepati 24 Jan 2, 2022
Shader Playground is a website for exploring shader compilers.

Shader Playground is a website for exploring shader compilers. Visit website Supported backends Compilers ANGLE Clspv DXC FXC Glslan

Tim Jones 445 Dec 30, 2022
GraphicsFuzz provides tools for automatically finding and simplifying bugs in graphics drivers, specifically graphics shader compilers.

GraphicsFuzz GraphicsFuzz is a set of tools for testing shader compilers GraphicsFuzz provides tools for automatically finding and simplifying bugs in

Google 516 Dec 15, 2022
`lv_lib_100ask` is a reference for various out of the box schemes based on lvgl library or an enhanced interface for various components of lvgl library.

Introduction lv_lib_100ask is a reference for various out of the box schemes based on lvgl library or an enhanced interface for various components of

100askTeam 34 Dec 15, 2022
Samir Teymurov 1 Oct 6, 2021
ToPS is an objected-oriented framework implemented using C++ that facilitates the integration of probabilistic models for sequences over a user defined alphabet

ToPS is an objected-oriented framework implemented using C++ that facilitates the integration of probabilistic models for sequences over a user defined alphabet

Andre Yoshiaki Kashiwabara 34 Aug 2, 2022
oZKS (Ordered Zero-Knowledge Set) is a library that provides an implementation of an Ordered (and Append Only) Zero-Knowledge Set.

Ordered Zero-Knowledge Set - oZKS Introduction oZKS is a library that provides an implementation of an Ordered (and Append Only) Zero Knowledge Set. A

Microsoft 11 Dec 20, 2022
6D - Pose Annotation Tool (6D-PAT) - is a tool that allows the user to load a set of images and also a set of 3D models and annotate where in the 2D image the 3D object ist placed.

6D - Pose Annotation Tool (6D-PAT) For detiled explanations checkout the WikiPage. What is it? With 6D-PAT you can create 6D annotations on images for

Florian Blume 71 Nov 20, 2022
Cobalt Strike User-Defined Reflective Loader written in Assembly & C for advanced evasion capabilities.

Cobalt Strike User-Defined Reflective Loader Cobalt Strike User-Defined Reflective Loader written in Assembly & C for advanced evasion capabilities. B

Bobby Cooke 835 Jan 3, 2023
WTD is a python tool for replacing values with the C preprocessor macro which defined them.

Where's That Define WTD is a python tool for replacing values with the C preprocessor macro which defined them. An example of this is when trying to u

Caleb Connolly 5 Mar 28, 2022
A well-defined system API for abstracting the OS platform

xsys xsys is an effort to implement a thin and well-defined system API for enabling the development of programs that are portable; platform agnostic.

Rasmus 67 Oct 20, 2022
My_Shell is a user-defined interactive shell written in C that works similar to the original shell in linux

MY_SHELL Overview My_Shell is a user-defined interactive shell written in C that works similar to the original shell and it can execeute many of the l

Greeshma 1 Nov 22, 2021
BokuLoader - Cobalt Strike User-Defined Reflective Loader written in Assembly & C for advanced evasion capabilities.

BokuLoader - Cobalt Strike Reflective Loader Cobalt Strike User-Defined Reflective Loader written in Assembly & C for advanced evasion capabilities. B

Bobby Cooke 833 Dec 31, 2022
Lib 2d - A c++ library for paths defined by points within the 2d space

#lib_2d A c++ library for anything related to points within the 2d space (using floating point data types) using Catch as testing framework https://gi

Martin Buck 46 Dec 16, 2021
std::tuple like methods for user defined types without any macro or boilerplate code

Boost.PFR This is a C++14 library for very basic reflection that gives you access to structure elements by index and provides other std::tuple like me

Boost.org 1.1k Dec 23, 2022
Haptic input knob with software-defined endstops and virtual detents

SmartKnob SmartKnob is an open-source input device with software-configurable endstops and virtual detents. A brushless gimbal motor is paired with a

Scott Bezek 12.2k Dec 29, 2022