mirror of
https://github.com/godotengine/godot-docs.git
synced 2026-01-03 05:48:42 +03:00
Proofread SCons examples
This commit is contained in:
@@ -57,6 +57,7 @@ Inside we will create a simple summator class:
|
||||
.. code:: cpp
|
||||
|
||||
/* summator.h */
|
||||
|
||||
#ifndef SUMMATOR_H
|
||||
#define SUMMATOR_H
|
||||
|
||||
@@ -71,14 +72,14 @@ Inside we will create a simple summator class:
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
void add(int value);
|
||||
void add(int p_value);
|
||||
void reset();
|
||||
int get_total() const;
|
||||
|
||||
Summator();
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // SUMMATOR_H
|
||||
|
||||
And then the cpp file.
|
||||
|
||||
@@ -88,23 +89,19 @@ And then the cpp file.
|
||||
|
||||
#include "summator.h"
|
||||
|
||||
void Summator::add(int value) {
|
||||
|
||||
count += value;
|
||||
void Summator::add(int p_value) {
|
||||
count += p_value;
|
||||
}
|
||||
|
||||
void Summator::reset() {
|
||||
|
||||
count = 0;
|
||||
}
|
||||
|
||||
int Summator::get_total() const {
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
void Summator::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("add", "value"), &Summator::add);
|
||||
ClassDB::bind_method(D_METHOD("reset"), &Summator::reset);
|
||||
ClassDB::bind_method(D_METHOD("get_total"), &Summator::get_total);
|
||||
@@ -142,12 +139,11 @@ With the following contents:
|
||||
#include "summator.h"
|
||||
|
||||
void register_summator_types() {
|
||||
|
||||
ClassDB::register_class<Summator>();
|
||||
ClassDB::register_class<Summator>();
|
||||
}
|
||||
|
||||
void unregister_summator_types() {
|
||||
//nothing to do here
|
||||
// Nothing to do here in this example.
|
||||
}
|
||||
|
||||
Next, we need to create a ``SCsub`` file so the build system compiles
|
||||
@@ -156,9 +152,10 @@ this module:
|
||||
.. code:: python
|
||||
|
||||
# SCsub
|
||||
|
||||
Import('env')
|
||||
|
||||
env.add_source_files(env.modules_sources,"*.cpp") # Add all cpp files to the build
|
||||
env.add_source_files(env.modules_sources, "*.cpp") # Add all cpp files to the build
|
||||
|
||||
With multiple sources, you can also add each file individually to a Python
|
||||
string list:
|
||||
@@ -177,8 +174,8 @@ environment's paths:
|
||||
|
||||
.. code:: python
|
||||
|
||||
env.Append(CPPPATH="mylib/include") # this is a relative path
|
||||
env.Append(CPPPATH="#myotherlib/include") # this is an 'absolute' path
|
||||
env.Append(CPPPATH=["mylib/include"]) # this is a relative path
|
||||
env.Append(CPPPATH=["#myotherlib/include"]) # this is an 'absolute' path
|
||||
|
||||
If you want to add custom compiler flags when building your module, you need to clone
|
||||
`env` first, so it won't add those flags to whole Godot build (which can cause errors).
|
||||
@@ -187,11 +184,13 @@ Example `SCsub` with custom flags:
|
||||
.. code:: python
|
||||
|
||||
# SCsub
|
||||
|
||||
Import('env')
|
||||
|
||||
module_env = env.Clone()
|
||||
module_env.add_source_files(env.modules_sources,"*.cpp")
|
||||
module_env.Append(CXXFLAGS=['-O2', '-std=c++11'])
|
||||
module_env.add_source_files(env.modules_sources, "*.cpp")
|
||||
module_env.Append(CCFLAGS=['-O2']) # Flags for C and C++ code
|
||||
module_env.Append(CXXFLAGS=['-std=c++11']) # Flags for C++ code only
|
||||
|
||||
And finally, the configuration file for the module, this is a simple
|
||||
python script that must be named ``config.py``:
|
||||
@@ -206,8 +205,8 @@ python script that must be named ``config.py``:
|
||||
def configure(env):
|
||||
pass
|
||||
|
||||
The module is asked if it's ok to build for the specific platform (in
|
||||
this case, True means it will build for every platform).
|
||||
The module is asked if it's OK to build for the specific platform (in
|
||||
this case, ``True`` means it will build for every platform).
|
||||
|
||||
And that's it. Hope it was not too complex! Your module should look like
|
||||
this:
|
||||
@@ -266,6 +265,7 @@ library that will be dynamically loaded when starting our game's binary.
|
||||
.. code:: python
|
||||
|
||||
# SCsub
|
||||
|
||||
Import('env')
|
||||
|
||||
sources = [
|
||||
@@ -275,7 +275,7 @@ library that will be dynamically loaded when starting our game's binary.
|
||||
|
||||
# First, create a custom env for the shared library.
|
||||
module_env = env.Clone()
|
||||
module_env.Append(CXXFLAGS='-fPIC') # Needed to compile shared library
|
||||
module_env.Append(CCFLAGS=['-fPIC']) # Needed to compile shared library
|
||||
# We don't want godot's dependencies to be injected into our shared library.
|
||||
module_env['LIBS'] = []
|
||||
|
||||
@@ -313,6 +313,7 @@ using the `ARGUMENT` command:
|
||||
.. code:: python
|
||||
|
||||
# SCsub
|
||||
|
||||
Import('env')
|
||||
|
||||
sources = [
|
||||
@@ -321,11 +322,12 @@ using the `ARGUMENT` command:
|
||||
]
|
||||
|
||||
module_env = env.Clone()
|
||||
module_env.Append(CXXFLAGS=['-O2', '-std=c++11'])
|
||||
module_env.Append(CCFLAGS=['-O2'])
|
||||
module_env.Append(CXXFLAGS=['-std=c++11'])
|
||||
|
||||
if ARGUMENTS.get('summator_shared', 'no') == 'yes':
|
||||
# Shared lib compilation
|
||||
module_env.Append(CXXFLAGS='-fPIC')
|
||||
module_env.Append(CCFLAGS=['-fPIC'])
|
||||
module_env['LIBS'] = []
|
||||
shared_lib = module_env.SharedLibrary(target='#bin/summator', source=sources)
|
||||
shared_lib_shim = shared_lib[0].name.rsplit('.', 1)[0]
|
||||
@@ -335,7 +337,7 @@ using the `ARGUMENT` command:
|
||||
# Static compilation
|
||||
module_env.add_source_files(env.modules_sources, sources)
|
||||
|
||||
Now by default ``scons`` command will build our module as part of godot's binary
|
||||
Now by default ``scons`` command will build our module as part of Godot's binary
|
||||
and as a shared library when passing ``summator_shared=yes``.
|
||||
|
||||
Finally you can even speedup build further by explicitly specifying your
|
||||
|
||||
Reference in New Issue
Block a user