- JETBRAINS - LICENSE SERVER. GitHub Gist: instantly share code, notes, and snippets.
- For more information on adding a license to a repository, see 'Adding a license to a repository.' The goal of GitHub's open source licensing efforts is to provide a starting point to help you make an informed choice. GitHub displays license information to help users get information about open source licenses and the projects that.
- If your GitHub Enterprise Server license expires, you won't be able to access your GitHub Enterprise Server instance via a web browser or Git. If needed, you will be able to use command-line utilities to back up all your data. For more information, see 'Configuring backups on your appliance.'
CLion and Arduino via Platform.IO. Here's my quick guide to set up CLion to work with the Arduino (and others) platforms. Once you get the gist (pun) of it, you should be fine! Get Platform.IO. Follow the instructions here. Create a new project # Create new folder YourProject mkdir YourProject platformio init -b uno -d YourProject.
This post explains how to setup a development environment for C and C++ projectsusing Clang as compiler, CMake as build system, CLion as IDE and Conanas package manager. The name 4 Cs is cool, but not my idea, it has beencoined by well known C++ blogger Arne Metz, authorof the great Simplify C++ blog
Though Clang has some support in Windows, its usage there is still low compared with MSVC,and Apple-Clang is the default on OSX, so it has not special difficulties. This postwill use Ubuntu 14.04. As example, we will develop a simple application using thewell known POCO and Boost libraries.
Setting up Clang C/C++ compiler
The default compiler in Ubuntu is GNU/gcc, so we have to install first Clang:
Installed this way, clang will not add itself to the path. It is true thatsetting environment variables CC and CXX is enough for most use cases. Butfor others, as building boost, it is much simpler if clang is in the path,otherwise editing .bjam files might be necessary. Currently, the conan package for boost,does not do that, so it requires clang to be in the path. Lets add a couple of links(most likely we can also use other ways as update-alternatives):
Setting up latest CMake (meta) build system
The default CMake version bundled with Ubuntu 14 is still 2.8.12, which is really old.CMake current version is 3.5 at the time of this writing, so lets install it. Go toCMake downloads and get it. In this case, the tar.gzwas retrieved and installed, prepending the bin
subfolder to the path, so it getshigher priority. I did this way because I have to keep CMake 2.8.12 as default, butit is easy to add it permanently to the path.
We will be using CMake 'Unix Makefiles' generators. Though it is possible to passthe compilers to CMake in the command line, I find it error prone, so I usuallyprefer to set the CC and CXX environment variables:
This is also convenient for later CLion usage with this compiler.
Setting up Conan C/C++ package manager
To install conan in your computer, the easiest way is with Python package:
You might need to use sudo if you are installing it globally, not necessaryif using a virtualenv.
Set up the project
Inside the folder there is a simple conanfile.txt
defining our dependencies:
Let's install the dependencies. We will use a temporary folder called .conan
(you can use any name), as the CLion editor uses an external build folder. Usinga known and close folder for conan temporary files allows easy management of dependencies:
Note the final --build=missing
. Most packages in conan provide binaries for the mainstream compilers,MSVC in Win, GNU/gcc in Linux and Apple-Clang in OSX. So, it is expected that pre-compiled binariesfor CLang in Linux will not be available, so we have to tell conan to build them from sources.Go and grab a coffee, it will build Poco, Boost and some other libs!
This install step will generate 2 files: conanbuildinfo.cmake
with some CMake variablesdefined inside, as include paths and library names and conaninfo.txt
which stores your currentconfiguration. You can use in parallel many configurations if you want, just place each one in aseparate folder.
You can check the installed dependencies with:
Developing with CLion
CLion is a cross-platform C/C++ IDE from JetBrains.Let's build our application with CLion. As we already have defined CC and CXX environment variables, launching CLion inour terminal will automatically use CLang as default compiler.
If you go to File->Settings, you could see the compiler is Clang:
It is possible too to use the CMake variables -D CMAKE_C_COMPILER=clang-3.6 -D CMAKE_CXX_COMPILER=clang++-3.6
defined in the CLion IDE, to define the compiler. Note that typically a CMake cache clean&restart might be necessary.Now, it is possible to do such clean&restart without restarting the IDE in Menu->Tools->CMake->Reset Cache and Reload Project(the other option is Menu->File->InvalidateCache&Restart, but as it restarts the IDE, it is slower). The clang compiler will be used in your builds, but it will not show as default in the Settings dialog.
From CLion CMakeLists.txt project file, we can load the generated conanbuildinfo.cmake
.
CLion will be able to autocomplete from both Poco and Boost headers:
This is also convenient for later CLion usage with this compiler.
Setting up Conan C/C++ package manager
To install conan in your computer, the easiest way is with Python package:
You might need to use sudo if you are installing it globally, not necessaryif using a virtualenv.
Set up the project
Inside the folder there is a simple conanfile.txt
defining our dependencies:
Let's install the dependencies. We will use a temporary folder called .conan
(you can use any name), as the CLion editor uses an external build folder. Usinga known and close folder for conan temporary files allows easy management of dependencies:
Note the final --build=missing
. Most packages in conan provide binaries for the mainstream compilers,MSVC in Win, GNU/gcc in Linux and Apple-Clang in OSX. So, it is expected that pre-compiled binariesfor CLang in Linux will not be available, so we have to tell conan to build them from sources.Go and grab a coffee, it will build Poco, Boost and some other libs!
This install step will generate 2 files: conanbuildinfo.cmake
with some CMake variablesdefined inside, as include paths and library names and conaninfo.txt
which stores your currentconfiguration. You can use in parallel many configurations if you want, just place each one in aseparate folder.
You can check the installed dependencies with:
Developing with CLion
CLion is a cross-platform C/C++ IDE from JetBrains.Let's build our application with CLion. As we already have defined CC and CXX environment variables, launching CLion inour terminal will automatically use CLang as default compiler.
If you go to File->Settings, you could see the compiler is Clang:
It is possible too to use the CMake variables -D CMAKE_C_COMPILER=clang-3.6 -D CMAKE_CXX_COMPILER=clang++-3.6
defined in the CLion IDE, to define the compiler. Note that typically a CMake cache clean&restart might be necessary.Now, it is possible to do such clean&restart without restarting the IDE in Menu->Tools->CMake->Reset Cache and Reload Project(the other option is Menu->File->InvalidateCache&Restart, but as it restarts the IDE, it is slower). The clang compiler will be used in your builds, but it will not show as default in the Settings dialog.
From CLion CMakeLists.txt project file, we can load the generated conanbuildinfo.cmake
.
CLion will be able to autocomplete from both Poco and Boost headers:
That is all! You can now select in CLion the 'timer' target, build it, and run it!
Conclusions
Setting up a development environment for C++ with these 4 tools is not complicated.Basically make sure that CLang is in the path, and that CMake is using it (throughthe environment variables CC and CXX) instead of the sytem GNU/gcc compiler.
Also I found more intuitive to launch CLion with those variable defined, so it detectsthe CLang compiler and shows it in the Settings dialog. It is possible to use cmake command lineparameters -DCMAKE_C_COMPILER=clang-3.6 -DCMAKE_CXX_COMPILER=clang++-3.6
in the same CLionSettings dialog, but a CMake cache restart is typically necessary, as CMake cache onlystores the compiler the first invocation (which is automatically done by CLion, before able to setthe command line parameters).
Conan packages (Poco, Boost and their dependencies: Zlib, electric-fence…) have built finewith Clang, but it is also possible that some other conan packages have not been thoroughlytested yet with CLang, and they might eventually fail to build. Please contribute in thatcase, submitting an issue to the package repository.
Check out a project (clone)
You can clone a repository that you want to contribute to directly from CLion and create a new project based on it.
From the main menu, choose Git | Clone.
In the Get from Version Control dialog, choose GitHub on the left.
Specify the URL of the repository that you want to clone. You can select a repository from the list of all GitHub projects associated with your account and the organization that your account belongs to.
In the Directory field, enter the path to the folder where your local Git repository will be created.
Click Clone. If you want to create a project based on these sources, click Yes in the confirmation dialog. CLion will automatically set Git root mapping to the project root directory.
Clion License Key
Share a project on GitHub
You can add a remote GitHub repository for a project you are developing locally, so that others can view it or contribute to it.
Clion License Server Github Bot
Open the project you want to share.
- From the main menu, choose Git | GitHub | Share Project on GitHub.
If you have already registered your GitHub account in CLion, connection will be established using these credentials.
If you have not registered your account in CLion, the Login to GitHub dialog opens. Specify your access token or request a new one with your login and password.
- When connection to GitHub has been established, the Share Project on GitHub dialog opens. Specify the new repository name, the name of the remote , and enter a description of your project.
You can select the Private option if you do not want to allow public access to your repository for other GitHub users.
Click Share to initiate a new repository and upload project sources to it.
Jump to the GitHub version of a file
You can jump from CLion to the GitHub version of a file. CLion detects which branch is currently active as well as the latest revision of the file, and opens the GitHub copy of the selected file in the corresponding commit in your web browser. If you are opening the GitHub file version from the editor, the file will be also automatically scrolled to the current line.
- Select a file in the editor or in the Project view, and choose Open on GitHub from the context menu or from the Ctrl+Shift+A popup. The remote version of the file will open in the browser.
If the file points to more than one remote, you will be prompted to select the appropriate repository.