2015-11-18 17:33:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								..  Copyright 2014-2015 Ivan Kravets <me@ikravets.com> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Licensed under the Apache License, Version 2.0 (the "License");
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    you may not use this file except in compliance with the License.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    You may obtain a copy of the License at
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       http://www.apache.org/licenses/LICENSE-2.0
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Unless required by applicable law or agreed to in writing, software
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    distributed under the License is distributed on an "AS IS" BASIS,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    See the License for the specific language governing permissions and
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    limitations under the License.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-07-15 19:34:10 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								..  _ide_clion: 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CLion
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								=====
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								The `CLion  <https://www.jetbrains.com/clion/> `_  is a cross-platform C/C++ IDE
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								for Linux, OS X, and Windows integrated with the CMake build system. The
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								initial version will support the GCC and Clang compilers and GDB debugger.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Clion includes such features as a smart editor, code quality assurance,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								automated refactorings, project manager, integrated version control systems.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								This software can be used with:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  all available :ref: `platforms` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  all available :ref: `frameworks` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Refer to the `CDT Documentation  <https://www.jetbrains.com/clion/documentation/> `_ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								page for more detailed information.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								..  contents :: 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Integration
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-----------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Project Generator
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								^^^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Since PlatformIO 2.0 you can generate CLion compatible project using
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:option: `platformio init --ide`  command. Please choose board type using
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:ref: `cmd_boards`  command and run:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								..  code-block ::  shell
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    platformio init --ide clion --board %TYPE%
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-05 20:50:30 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Then:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								1.  Import this project via `` Menu: File > Import Project `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   and specify root directory where is located :ref: `projectconf` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								2.  Open source file from `` src ``  directory (`` *.c, *.cpp, *.ino, etc. `` )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								3.  Build project: `` Menu: Run > Build `` .
 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-15 19:34:10 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-04 19:31:59 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								There are 3 predefined targets for building:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  `` PLATFORMIO_BUILD ``  - build project without auto-uploading
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  `` PLATFORMIO_UPLOAD ``  - build and upload (if no errors)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  `` PLATFORMIO_CLEAN ``  - clean compiled objects and etc.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-03 17:49:26 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								..  warning :: 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    The libraries which are added, installed or used in the project
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    after generating process wont be reflected in IDE. To fix it you
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    need to reinitialize project using :ref: `cmd_init`  (repeat it).
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-07-15 19:34:10 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								..  warning :: 
 
							 
						 
					
						
							
								
									
										
										
										
											2015-10-13 14:01:16 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    PlatformIO generates empty project by default and **code auto-completion
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    will not work!** To enable auto-completion please choose one of:
 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-16 13:27:58 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-10-13 14:01:16 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    *  Add source files `` *.c, *.cpp, etc ``  to `` src ``  directory and re-initialize
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      project with command above
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    *  Manually correct `` add_executable ``  command in `` CMakeLists.txt ``  file
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      (will be created in project directory after initialization).
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    `` *.ino ``  file isn't acceptable for `` add_executable ``  command. You should
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    convert it manually to `` *.cpp `` . See `project example  <https://github.com/platformio/platformio/tree/develop/examples/ide/clion> `_ .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    More info `CLion issue #CPP-3977  <https://youtrack.jetbrains.com/issue/CPP-3977> `_ .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Active discussion is located in
 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-16 13:27:58 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    `PlatformIO issue #132  <https://github.com/platformio/platformio/issues/132> `_ .
 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-15 19:34:10 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-02 23:51:07 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Articles / Manuals
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								------------------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  `Using PlatformIO to get started with Arduino in CLion IDE  <http://www.ches.pl/using-platformio-get-started-arduino-clion-ide/> `_ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  `Programar con Arduino "The good way" (Programming with Arduino "The good way", Spanish)  <http://congdegnu.es/2015/11/09/programar-con-arduino-the-good-way/> `_ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								See a full list with :ref: `articles` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-07-15 19:34:10 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								Screenshot
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								----------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								..  image ::  ../_static/ide-platformio-clion.png
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :target:  http://docs.platformio.org/en/latest/_static/ide-platformio-clion.png 
 
							 
						 
					
						
							
								
									
										
										
										
											2015-09-04 23:48:57 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Examples
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								--------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"Blink" Project
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Source code of `CLion "Blink" Project  <https://github.com/platformio/platformio/tree/develop/examples/ide/clion> `_ .