Browse Source

Split IDE instructions into several pages, improve writing style

This removes the link to the KDevelop setup video tutorial as it's
now outdated.

IDE screenshots were also optimized losslessly using
`oxipng -o6 --strip --zopfli`.

See #3485.
Hugo Locurcio 5 years ago
parent
commit
e24fee75cb
88 changed files with 450 additions and 406 deletions
  1. 0 405
      development/cpp/configuring_an_ide.rst
  2. 21 0
      development/cpp/configuring_an_ide/android_studio.rst
  3. 34 0
      development/cpp/configuring_an_ide/clion.rst
  4. BIN
      development/cpp/configuring_an_ide/img/android_studio_setup_project_1.png
  5. BIN
      development/cpp/configuring_an_ide/img/clion_1_open.png
  6. BIN
      development/cpp/configuring_an_ide/img/clion_2_this_window.png
  7. BIN
      development/cpp/configuring_an_ide/img/clion_3_change_project_root.png
  8. BIN
      development/cpp/configuring_an_ide/img/kdevelop_addincludes.png
  9. BIN
      development/cpp/configuring_an_ide/img/kdevelop_buildconfig.png
  10. BIN
      development/cpp/configuring_an_ide/img/kdevelop_configlaunches.png
  11. BIN
      development/cpp/configuring_an_ide/img/kdevelop_configlaunches2.png
  12. BIN
      development/cpp/configuring_an_ide/img/kdevelop_custombuild.png
  13. BIN
      development/cpp/configuring_an_ide/img/kdevelop_newproject.png
  14. BIN
      development/cpp/configuring_an_ide/img/kdevelop_openconfig.png
  15. BIN
      development/cpp/configuring_an_ide/img/kdevelop_openproject.png
  16. BIN
      development/cpp/configuring_an_ide/img/qtcreator-add-custom-process-step.png
  17. BIN
      development/cpp/configuring_an_ide/img/qtcreator-apply-import-filter.png
  18. BIN
      development/cpp/configuring_an_ide/img/qtcreator-edit-codestyle.png
  19. BIN
      development/cpp/configuring_an_ide/img/qtcreator-edit-files-dialog.png
  20. BIN
      development/cpp/configuring_an_ide/img/qtcreator-edit-files-menu.png
  21. BIN
      development/cpp/configuring_an_ide/img/qtcreator-new-project.png
  22. BIN
      development/cpp/configuring_an_ide/img/qtcreator-options-cpp.png
  23. BIN
      development/cpp/configuring_an_ide/img/qtcreator-project-name-includes.png
  24. BIN
      development/cpp/configuring_an_ide/img/qtcreator-projects-build.png
  25. BIN
      development/cpp/configuring_an_ide/img/qtcreator-run-command.png
  26. BIN
      development/cpp/configuring_an_ide/img/qtcreator-set-project-path.png
  27. BIN
      development/cpp/configuring_an_ide/img/qtcreator-set-scons-command.png
  28. BIN
      development/cpp/configuring_an_ide/img/vs_1_install_cpp_package.png
  29. BIN
      development/cpp/configuring_an_ide/img/vs_2_project_properties.png
  30. BIN
      development/cpp/configuring_an_ide/img/vs_3_debug_command_line.png
  31. BIN
      development/cpp/configuring_an_ide/img/vs_4_debugging_main.png
  32. BIN
      development/cpp/configuring_an_ide/img/vscode_1_create_launch.json.png
  33. BIN
      development/cpp/configuring_an_ide/img/vscode_2_launch.json.png
  34. BIN
      development/cpp/configuring_an_ide/img/vscode_3_tasks.json.png
  35. BIN
      development/cpp/configuring_an_ide/img/xcode_1_create_external_build_project.png
  36. BIN
      development/cpp/configuring_an_ide/img/xcode_2_configure_scons.png
  37. BIN
      development/cpp/configuring_an_ide/img/xcode_3_add_new_target.png
  38. BIN
      development/cpp/configuring_an_ide/img/xcode_4_select_command_line_target.png
  39. BIN
      development/cpp/configuring_an_ide/img/xcode_5_after_add_godot_source_to_project.png
  40. BIN
      development/cpp/configuring_an_ide/img/xcode_6_after_add_godot_source_to_project_2.png
  41. BIN
      development/cpp/configuring_an_ide/img/xcode_7_setup_build_post_action.png
  42. BIN
      development/cpp/configuring_an_ide/img/xcode_8_setup_run_scheme.png
  43. 23 0
      development/cpp/configuring_an_ide/index.rst
  44. 58 0
      development/cpp/configuring_an_ide/kdevelop.rst
  45. 105 0
      development/cpp/configuring_an_ide/qt_creator.rst
  46. 64 0
      development/cpp/configuring_an_ide/visual_studio.rst
  47. 49 0
      development/cpp/configuring_an_ide/visual_studio_code.rst
  48. 95 0
      development/cpp/configuring_an_ide/xcode.rst
  49. BIN
      development/cpp/img/android_studio_setup_project_1.png
  50. BIN
      development/cpp/img/clion_1_open.png
  51. BIN
      development/cpp/img/clion_2_this_window.png
  52. BIN
      development/cpp/img/clion_3_change_project_root.png
  53. BIN
      development/cpp/img/kdevelop_addincludes.png
  54. BIN
      development/cpp/img/kdevelop_buildconfig.png
  55. BIN
      development/cpp/img/kdevelop_configlaunches.png
  56. BIN
      development/cpp/img/kdevelop_configlaunches2.png
  57. BIN
      development/cpp/img/kdevelop_custombuild.png
  58. BIN
      development/cpp/img/kdevelop_newproject.png
  59. BIN
      development/cpp/img/kdevelop_openconfig.png
  60. BIN
      development/cpp/img/kdevelop_openproject.png
  61. BIN
      development/cpp/img/qtcreator-add-custom-process-step.png
  62. BIN
      development/cpp/img/qtcreator-apply-import-filter.png
  63. BIN
      development/cpp/img/qtcreator-edit-codestyle.png
  64. BIN
      development/cpp/img/qtcreator-edit-files-dialog.png
  65. BIN
      development/cpp/img/qtcreator-edit-files-menu.png
  66. BIN
      development/cpp/img/qtcreator-new-project.png
  67. BIN
      development/cpp/img/qtcreator-options-cpp.png
  68. BIN
      development/cpp/img/qtcreator-project-name-includes.png
  69. BIN
      development/cpp/img/qtcreator-projects-build.png
  70. BIN
      development/cpp/img/qtcreator-run-command.png
  71. BIN
      development/cpp/img/qtcreator-set-project-path.png
  72. BIN
      development/cpp/img/qtcreator-set-scons-command.png
  73. BIN
      development/cpp/img/vs_1_install_cpp_package.png
  74. BIN
      development/cpp/img/vs_2_project_properties.png
  75. BIN
      development/cpp/img/vs_3_debug_command_line.png
  76. BIN
      development/cpp/img/vs_4_debugging_main.png
  77. BIN
      development/cpp/img/vscode_1_create_launch.json.png
  78. BIN
      development/cpp/img/vscode_2_launch.json.png
  79. BIN
      development/cpp/img/vscode_3_tasks.json.png
  80. BIN
      development/cpp/img/xcode_1_create_external_build_project.png
  81. BIN
      development/cpp/img/xcode_2_configure_scons.png
  82. BIN
      development/cpp/img/xcode_3_add_new_target.png
  83. BIN
      development/cpp/img/xcode_4_select_command_line_target.png
  84. BIN
      development/cpp/img/xcode_5_after_add_godot_source_to_project.png
  85. BIN
      development/cpp/img/xcode_6_after_add_godot_source_to_project_2.png
  86. BIN
      development/cpp/img/xcode_7_setup_build_post_action.png
  87. BIN
      development/cpp/img/xcode_8_setup_run_scheme.png
  88. 1 1
      development/cpp/index.rst

+ 0 - 405
development/cpp/configuring_an_ide.rst

@@ -1,405 +0,0 @@
-.. _doc_configuring_an_ide:
-
-Configuring an IDE
-==================
-
-We assume that you have already `cloned <https://github.com/godotengine/godot>`_
-and :ref:`compiled <toc-devel-compiling>` Godot.
-
-You can easily develop Godot with any text editor and by invoking ``scons``
-on the command line, but if you want to work with an IDE (Integrated
-Development Environment), here are setup instructions for some popular ones:
-
-- :ref:`Qt Creator <doc_configuring_an_ide_qtcreator>` (all desktop platforms)
-- :ref:`Kdevelop <doc_configuring_an_ide_kdevelop>` (all desktop platforms)
-- :ref:`Xcode <doc_configuring_an_ide_xcode>` (macOS)
-- :ref:`Visual Studio <doc_configuring_an_ide_vs>` (Windows)
-- :ref:`Visual Studio Code<doc_configuring_an_ide_vscode>` (all desktop platforms)
-- :ref:`Android Studio<doc_configuring_an_ide_android_studio>` (all desktop platforms)
-- :ref:`CLion<doc_configuring_an_ide_clion>` (all desktop platforms)
-
-It is possible to use other IDEs, but their setup is not documented yet.
-
-.. _doc_configuring_an_ide_qtcreator:
-
-Qt Creator
-----------
-
-Importing the project
-^^^^^^^^^^^^^^^^^^^^^
-
--  Choose *New Project* -> *Import Project* -> *Import Existing Project*.
-
-.. image:: img/qtcreator-new-project.png
-
--  Set the path to your Godot root directory and enter the project name.
-
-.. image:: img/qtcreator-set-project-path.png
-
--  Here you can choose which folders and files will be visible to the project. C/C++ files
-   are added automatically. Potentially useful additions: \*.py for buildsystem files, \*.java for Android development,
-   \*.mm for macOS. Click "Next".
-
-.. image:: img/qtcreator-apply-import-filter.png
-
--  Click *Finish*.
--  Add a line containing ``.`` to *project_name.includes* to get working code completion.
-
-.. image:: img/qtcreator-project-name-includes.png
-
-Build and run
-^^^^^^^^^^^^^
-
-Build configuration:
-
--  Click on *Projects* and open the *Build* tab.
--  Delete the pre-defined ``make`` build step.
-
-.. image:: img/qtcreator-projects-build.png
-
--  Click *Add Build Step* -> *Custom Process Step*.
-
-.. image:: img/qtcreator-add-custom-process-step.png
-
--  Type ``scons`` in the *Command* field. If it fails with 'Could not start process "scons"',
-   it can mean that ``scons`` is not in your ``PATH`` environment variable, so you may have to
-   use the full path to the SCons binary.
--  Fill the *Arguments* field with your compilation options. (e.g.: ``p=linuxbsd target=debug -j 4``)
-
-.. image:: img/qtcreator-set-scons-command.png
-
-Run configuration:
-
--  Open the *Run* tab.
--  Point the *Executable* to your compiled Godot binary (e.g: ``%{buildDir}/bin/godot.linuxbsd.opt.tools.64``)
--  If you want to run a specific game or project, point *Working directory* to the game directory.
--  If you want to run the editor, add ``-e`` to the *Command line arguments* field.
-
-.. image:: img/qtcreator-run-command.png
-
-Updating sources after pulling latest commits
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-As a developer you usually want to frequently pull the latest commits
-from the upstream git repository or a specific fork etc. However, this
-brings a little problem with it: as the development continues, source files
-(and folders) are added or removed. These changes need to be reflected in
-your project files for Qt Creator too, so you continue to have a nice
-experience coding in it. A simple way to check is to right click
-at your root folder in the "Projects View" and click on "Edit files..."
-
-.. image:: img/qtcreator-edit-files-menu.png
-
-Now a new dialog should appear that is similar in functionality to the one in the third step
-of the "Importing the project" section. Here you can check whether you want to add/remove
-specific files and/or folders. You can choose by clicking with your mouse or just simply by
-clicking the "Apply Filter" button. A simple click on "Ok" and you're ready to continue your work.
-
-.. image:: img/qtcreator-edit-files-dialog.png
-
-Code style configuration
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-Developers must follow the project's :ref:`code style <doc_code_style_guidelines>`
-and IDE should help them to do it. By default, Qt Creator does use spaces for indentation
-which is incorrect for Godot project. You can change this behavior by
-changing the "Code Style" in *Options* -> *C++*.
-
-.. image:: img/qtcreator-options-cpp.png
-
-Click on *Edit* to change the current settings, then click on *Copy Built-in Code Style* button
-to set a new code style. Set a name for it (e.g. Godot) and change the Tab policy
-to be *Tabs Only*.
-
-.. image:: img/qtcreator-edit-codestyle.png
-
-.. _doc_configuring_an_ide_kdevelop:
-
-KDevelop
---------
-
-`KDevelop <https://www.kdevelop.org>`_ is a free, open source IDE for all desktop platforms.
-
-You can find a video tutorial `here <https://www.youtube.com/watch?v=yNVoWQi9TJA>`_.
-Or you may follow this text version tutorial.
-
-Start by opening KDevelop and choosing "open project".
-
-.. image:: img/kdevelop_newproject.png
-
-Choose the directory where you cloned Godot.
-
-On the next screen, choose "Custom Build System" for the *Project manager*.
-
-.. image:: img/kdevelop_custombuild.png
-
-Now that the project has been imported, open the project configuration.
-
-.. image:: img/kdevelop_openconfig.png
-
-Add the following includes/imports:
-
-.. code-block:: none
-
-    .  // a dot to indicate the root of the Godot project
-    core/
-    core/os/
-    core/math/
-    drivers/
-    platform/linuxbsd/  // make that platform/osx/ if you're using macOS
-
-.. image:: img/kdevelop_addincludes.png
-
-Apply the changes.
-
-Switch to the "Custom Build System" tab. Add a build configuration
-and keep the build directory blank. Enable build tools and add ``scons``
-as the executable then add ``platform=linuxbsd target=debug`` (``platform=osx``
-if you're on macOS) as the arguments.
-
-.. image:: img/kdevelop_buildconfig.png
-
-Next we need to tell KDevelop where to find the binary.
-From the "Run" menu, choose "Configure Launches".
-
-.. image:: img/kdevelop_configlaunches.png
-
-Click "Add" if no launcher exists. Then add the path to your
-executable in the executable section. Your executable should be located
-in the ``bin/`` sub-directory and should be named something like
-``godot.linuxbsd.tools.64`` (the name could be different depending on your
-platform and depending on your build options).
-
-.. image:: img/kdevelop_configlaunches2.png
-
-That's it! Now you should be good to go :)
-
-
-.. _doc_configuring_an_ide_xcode:
-
-Xcode
------
-
-Project setup
-^^^^^^^^^^^^^
-
-- Create an Xcode external build project anywhere
-
-.. image:: img/xcode_1_create_external_build_project.png
-
-- Set the *Build tool* to the path to scons
-
-Modify Build Target's Xcode Info Tab:
-
-- Set *Arguments* to something like: platform=osx tools=yes bits=64 target=debug
-- Set *Directory* to the path to Godot's source folder. Keep it blank if project is already there.
-- You may uncheck *Pass build settings in environment*
-
-.. image:: img/xcode_2_configure_scons.png
-
-Add a Command Line Target:
-
-- Go to Xcode File > New > Target... and add a new Xcode command line target
-
-.. image:: img/xcode_3_add_new_target.png
-
-.. image:: img/xcode_4_select_command_line_target.png
-
-- Name it something so you know not to compile with this target
-- e.g. ``GodotXcodeIndex``
-- Goto the newly created target's *Build Settings* tab and search for *Header Search Paths*
-- Set *Header Search Paths* to an absolute path to Godot's source folder
-- Make it recursive by adding two \*'s to the end of the path
-- e.g. ``/Users/me/repos/godot-source/\**``
-
-Add Godot Source to the Project:
-
-- Drag and drop Godot source into project file browser.
-- Uncheck *Create External Build System*
-
-.. image:: img/xcode_5_after_add_godot_source_to_project.png
-
-- Click Next
-- Select *create groups*
-
-.. image:: img/xcode_6_after_add_godot_source_to_project_2.png
-
-- Check off only your command line target in the *Add to targets* section
-- Click finish. Xcode will now index the files.
-- Grab a cup of coffee... Maybe make something to eat, too
-- You should have jump to definition, auto completion, and full syntax highlighting when it is done.
-
-Scheme setup
-^^^^^^^^^^^^
-
-Edit Build Scheme of External Build Target:
-
-- Open scheme editor of external build target
-- Expand the *Build* menu
-- Goto *Post Actions*
-- Add a new script run action, select your project in ``Provide build settings from`` as this allows you to use ``${PROJECT_DIR}`` variable.
-
-.. image:: img/xcode_7_setup_build_post_action.png
-
-- Write a script that gives the binary a name that Xcode will recognize
-- e.g. ``ln -f ${PROJECT_DIR}/godot/bin/godot.osx.tools.64 ${PROJECT_DIR}/godot/bin/godot``
-- Build the external build target
-
-Edit Run Scheme of External Build Target:
-
-- Open the scheme editor again
-- Click Run
-
-.. image:: img/xcode_8_setup_run_scheme.png
-
-- Set the *Executable* to the file you linked in your post build action script
-- Check *Debug executable* if it isn't already
-- You can go to *Arguments* tab and add an -e and a -path to a project to debug the editor
-  not the project selection screen
-
-Test it:
-
-- Set a breakpoint in platform/osx/godot_main_osx.mm
-- It should break at the point!
-
-
-.. _doc_configuring_an_ide_vs:
-
-Visual Studio
--------------
-
-Visual Studio Community is free for non-commercial use and has many useful features,
-such as memory view, performance view, source control and more.
-You can get it `from Microsoft <https://visualstudio.microsoft.com/downloads/>`__.
-
-Setup
-^^^^^
-
-To start developing with Visual Studio, follow these steps:
-
-- Open the Visual Studio Installer and install the C++ package:
-
-.. image:: img/vs_1_install_cpp_package.png
-
-- Open a Command Prompt or PowerShell window, use ``cd`` to reach the Godot source
-  directory and run ``scons platform=windows vsproj=yes``.
-
-- Now open the Godot folder by clicking **Open a project or solution** and choose
-  ``godot.sln``.
-  - You can also double-click the ``godot.sln`` file in Explorer.
-
-You can now start developing with Visual Studio.
-
-Debugging
-^^^^^^^^^
-
-Visual Studio features a powerful debugger. This allows the user to examine Godot's
-source code, stop at specific points in the code, make changes, and view them on the run.
-
-.. note:: Debugging the Godot Engine inside the editor will require an extra setup step.
-
-          Because opening Godot opens the Project Manager at first instead of the project
-          you're working on, the debugger will detach as soon as you open a project.
-          This means that the debugger will stop, even though Godot is still running in
-          another process.
-
-To overcome this, you need to edit the debugging command line arguments in VS. In your
-project, click **Project > Project Properties**:
-
-.. image:: img/vs_2_project_properties.png
-
-Then add this to the command arguments:
-
-.. image:: img/vs_3_debug_command_line.png
-
-- The ``-e`` flag is for entering the editor directly (which skips the Project Manager).
-- The ``--path`` argument should be an *absolute* path to a project directory (not a
-  `project.godot` file).
-
-To learn more about command line arguments, refer to the
-:ref:`command line tutorial <doc_command_line_tutorial>`.
-
-To check that everything is working, put a breakpoint in ``main.cpp`` and press F5 to
-start debugging.
-
-.. image:: img/vs_4_debugging_main.png
-
-
-.. _doc_configuring_an_ide_vscode:
-
-Visual Studio Code
-------------------
-
-- Ensure that C/C++ extension is installed. You can find instructions in `docs <https://code.visualstudio.com/docs/languages/cpp>`_.
-
-- Open cloned godot folder in VS Code with ``File > Open Folder...``
-
-In order to build the project, you need two configuration files: *launch.json* and *tasks.json*.
-To create them:
-
-- Open *Debug* view by pressing :kbd:`Ctrl + Shift + D` and select cogwheel with an orange dot:
-
-.. image:: img/vscode_1_create_launch.json.png
-
-- Select *C++ (GDB/LLDB)* (it might be named differently on macOS or Windows)
-
-- Update *launch.json* to match:
-
-.. image:: img/vscode_2_launch.json.png
-
-(Note that *godot.linuxbsd.tools.64* in "program" value might be named differently on macOS or Windows)
-
-- Create *tasks.json* by starting the Debug process with :kbd:`F5`. VS Code will show a dialog with a *Configure Task* button. Tap it and select *Create tasks.json file from template*, then select *Others*
-
-- Update *tasks.json* to match:
-
-.. image:: img/vscode_3_tasks.json.png
-
-(Note that *platform=linuxbsd* will be different for macOX and Windows)
-
-- You can now start the Debug process again to test that everything works.
-
-- If the build phase fails, check the console for hints. On Linux, it's most
-  likely due to missing dependencies. Check :ref:`doc_compiling_for_linuxbsd`.
-
-
-.. _doc_configuring_an_ide_android_studio:
-
-Android Studio
---------------
-
-`Android Studio <https://developer.android.com/studio>`_ is a `JetBrains <https://www.jetbrains.com/>`_ IDE for Android development. It has a feature-rich editor which supports Java and C/C++, so it can be used for development of the Godot core engine, and Android platform codebases.
-
-Project setup
-^^^^^^^^^^^^^
-
-- From the Android Studio *Welcome to Android Studio* window, select *Open an existing Android Studio project*
-
-.. image:: img/android_studio_setup_project_1.png
-
-- Navigate to ``<godot root directory>/platform/android/java`` and select the ``settings.gradle`` gradle file.
-- Android Studio will import and index the project.
-- To build the project, follow the :ref:`compiling instructions <toc-devel-compiling>`.
-
-.. _doc_configuring_an_ide_clion:
-
-CLion
------
-
-`CLion <https://www.jetbrains.com/clion/>`_ is a commercial IDE for C++. It requires a ``CMakeLists.txt`` file as a project file, which is problematic for Godot which uses the SCons buildsystem and not CMake. However, there is a ``CMakeLists.txt`` configuration for :ref:`Android Studio <doc_configuring_an_ide_android_studio>` which can also be used by CLion.
-
-- Choose *File* -> *Open*.
-
-- Navigation to your Godot Git clone, and select the folder ``platform/android/java/lib`` (the ``CMakeLists.txt`` file is located there). Select the folder, not the ``CMakeLists.txt file``. Then click *Ok*.
-
-.. image:: img/clion_1_open.png
-
-- If this popup window appears, select *This window* to open the project.
-
-.. image:: img/clion_2_this_window.png
-
-- Choose *Tools* -> *CMake* -> *Change Project Root* and select the root Godot folder.
-
-.. image:: img/clion_3_change_project_root.png
-
-- You should be now be able to see all the project files. Autocomplete should work, when the project finish indexing.

+ 21 - 0
development/cpp/configuring_an_ide/android_studio.rst

@@ -0,0 +1,21 @@
+.. _doc_configuring_an_ide_android_studio:
+
+Android Studio
+==============
+
+`Android Studio <https://developer.android.com/studio>`_ is a free
+`JetBrains <https://www.jetbrains.com/>`_ IDE for Android development.
+It has a feature-rich editor which supports Java and C/C++. It can be used to
+work on Godot's core engine as well as the Android platform codebase.
+
+- From Android Studio's welcome window, select
+  **Open an existing Android Studio project**.
+
+.. image:: img/android_studio_setup_project_1.png
+
+- Navigate to ``<Godot root directory>/platform/android/java`` and select the ``settings.gradle`` gradle file.
+- Android Studio will import and index the project.
+- To build the project, follow the :ref:`compiling instructions <toc-devel-compiling>`.
+
+If you run into any issues, ask for help in one of
+`Godot's community channels <https://godotengine.org/community>`__.

+ 34 - 0
development/cpp/configuring_an_ide/clion.rst

@@ -0,0 +1,34 @@
+.. _doc_configuring_an_ide_clion:
+
+CLion
+=====
+
+`CLion <https://www.jetbrains.com/clion/>`_ is a commercial IDE for C++.
+It requires a ``CMakeLists.txt`` file as a project file, which is problematic
+for Godot which uses the SCons buildsystem instead of CMake.
+However, there is a ``CMakeLists.txt`` configuration for
+:ref:`Android Studio <doc_configuring_an_ide_android_studio>` which can also
+be used by CLion.
+
+- If you've already opened another project, choose **File > Open** at the top of
+  the CLion window. Otherwise, choose the option to import an existing project
+  in the Welcome window.
+- Navigate to your Godot Git clone then select the folder
+  ``platform/android/java/lib`` - the ``CMakeLists.txt`` file is located there.
+  Select the folder (*not* the ``CMakeLists.txt file``), then click **OK**.
+
+.. image:: img/clion_1_open.png
+
+- If this popup window appears, select **This Window** to open the project:
+
+.. image:: img/clion_2_this_window.png
+
+- Choose **Tools > CMake >Change Project Root** and select the root Godot folder.
+
+.. image:: img/clion_3_change_project_root.png
+
+- You should be now be able to see all the project files. Autocomplete should
+  work once the project has finished indexing.
+
+If you run into any issues, ask for help in one of
+`Godot's community channels <https://godotengine.org/community>`__.

BIN
development/cpp/configuring_an_ide/img/android_studio_setup_project_1.png


BIN
development/cpp/configuring_an_ide/img/clion_1_open.png


BIN
development/cpp/configuring_an_ide/img/clion_2_this_window.png


BIN
development/cpp/configuring_an_ide/img/clion_3_change_project_root.png


BIN
development/cpp/configuring_an_ide/img/kdevelop_addincludes.png


BIN
development/cpp/configuring_an_ide/img/kdevelop_buildconfig.png


BIN
development/cpp/configuring_an_ide/img/kdevelop_configlaunches.png


BIN
development/cpp/configuring_an_ide/img/kdevelop_configlaunches2.png


BIN
development/cpp/configuring_an_ide/img/kdevelop_custombuild.png


BIN
development/cpp/configuring_an_ide/img/kdevelop_newproject.png


BIN
development/cpp/configuring_an_ide/img/kdevelop_openconfig.png


BIN
development/cpp/configuring_an_ide/img/kdevelop_openproject.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-add-custom-process-step.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-apply-import-filter.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-edit-codestyle.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-edit-files-dialog.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-edit-files-menu.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-new-project.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-options-cpp.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-project-name-includes.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-projects-build.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-run-command.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-set-project-path.png


BIN
development/cpp/configuring_an_ide/img/qtcreator-set-scons-command.png


BIN
development/cpp/configuring_an_ide/img/vs_1_install_cpp_package.png


BIN
development/cpp/configuring_an_ide/img/vs_2_project_properties.png


BIN
development/cpp/configuring_an_ide/img/vs_3_debug_command_line.png


BIN
development/cpp/configuring_an_ide/img/vs_4_debugging_main.png


BIN
development/cpp/configuring_an_ide/img/vscode_1_create_launch.json.png


BIN
development/cpp/configuring_an_ide/img/vscode_2_launch.json.png


BIN
development/cpp/configuring_an_ide/img/vscode_3_tasks.json.png


BIN
development/cpp/configuring_an_ide/img/xcode_1_create_external_build_project.png


BIN
development/cpp/configuring_an_ide/img/xcode_2_configure_scons.png


BIN
development/cpp/configuring_an_ide/img/xcode_3_add_new_target.png


BIN
development/cpp/configuring_an_ide/img/xcode_4_select_command_line_target.png


BIN
development/cpp/configuring_an_ide/img/xcode_5_after_add_godot_source_to_project.png


BIN
development/cpp/configuring_an_ide/img/xcode_6_after_add_godot_source_to_project_2.png


BIN
development/cpp/configuring_an_ide/img/xcode_7_setup_build_post_action.png


BIN
development/cpp/configuring_an_ide/img/xcode_8_setup_run_scheme.png


+ 23 - 0
development/cpp/configuring_an_ide/index.rst

@@ -0,0 +1,23 @@
+Configuring an IDE
+==================
+
+We assume that you have already `cloned <https://github.com/godotengine/godot>`_
+and :ref:`compiled <toc-devel-compiling>` Godot.
+
+You can easily develop Godot with any text editor and by invoking ``scons``
+on the command line, but if you want to work with an IDE (Integrated
+Development Environment), here are setup instructions for some popular ones:
+
+.. toctree::
+   :maxdepth: 1
+   :name: toc-devel-configuring_an_ide
+
+   android_studio
+   clion
+   kdevelop
+   qt_creator
+   visual_studio_code
+   visual_studio
+   xcode
+
+It is possible to use other IDEs, but their setup is not documented yet.

+ 58 - 0
development/cpp/configuring_an_ide/kdevelop.rst

@@ -0,0 +1,58 @@
+.. _doc_configuring_an_ide_kdevelop:
+
+KDevelop
+========
+
+`KDevelop <https://www.kdevelop.org>`_ is a free, open source IDE for all desktop platforms.
+
+Start by opening KDevelop and choosing **Open Project**.
+
+.. image:: img/kdevelop_newproject.png
+
+Choose the directory where you cloned Godot.
+
+On the next screen, choose **Custom Build System** for the **Project Manager**.
+
+.. image:: img/kdevelop_custombuild.png
+
+Now that the project has been imported, open the project configuration.
+
+.. image:: img/kdevelop_openconfig.png
+
+Add the following includes/imports:
+
+.. code-block:: none
+
+    .  // a dot to indicate the root of the Godot project
+    core/
+    core/os/
+    core/math/
+    drivers/
+    platform/linuxbsd/  // make that platform/osx/ if you're using macOS
+
+.. image:: img/kdevelop_addincludes.png
+
+Apply the changes.
+
+Switch to the **Custom Build System** tab. Add a build configuration
+and keep the build directory blank. Enable build tools and add ``scons``
+as the executable then add ``platform=linuxbsd target=debug`` (``platform=osx``
+if you're on macOS) as the arguments.
+
+.. image:: img/kdevelop_buildconfig.png
+
+Next, we need to tell KDevelop where to find the binary.
+From the **Run** menu, choose **Configure Launches**.
+
+.. image:: img/kdevelop_configlaunches.png
+
+Click **Add** if no launcher exists. Then add the path to your
+executable in the executable section. Your executable should be located
+in the ``bin/`` subdirectory and should be named something like
+``godot.linuxbsd.tools.64`` (the name could be different depending on your
+platform and build options).
+
+.. image:: img/kdevelop_configlaunches2.png
+
+If you run into any issues, ask for help in one of
+`Godot's community channels <https://godotengine.org/community>`__.

+ 105 - 0
development/cpp/configuring_an_ide/qt_creator.rst

@@ -0,0 +1,105 @@
+.. _doc_configuring_an_ide_qtcreator:
+
+Qt Creator
+==========
+
+Qt Creator is a free, open source IDE for all desktop platforms.
+
+Importing the project
+---------------------
+
+- Choose **New Project > Import Project > Import Existing Project**.
+
+.. image:: img/qtcreator-new-project.png
+
+- Set the path to your Godot root directory and enter the project name.
+
+.. image:: img/qtcreator-set-project-path.png
+
+- Here you can choose which folders and files will be visible to the project.
+  C/C++ files are added automatically. Potentially useful additions:
+  ``*.py`` for buildsystem files, ``*.java`` for Android platform development,
+  ``*.mm`` for macOS platform development. Click **Next**.
+
+.. image:: img/qtcreator-apply-import-filter.png
+
+- Click **Finish**.
+- Add a line containing ``.`` to ``project_name.includes`` to get working
+  code completion.
+
+.. image:: img/qtcreator-project-name-includes.png
+
+Build and run
+--------------
+
+Build configuration:
+
+- Click on **Projects** and open the **Build** tab.
+- Delete the predefined ``make`` build step.
+
+.. image:: img/qtcreator-projects-build.png
+
+-  Click **Add Build Step > Custom Process Step**.
+
+.. image:: img/qtcreator-add-custom-process-step.png
+
+- Type ``scons`` in the **Command** field. If it fails with
+  ``Could not start process "scons"``, it can mean that ``scons`` is not in
+  your ``PATH`` environment variable. In this case, you'll have to specify the
+  full path to the SCons binary.
+- Fill the **Arguments** field with your compilation options
+  (e.g.: ``p=linuxbsd target=debug -j 4``).
+
+.. image:: img/qtcreator-set-scons-command.png
+
+Run configuration:
+
+- Open the **Run** tab.
+- Point the **Executable** to your compiled Godot binary
+  (e.g: ``%{buildDir}/bin/godot.linuxbsd.opt.tools.64``).
+- If you want to run a specific project, point **Working directory** to the
+  project folder.
+- If you want to run the editor, add ``-e`` to the **Command line arguments**
+  field.
+
+.. image:: img/qtcreator-run-command.png
+
+Updating sources after pulling latest commits
+---------------------------------------------
+
+As a developer, you usually want to frequently pull the latest commits from the
+upstream Git repository or a specific fork. However, this brings a problem with
+it: as the development continues, source files (and folders) are added or
+removed. These changes need to be reflected in your project files for Qt Creator
+too, so you continue to have a nice programming experience. A simple way to
+check is to right click at your root folder in the **Projects View** and click
+on **Edit files...**.
+
+.. image:: img/qtcreator-edit-files-menu.png
+
+Now a new dialog should appear that is similar in functionality to the one in
+the third step of the *Importing the project* section above. Here, you can check
+whether you want to add/remove specific files and/or folders. You can choose by
+clicking with your mouse or just simply by clicking the **Apply Filter** button.
+Click on **OK** and you're ready to continue working.
+
+.. image:: img/qtcreator-edit-files-dialog.png
+
+Code style configuration
+------------------------
+
+Developers must follow the project's :ref:`code style <doc_code_style_guidelines>`
+and the IDE should help them follow it. By default, Qt Creator does use spaces
+for indentation which doesn't match the Godot code style guidelines. You can
+change this behavior by changing the **Code Style** in **Options > C++**.
+
+.. image:: img/qtcreator-options-cpp.png
+
+Click on **Edit** to change the current settings, then click on
+**Copy Built-in Code Style** button to set a new code style. Set a name for it
+(e.g. Godot) and change the Tab policy to be **Tabs Only**.
+
+.. image:: img/qtcreator-edit-codestyle.png
+
+If you run into any issues, ask for help in one of
+`Godot's community channels <https://godotengine.org/community>`__.

+ 64 - 0
development/cpp/configuring_an_ide/visual_studio.rst

@@ -0,0 +1,64 @@
+.. _doc_configuring_an_ide_vs:
+
+Visual Studio
+=============
+
+Visual Studio Community is a Windows-only IDE that's free for non-commercial use.
+It has many useful features, such as memory view, performance view, source
+control and more. You can get it
+`from Microsoft <https://visualstudio.microsoft.com/downloads/>`__.
+
+Setup
+-----
+
+To start developing with Visual Studio, follow these steps:
+
+- Open the Visual Studio Installer and install the C++ package:
+
+.. image:: img/vs_1_install_cpp_package.png
+
+- Open a Command Prompt or PowerShell window, use ``cd`` to reach the Godot source
+  directory and run ``scons platform=windows vsproj=yes``.
+
+- Now open the Godot folder by clicking **Open a project or solution** and choose
+  ``godot.sln``.
+  - You can also double-click the ``godot.sln`` file in Explorer.
+
+You can now start developing with Visual Studio.
+
+Debugging
+---------
+
+Visual Studio features a powerful debugger. This allows the user to examine Godot's
+source code, stop at specific points in the code, make changes, and view them on the run.
+
+.. note:: Debugging the Godot Engine inside the editor will require an extra setup step.
+
+          Because opening Godot opens the Project Manager at first instead of the project
+          you're working on, the debugger will detach as soon as you open a project.
+          This means that the debugger will stop, even though Godot is still running in
+          another process.
+
+To overcome this, you need to edit the debugging command line arguments in VS. In your
+project, click **Project > Project Properties**:
+
+.. image:: img/vs_2_project_properties.png
+
+Then add this to the command arguments:
+
+.. image:: img/vs_3_debug_command_line.png
+
+- The ``-e`` flag is for entering the editor directly (which skips the Project Manager).
+- The ``--path`` argument should be an *absolute* path to a project directory (not a
+  `project.godot` file).
+
+To learn more about command line arguments, refer to the
+:ref:`command line tutorial <doc_command_line_tutorial>`.
+
+To check that everything is working, put a breakpoint in ``main.cpp`` and press F5 to
+start debugging.
+
+.. image:: img/vs_4_debugging_main.png
+
+If you run into any issues, ask for help in one of
+`Godot's community channels <https://godotengine.org/community>`__.

+ 49 - 0
development/cpp/configuring_an_ide/visual_studio_code.rst

@@ -0,0 +1,49 @@
+.. _doc_configuring_an_ide_vscode:
+
+Visual Studio Code
+==================
+
+Visual Studio Code is a free cross-platform IDE (not to be confused with
+:ref:`doc_configuring_an_ide_vs`). You can get it
+`from Microsoft <https://code.visualstudio.com/>`__.
+
+
+- Make sure the C/C++ extension is installed. You can find instructions in
+  the `documentation <https://code.visualstudio.com/docs/languages/cpp>`_.
+- Open the cloned Godot folder in Visual Studio Code with
+  **File > Open Folder...**.
+
+In order to build the project, you need two configuration files:
+``launch.json`` and ``tasks.json``. To create them:
+
+- Open the **Debug** view by pressing :kbd:`Ctrl + Shift + D` and select the
+  cogwheel with an orange dot:
+
+.. image:: img/vscode_1_create_launch.json.png
+
+- Select **C++ (GDB/LLDB)** (it might be named differently on macOS or Windows).
+
+- Update ``launch.json`` to match:
+
+.. image:: img/vscode_2_launch.json.png
+
+If you're following this guide on macOS or Windows, you will have to adjust
+``godot.linuxbsd.tools.64`` accordingly.
+
+- Create a ``tasks.json`` file by starting the Debug process with :kbd:`F5`.
+  Visual Studio Code will show a dialog with a **Configure Task** button.
+  Choose it and select **Create tasks.json file from template**, then select **Others**.
+
+- Update ``tasks.json`` to match:
+
+.. image:: img/vscode_3_tasks.json.png
+
+If you're following this guide on macOS or Windows, you will have to adjust
+``platform=linuxbsd`` accordingly.
+
+- You can now start the Debug process again to test that everything works.
+- If the build phase fails, check the console for hints. On Linux, it's most
+  likely due to missing dependencies. Check :ref:`doc_compiling_for_linuxbsd`.
+
+If you run into any issues, ask for help in one of
+`Godot's community channels <https://godotengine.org/community>`__.

+ 95 - 0
development/cpp/configuring_an_ide/xcode.rst

@@ -0,0 +1,95 @@
+.. _doc_configuring_an_ide_xcode:
+
+Xcode
+=====
+
+Xcode is a free macOS-only IDE. You can download it from the Mac App Store.
+
+Project setup
+-------------
+
+- Create an Xcode external build project anywhere.
+
+.. image:: img/xcode_1_create_external_build_project.png
+
+Go to the build target's **Info** tab, then:
+
+- Set **Build Tool** to the full path to SCons.
+- Set **Arguments** to something like
+  ``platform=osx tools=yes bits=64 target=debug``.
+- Set **Directory** to the path to Godot's source folder.
+- You may uncheck **Pass build settings in environment**.
+
+.. image:: img/xcode_2_configure_scons.png
+
+Add a Command Line Tool target which will be used for indexing the project:
+
+- In Xcode's menu, choose **File > New > Target...** and add a new Xcode
+  command line tool target.
+
+.. image:: img/xcode_3_add_new_target.png
+
+.. image:: img/xcode_4_select_command_line_target.png
+
+- Name it something so you know not to compile with this target (e.g. ``GodotXcodeIndex``).
+- Goto the newly created target's **Build Settings** tab and look for **Header Search Paths**.
+- Set **Header Search Paths** to the absolute path to Godot's source folder.
+- Make it recursive by adding two asterisks (``**``) to the end of the path,
+  e.g. ``/Users/me/repos/godot-source/**``.
+
+Add the Godot source to the project:
+
+- Drag and drop Godot source into the project file browser.
+- Uncheck **Create external build system project**.
+
+.. image:: img/xcode_5_after_add_godot_source_to_project.png
+
+- Click **Next**.
+- Select **Create groups**.
+
+.. image:: img/xcode_6_after_add_godot_source_to_project_2.png
+
+- Check *only* your command line indexing target in the
+  **Add to targets** section.
+- Click finish. Xcode will now index the files. This may take a few minutes.
+- Once Xcode is done indexing, you should have jump-to-definition,
+  autocompletion, and full syntax highlighting.
+
+Scheme setup
+------------
+
+To enable debugging support, edit the external build target's build scheme:
+
+- Open the scheme editor of the external build target.
+- Expand the **Build** menu.
+- Goto **Post Actions**.
+- Add a new script run action, select your project in **Provide build settings from**
+  as this allows you to use the``${PROJECT_DIR}`` variable.
+
+.. image:: img/xcode_7_setup_build_post_action.png
+
+- Write a script that gives the binary a name that Xcode will recognize, such as:
+  ``ln -f ${PROJECT_DIR}/godot/bin/godot.osx.tools.64 ${PROJECT_DIR}/godot/bin/godot``
+- Build the external build target.
+
+Edit the external build target's Run scheme:
+
+- Open the scheme editor again.
+- Click **Run**.
+
+.. image:: img/xcode_8_setup_run_scheme.png
+
+- Set the **Executable** to the file you linked in your post-build action script.
+- Check **Debug executable** if it isn't checked already.
+- You can go to **Arguments** tab and specify the full path to a
+  ``project.godot`` file to debug the editor instead of the project manager.
+  Alternatively, use ``--path`` to point to a project *folder* which will be
+  run directly (instead of opening the editor).
+
+Test the Run scheme:
+
+- Set a breakpoint in ``platform/osx/godot_main_osx.mm``.
+- If all goes well, it should break at the specified breakpoint.
+
+If you run into any issues, ask for help in one of
+`Godot's community channels <https://godotengine.org/community>`__.

BIN
development/cpp/img/android_studio_setup_project_1.png


BIN
development/cpp/img/clion_1_open.png


BIN
development/cpp/img/clion_2_this_window.png


BIN
development/cpp/img/clion_3_change_project_root.png


BIN
development/cpp/img/kdevelop_addincludes.png


BIN
development/cpp/img/kdevelop_buildconfig.png


BIN
development/cpp/img/kdevelop_configlaunches.png


BIN
development/cpp/img/kdevelop_configlaunches2.png


BIN
development/cpp/img/kdevelop_custombuild.png


BIN
development/cpp/img/kdevelop_newproject.png


BIN
development/cpp/img/kdevelop_openconfig.png


BIN
development/cpp/img/kdevelop_openproject.png


BIN
development/cpp/img/qtcreator-add-custom-process-step.png


BIN
development/cpp/img/qtcreator-apply-import-filter.png


BIN
development/cpp/img/qtcreator-edit-codestyle.png


BIN
development/cpp/img/qtcreator-edit-files-dialog.png


BIN
development/cpp/img/qtcreator-edit-files-menu.png


BIN
development/cpp/img/qtcreator-new-project.png


BIN
development/cpp/img/qtcreator-options-cpp.png


BIN
development/cpp/img/qtcreator-project-name-includes.png


BIN
development/cpp/img/qtcreator-projects-build.png


BIN
development/cpp/img/qtcreator-run-command.png


BIN
development/cpp/img/qtcreator-set-project-path.png


BIN
development/cpp/img/qtcreator-set-scons-command.png


BIN
development/cpp/img/vs_1_install_cpp_package.png


BIN
development/cpp/img/vs_2_project_properties.png


BIN
development/cpp/img/vs_3_debug_command_line.png


BIN
development/cpp/img/vs_4_debugging_main.png


BIN
development/cpp/img/vscode_1_create_launch.json.png


BIN
development/cpp/img/vscode_2_launch.json.png


BIN
development/cpp/img/vscode_3_tasks.json.png


BIN
development/cpp/img/xcode_1_create_external_build_project.png


BIN
development/cpp/img/xcode_2_configure_scons.png


BIN
development/cpp/img/xcode_3_add_new_target.png


BIN
development/cpp/img/xcode_4_select_command_line_target.png


BIN
development/cpp/img/xcode_5_after_add_godot_source_to_project.png


BIN
development/cpp/img/xcode_6_after_add_godot_source_to_project_2.png


BIN
development/cpp/img/xcode_7_setup_build_post_action.png


BIN
development/cpp/img/xcode_8_setup_run_scheme.png


+ 1 - 1
development/cpp/index.rst

@@ -6,7 +6,7 @@ Engine development
    :name: toc-devel-cpp
 
    introduction_to_godot_development
-   configuring_an_ide
+   configuring_an_ide/index
    core_types
    variant_class
    object_class